自己紹介
大学2年。Unity歴5年近くあるが、2Dゲームばっかりやっていた人。
その2Dゲームも全然完成できず、そろそろ焦ってきて3Dゲームを完成させようとしている人。
作ったゲーム
まだリリースは出来ていないのですが、ゲームが遊べる程度にはなったステルスアクションゲームです。
難しかったところ
1. 物理演算(特にキャラクターコントローラー)
Apexが好きだったので、Apexのようなキャラクターコントローラーを作ろうと、頑張って物理演算ベースのキャラクターコントローラーを自作したのですが、全くうまく動かず…
ここは今もちょくちょく挙動治してるんですが、上手く動くまでまだまだかかりそうです。
2. ステージづくり
ステージづくりは本当に苦痛でした。
今も壁がズレていたり、なにかがめり込んでいたりして修正点多々あるのですが、なかなか手につきません。
やっぱりプログラミングが最高です。
勉強になったところ
1. ステートマシン
ステートマシンの自作は勉強になりました。
完成度も悪くないと思います。
今回はコードベースで書きましたが、次作るときは外部のパッケージやアッセトを使ってやってみたいですね。
2. インターフェース
C#のインターフェースを本格的に導入したところ便利すぎてハゲました。
なぜ今まで使わなかったのか…
3. ゲーム全体の管理
今回、実際に動かす部分を先に作っていたのもあって、プレイヤーの進行状態などを管理するプログラムがないことに途中で気がついて、ちょっと良くない感じになってしまいました。
上流工程、大事
4. アーキテクスチャを意識した開発
今回は、初めてアーキテクスチャを意識して開発しました。
参考にしたのは以下のQiitaのアーキテクスチャです。
まだまだ練度が低いながらも純粋なC#も多用することができましたし、一回目にしては満足しています。
反省点と今後意識したいところ
1. ゲーム全体の管理方法
勉強になったところでも書きましたが、やはりここが一番コード的には満足のいかないところでした。
そのせいで、また破壊しかけたのですが流石にこれを繰り返してると一生完成しないので今回は許容ということで…
2. ステージづくり
ステージづくりも初めて本格的にやって、ちゃんと計画性を持った方が良いのと、自分自身めちゃめちゃ苦手なんだなと思いました。
苦手が知れてよい。
3. Raycast周り
どうにかして、Raycastを1つに集めて、JobSystemに投げてサクサクにしたい!
値を返すとか含めると結構ややこしそうですが、やりたい。ただそれだけ。
なんかJobSystem使ってるとめっちゃそれっぽくないですか?
良かったところ
1. アイテムやアクション回りの実装
ここらへんはインターフェースと継承を上手く使って綺麗に実装できました。
正直めちゃめちゃ満足してます。
2. 個別のパッケージを自作して切り分けた開発
以下のパッケージを代表に、2つほど自作のパッケージを開発して今回使用しました。
切り分けておくと、めちゃめちゃ楽ですね。
3. InputSystem周り
こちらももともと好きでInputSystemを使っていたのもあって綺麗に実装出来た気がします。
4. ScritableObject周り
こちらも有効に使えたかなと思います。
管理もめちゃめちゃ楽になるし良かったですね。
まとめ
とにかくコードはある程度綺麗。(ゲーム全体の管理を除く)
ステージづくりなどを筆頭とする見た目の部分は全然満足いかないし、自分が不得意ということが分かりました。
もうすぐ夏休みは終わりますが、リリース出来るぐらいまで仕上げれるように少しずつ改善していきます。