【ウディタ】オンラインアップデート対応

久しぶりの更新。

実はようやくウディタVer3を使い始めて、新機能を色々試してたりしてました。

今まで作成した処理も最適化できる箇所があったりしたので、その対応なども。


んで、今回はウディタをオンラインでアップデートできる仕組みを導入してみました。
といっても先人の知恵をお借りしただけなんですけど。

アップデートの仕組み

まず、ウディタでオンラインアップデート機能が欲しくなった理由としては

  1. プレイヤー自身が更新情報を見に行く手間を省きたい
  2. 毎回実行ファイルを含む全ファイルをダウンロードする手間を省きたい
  3. ダウンロードしてファイルの置き換えをする手間を省きたい
  4. なんかかっこいい

です(動機はほぼ最後の1個


んで、アップデートってどうやるのかというと単純で、
Dataフォルダ(あるいはその中身の特定ファイル)を置き換える
だけなんですよ。

↑実際に配布するゲームデータを作成するとこうなる

例えばコモンEvユーザーDBを更新したいならBasicData.wolf
マップ情報を更新したいならMapData.wolfを新しいものに置き換える、と。


ただし、ここで重要なのがセーブデータに保存される内容可変DBの中身など)はこの方法では更新できないという事。
まあ当然。


でもどうしてもセーブデータの中身も修正したい、なんて場合もあると思うので、その場合は以下の記事を参考にロード時に更新してやればおk。
mikowata3492.blogspot.com

そんなわけで、アップデートの手順はこうなるわけ。

  1. システム(コモンEvユーザーDBと、ゲーム開始時点の可変DBなど)をアップデート
  2. セーブデータ(可変DBなど)をアップデート

オンラインでのアップデート方法

さてこっからはアプデをオンラインで済ます方法、つまり
BasicData.wolfやMapData.wolfをゲーム内でダウンロードして、
さらにDataフォルダ内のファイルと置き換える

処理を実現します。


参考にしたのは以下の記事。
moon-bear.com


上記ではDataフォルダ内のversion.txtで現行のバージョン管理をしてますが、これはユーザーDBでもできる(むしろテキストファイルはプレイヤーが勝手に書き換えられるので危険)ので、その方向で作成。


サーバー側にはBasicData.wolfとMapData.wolfとversion.txtを用意。


※Dataフォルダ内に_NetDownloadDataフォルダを作成すると、次回ゲーム起動時にファイルが自動で置き換えられる


「0.99」とか「1.00」みたいな文字列のままだと大小の比較ができないので、×100倍などして数値に変換するコモンEvは自作しました。



このコモンEvがあれば、さっきの可変DBを後から変更する方法の処理内容も数値でバージョン比較できるように改造可能。

ウディタVer3にアプデしてみた

噂には聞いてたんですが、処理めっちゃ早い。
SRPGで敵AIの思考時間が長い問題が案の定解決。


とりあえず、コモンEvの「入力」の数を4個から5個に増やしたり、「4択」の条件分岐にしたりなどして処理が少し効率化できました。


あと公式サイトの情報によると

  • 動作指定にコモンセルフ変数が使用可能に
  • 並列処理の起動条件にコモンセルフ変数が使用可能に

なったそうで、これで通常変数や予備変数の節約もできましたね。


コモンEv名からIDを取得する機能も嬉しい。
実質的に名前呼び出しでコモンEvの予約ができるようになったわけですし。


あとは検索ウィンドウに「置換」機能が追加されたので、以下のWodistantも併用して、これまで適当な名前にしていたコモンEvの名前を修正、DBの名前など全体的に命名規則を統一。
まあ初めから名前はちゃんと統一しろよって話なんですが、去年からゲームを作り始めて色々手探り状態だったので。

Wodistant導入してみた

以前から気になっていたWodistant、今回のウディタVer3への更新ついでに導入してみました。


外部ツールは手を出していいものかと躊躇していたんですが、どうやらほぼ公認みたいな扱いらしいので。


で、これが凄い凄い。
特に便利な機能が

  • イベントコマンド高速検索機能(Ctrl+Shift+G)
  • コモンイベント比較機能(Ctrl+Shift+D)
  • 定義ジャンプ(F12)

もうこの3つがあるだけで作業効率が違いすぎる。
まだまだ使いこなせてないだけで、他にも便利機能が盛り沢山なので色々使ってみる予定。
alpha-stella.com