【ウディタ】オンラインアップデート対応
久しぶりの更新。
実はようやくウディタVer3を使い始めて、新機能を色々試してたりしてました。
今まで作成した処理も最適化できる箇所があったりしたので、その対応なども。
んで、今回はウディタをオンラインでアップデートできる仕組みを導入してみました。
といっても先人の知恵をお借りしただけなんですけど。
アップデートの仕組み
まず、ウディタでオンラインアップデート機能が欲しくなった理由としては
- プレイヤー自身が更新情報を見に行く手間を省きたい
- 毎回実行ファイルを含む全ファイルをダウンロードする手間を省きたい
- ダウンロードしてファイルの置き換えをする手間を省きたい
- なんかかっこいい
です(動機はほぼ最後の1個
んで、アップデートってどうやるのかというと単純で、
Dataフォルダ(あるいはその中身の特定ファイル)を置き換える
だけなんですよ。
↑実際に配布するゲームデータを作成するとこうなる
例えばコモンEvやユーザーDBを更新したいならBasicData.wolf、
マップ情報を更新したいならMapData.wolfを新しいものに置き換える、と。
ただし、ここで重要なのがセーブデータに保存される内容(可変DBの中身など)はこの方法では更新できないという事。
まあ当然。
でもどうしてもセーブデータの中身も修正したい、なんて場合もあると思うので、その場合は以下の記事を参考にロード時に更新してやればおk。
mikowata3492.blogspot.com
そんなわけで、アップデートの手順はこうなるわけ。
- システム(コモンEvやユーザーDBと、ゲーム開始時点の可変DBなど)をアップデート
- セーブデータ(可変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への更新ついでに導入してみました。
外部ツールは手を出していいものかと躊躇していたんですが、どうやらほぼ公認みたいな扱いらしいので。
【#Wodistant】ウルフさんのご厚意によりウディタVer3の先行テストにお声がけいただき、ウディタでの開発補助/効率化ツール『Wodistant』の同時アップデートが実現できました!ご利用いただいている方はツール内アップデートから更新可能!(ウルフさんありがとうございます!)https://t.co/iyi8SPR3mU
— K-Shin07(Sitella) (@K_Shin07) 2022年11月22日
で、これが凄い凄い。
特に便利な機能が
- イベントコマンド高速検索機能(Ctrl+Shift+G)
- コモンイベント比較機能(Ctrl+Shift+D)
- 定義ジャンプ(F12)
もうこの3つがあるだけで作業効率が違いすぎる。
まだまだ使いこなせてないだけで、他にも便利機能が盛り沢山なので色々使ってみる予定。
alpha-stella.com