はじめに
ライフゲーム(海外だとGame of Life)という生物学的モデルシュミレーションを3次元で作成してみました。
サーバーサイド Golang, クライアントUnity & React使用です。
ゲームリンク↓
そもそもライフゲームとは
聞いたことのない方が多いと思いますが、ライフゲームとは格子を生命とみなしたモデルシュミレーションです。
ユーザー自身がルールを定めてどのような生命活動が行われるかシュミレーションすることができます。
ゲーム詳細
ゲームリンクはこちらです。
アピールポイント
- いい感じに生命循環が見られたモデルを保存できるようにしたところ
- 他ユーザーが作成したモデルにいいねを付けられるようにして、ランキングの高いモデルマップを実際に動かせるようにしたところ
- ユーザーがシュミレーションを楽しめるようにするため、生命活動のルール変更や、ステージ編集をできるようにしたところ
使用技術
アーキテクチャ図
サーバーサイド系
環境
- docker
- Golang version1.16.2
- postgres, heroku
GitHubです↓
綺麗な依存関係を意識してアーキテクチャを組みました。
こちらのgo-clean-archを参考にしています。
DIツールのwireを入れました。また、Postgresを使った理由としてはherokuの無料枠が優秀だったからです。
クライアント系
環境
- Unity version2019
- JavaScript(react)
- Vercel(デプロイ先)
GitHubです↓
ゲーム部分はUnityで、
webGLビルドしたファイルをreactコンポーネントとして使用できるreact-unity-webglを使いました。
Javasciptでunityの関数も動かすことができるので非常に便利なライブラリだと思います。
頑張ったこと
- 無料枠を意識した
- herokuやVercelを利用してなんとか全部無料で永続化できました。
- ユーザーがモデルを保存できるところ
- 3Dのライフゲームをネットで検索してみると、保存が効かないものが多く考察があまりできないことが多かったので頑張りました
改善したい箇所
- ルールなどの考察が開発者自身も不十分
- 作成することに頭が行きがちだったので今後考察して改善していきたいです。
- UI...
- 改善したいです。
おわりに
ここまで読んでくださりありがとうございました!
実はこの製作物は友人とハッカソンのために面白そうだから作ったのですがあまり受けませんでした。。。(少し尖っていたかも)
本ゲームの不具合、改善点、技術的な疑問点などありましたらご気軽に質問ください!
また、よろしければ遊んでみてください!!