NPC をコーディングして領地経営するゲーム開発(Python 対応版をビルドしてテスト)
Python 対応が進んで1ステージをクリアできるようになったので、Build して動作確認していきます。あと、Steam での審査を見据えた対応もやっていきます。
やったこと
ビルドしての動作確認
Python 対応が動くかをビルドして確認してみたところ、Python で動作しないどころか、Lua でも動作しませんでした。
なので検証のために SRDebugger を使います。私は SRDebugger は実行時にエラー状況を確認するのに使っています。
↓ SRDebugger で確認したエラー内容(途中まで)
エラーが確認できたので修正してしまえばいいのですが、Build 版でのみ問題になって Unity Editor 実行で問題にならないのは理解しておきたいです。とりあえず
- Lua モードでゲーム開始してもエラーになるのはおかしい。
- Python モードでも本来はエラーなく動作してほしい。
というあたりが気になっています。
確認したところ、1つ目の問題については、NPC 用のスクリプトを配置するフォルダに .py と .lua の両方があったときに、スクリプト言語の指定と関係なく .py が利用されるのが原因でした。
これは、使うように指定したスクリプト言語を優先するよう変更します。
また、2つ目の問題については Process クラスを IL2CPP ビルドで Win32API の System.Diagnostics.Process を使っているのが原因でした。IL2CPP ビルドでも動作するよう作られた KS.Diagnostics.Process を使うように namespace を修正して対処しました。
ここまで修正したところ、Build 版でも Python スクリプトでの動作が確認できました。大変よいです。
そして、この作業で Build 版と Unity Editor 版との動作の違いはなくなったので、改めて Unity Editor でもって 未実装の機能の実装をしていこうと思います。
リリースまでのタスク確認
リリースまで2ヶ月を切ったので、改めて何をするかを書き出して確認します。
この流れは前回の記事でもやった気がしますが、今後も繰り返しやっていきます。
やること
- 全ステージにそれっぽい会話を考えて適用する。(必須)
- ダンジョンの敵がテスト用のままなのを変更する。(必須)
- Python 対応を終わらせる。(必須にしたいが間に合う気がしない)
- 3D 表示モードを実装する(必須、でなくてもいい)
- カスタムステージの仕組みを実装する。(必須にしたいが間に合う気がしない)
- カスタムステージを Steam Workshop で共有できるようにする。(必須)
- 初心者向けのチュートリアルのステージを用意する。(必須)
- 雑多なパラメータを定義する。(必須)
- 称号の取得条件を表示できるようにする。(必須)
くらいでしょうか。
必須なものだけ書き出そうとして「いやまぁ、無理だよな」と思った気持ちも併記しました。
全体的に眺めると「Python 対応をできるところまでやりつつ、Lua で遊べるように作り込んでいく」という感じでしょうか?
やることの詳細はツールで管理しているのですが、残タスクが 160 個くらいあって悩ましいです。
↓ そうタスク数と完了タスク数のチャート
まとめと今後の予定
今回は Python 対応で追加したコードが Build しても動作するかを確認して対処しました。大変よいです。
次回からは Python 対応以外の実装を終わらせるべく作業したり、Python 対応もしたり、プレイし直して修正すべき違和感を洗い出したりしようと思います。がんばります。