NPC をコーディングして領地経営するゲーム開発(Early Access 版の機能を決める)
そろそろ7月の Early Access 版のリリースに向けて、何の機能を実装するかを決めます。
やりたいこと
このゲームは 2024 年の7月に Steam で Early Access リリースして、2025 年の7月に正式リリースします。つまり、作業できる時間はあまりありません。
実装済みの要素と Early Access に含めたい要素
現在、動作するけど完了はしてない要素というか実装済みのコンテンツとして
- チュートリアルが Lua スクリプトでクリアできること自体は確認済み。
- 要素というかボリュームの調整はしてない。
- チュートリアルの各ステージ最初の会話の作成は、後半ステージで未着手。
- 日本語対応は完了、英語対応は 80% くらい。
- 日本語で開発した後で英語リソースを追加している。
となっています。
このままでは 「チュートリアルをプレイし終えたら遊ぶコンテンツないじゃん?」 となるので、エンドコンテンツが必須なのですが未実装です。
また、今はゲーム中で NPC の行動を記述するのに使えるのが Lua 言語だけなのですが、ゲームのプレイ層を増やすために Python 対応もしたいと思っていて、これも Early Access に含めようと思っています。
また、ゲームはリリースした瞬間が1番注目されると思っていて、Early Access 開始の1年後に正式リリースする場合であっても、なんというか正式リリースのタイミングでは注目されないと私はみなしています。(私が宣伝めんどうで何もしてないのもあります)
そういうわけで、これから7月の Early Access までに実装したい項目としては
- エンドコンテンツの作成(必須)
- ランダムマップを生成して難易度調整して遊べる仕組みを作成する。
- Python 対応(必須)
- チュートリアルの各ステージの会話テキストを考えて書く(必須)
- パラメータ調整とメッセージの英訳(必須)
- MOD で自作したワールドやステージを共有する機能(最低限でいいので提供する)
- 3D 表示モード(途中まででいいのでやる)
- MOD で建物やアイテムを追加、変更する機能(やる時間なさそう)
- 各アイテムのフレーバーテキスト作成(やる時間なさそう)
になります。
これ以外にも、開発用に各種機能をテストする仕組みなんかも必要です。
やるべきことを書き出してみて 「これ、絶対に間に合わないじゃん」 としか思わないのですが、書き出して確認したことは大変よいです。
やったこと
Early Access に含めたい機能なのに仕様検討が終わってない項目について考えます。
ランダムマップを生成して難易度調整して遊べる仕組み
既存の固定パラメータのステージを遊ぶ仕組みではなく、
- フィールドをランダム生成し直せる。
- 各種パラメータを変更できる。
ようなゲーム画面になって、それで諸々のパラメータを設定してからゲーム開始できる仕組みを提供したいです。
最終的にはパラメータを入力する UI もスクリプトから指定できるようにしたいのですが、とりあえず決め打ちで作成します。詳しいことは後でまた検討します。
MOD で自作したワールドやステージを共有する機能
あるディレクトリにあるファイルを使ってゲームをする機能はすでにあるので、
- Steam Workshop にワールド、ステージ用のファイルをアップロードする機能
- Steam Workshop にあるワールド、ステージのファイルをプレイする機能
- サブスクライブの実行は Steam クライアントからでいい。
- サンプルステージの Steam Workshop へのアップロード
- ステージの作り方のドキュメント作成
なんかを順に実装していけば終わります。
細かい仕様を決めつつ動作確認しながら実装していけば終わってほしいと思っています。
開発用に各種機能をテストする仕組み
正直、Python 対応をするにあたって色々と変更していて、過去に動作していた Lua 用の機能が実装するか自信がありません。というか「テストしてない機能は動作しない」という意見もありますし、テストする仕組みを考えて実装します。
今は「プレイ中のワールドの全ステージを最高速でプレイする」という機能だけ実装されていて、これでもある程度の機能はテストできるのですが、これだとエラーが発生するかなどの異常系のテストができないので、なんか考えて実装します。
雑多な修正
7月に Early Access でリリースしたいのにもう5月なので、少し焦り気味で作業したいです。
↓ 総チケット数 1,130 くらいに対して終わったチケット数が 960 くらいなので、残チケットが 170 くらいの様子
キャラクターがアイテムを持ったときの向きを修正した
↓ 修正前(左)、修正後(右)
修正前は料理を食べる動作のときに上下逆に画像を表示してしまって違和感が大きかったので修正しました。アイテムを鏡像反転してしまっていますが気にしないことにします。よいです。
まとめと今後の予定
7月の Early Access 版リリースに含めるコンテンツを確認してどうするか検討しました。よいです。
次回は、Python 対応かエンドコンテンツまわりの実装に着手します。がんばります。