竹林ソフト 2024/03/24 20:00

再建を繰り返す街作りゲーム開発(ゲームの初期化を Lua スクリプトで行う)

だいたいのゲームの仕様を考えたので、ゲームの新規開始の処理を実装していきます。
具体的には、新規ゲーム開始時の「この範囲は解放済みのエリアにして、中心には拠点を建てる」といった処理を Lua スクリプトで実現するあたりを実現します。

やったこと

Lua スクリプトで行うためのクラスを作成する

ゲームの初期化や管理は Lua スクリプトで行うことにします。
まずは「こういう記述で初期化したい」という Lua スクリプト作ります。

次に、この Lua スクリプトを実行するあたりを MoonSharp アセットを駆使して実装します。

そして実装しようとして、MoonSharp や Lua スクリプトで発生するエラー原因がわからなくて時間がかかりました。こういうので時間かかりますが、まぁ、こんなもんです。

そして時間が経過してから原因追及を再開して、問題がわかりました。
MoonSharp を利用する際に呼び出すべきメソッド UserData.RegisterAssembly(); の実行が行われていませんでした。うぐわぁ。

別プロジェクトのコードを参照しつつ作業していたのですが、参照しきれていなかったようです。むつかしい。

拠点の建築までを Lua スクリプトで行う

先ほど Lua スクリプトに記述したメソッドを実装して動作を確認します。
具体的には、MoonSharp の MoonSharpUserData を付けたクラスを実装すればオッケーです。

↓ 実装したクラスの抜粋

そして、ここまでが動作したゲーム画面がこれ↓です。

なんというか MoonSharp の機能を使って

  • Lua スクリプトを C# から実行する。
  • Lua スクリプトから地形や建築の C# のメソッドを呼び出す。

ということを行っています。
見えにくいですが、中央に拠点が配置されているのがわかります。大変よいです。

まとめと今後の予定

ゲームの初期化やイベントなんかを Lua スクリプトで行うことにして、その枠組みを用意して動作するのを確認しました。大変よいです。

次回は Lua スクリプトまわりの続きか、ワーカーが移動したり働くあたりに着手したいと思います。がんばります。

月別アーカイブ

限定特典から探す

記事を検索