3Dランゲーム:自主製作ゲーム
Unity/C#の独学の成果の一つとしてStandaloneバージョンのランゲームを製作しました。 以下で公開しています。 https://unityroom.com/games/pawn-run
タイトル:PAWN RUN
プラットフォーム:WebGL (unityroom)
ジャンル:チェス駒ランゲーム
ゲームエンジン:Unity2020.3.14
制作期間:1カ月
担当:エンジニア (ゲームシステム・ステージギミック・UI etc)
制作人数:1人 (企画・エンジニア)
試遊リンク:
Github:
■学んだこと
- Unityにおける3Dゲーム開発の基本(各種コンポーネント、サウンド、入力制御)
- ライセンス関係(Unityライセンス、MIT)無難なライセンスを選ぶと良いこと
- シェーダーを書く難しさ。行列、ベクトルの計算より、見た目の再現をコードに落としこむことが難しい。
■ゲームコンセプト
今回目指した内容は以下になります!!
- 気軽にできる
- 操作は複雑にしない
- 直感的にゲームシステムが伝わる
- 短期間で作成できる
以上の内容で考えて、ランゲームに落ち着きました。マウスがあればいつでも出来、時間がなくてもインゲームにすぐ移れます。
■レベルデザイン
・基本はスコアアタックで、長く走りつづけることでスコアが上がる
難易度は走行距離に応じて上がるが、スコアの上昇率も大きくなる。
・スコアを上げる要素として、進路上の障害物をフッ飛ばすことで大きくスコアを上げられる。
・「避ける」、「吹っ飛ばす」を同一の動作とし、回避or排除の2択を進路の障害物配置から考えさせる。
・単純なスコアアタックでは飽きるので、ハイスコアに応じて小規模ながらスキン解放を設けた。
■苦労したこと
・スキンはシェーダーに手を出して自作しました。凝ったシェーダーではないが、Unity独自のシェーダー言語もHLSLも知らないといけないことが多く、上記動画程度でも大変苦労した。
しかし、この程度であればURPのシェーダーグラフで簡単に作れると思うので、今後3D開発はURPで開発を検討するきっかけになった。
・エリアを消去することで処理落ちに対応しました。
渡り終えたエリアを永遠に残しておくと、その分負荷がかかってカクつくため、渡り終わったタイミングで消去するようにしました。