38
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Go Unity React] 3Dでライフゲームを試せるサイト作りました

Last updated at Posted at 2021-05-10

はじめに

ライフゲーム(海外だとGame of Life)という生物学的モデルシュミレーションを3次元で作成してみました。
サーバーサイド Golang, クライアントUnity & React使用です。
ゲームリンク↓

そもそもライフゲームとは

聞いたことのない方が多いと思いますが、ライフゲームとは格子を生命とみなしたモデルシュミレーションです。
ユーザー自身がルールを定めてどのような生命活動が行われるかシュミレーションすることができます。

mojikyo45_640-2.gif 基本的には「縦 × 横」の二次元で作成されることが多いですが、 今回は「高さ」を加えた三次元で作ってみました! mojikyo45_640-2.gif

ゲーム詳細

ゲームリンクはこちらです。

アピールポイント

  • いい感じに生命循環が見られたモデルを保存できるようにしたところ
  • 他ユーザーが作成したモデルにいいねを付けられるようにして、ランキングの高いモデルマップを実際に動かせるようにしたところ
  • ユーザーがシュミレーションを楽しめるようにするため、生命活動のルール変更や、ステージ編集をできるようにしたところ
mojikyo45_640-2.gif mojikyo45_640-2.gif

使用技術

アーキテクチャ図

mojikyo45_640-2.gif

サーバーサイド系

環境

  • docker
  • Golang version1.16.2
  • postgres, heroku

GitHubです↓

綺麗な依存関係を意識してアーキテクチャを組みました。
こちらのgo-clean-archを参考にしています。
DIツールのwireを入れました。また、Postgresを使った理由としてはherokuの無料枠が優秀だったからです。

image.png

クライアント系

環境

  • Unity version2019
  • JavaScript(react)
  • Vercel(デプロイ先)

GitHubです↓

ゲーム部分はUnityで、
webGLビルドしたファイルをreactコンポーネントとして使用できるreact-unity-webglを使いました。
Javasciptでunityの関数も動かすことができるので非常に便利なライブラリだと思います。
mojikyo45_640-2.gif  mojikyo45_640-2.gif

頑張ったこと

  • 無料枠を意識した
  • herokuやVercelを利用してなんとか全部無料で永続化できました。
  • ユーザーがモデルを保存できるところ
    • 3Dのライフゲームをネットで検索してみると、保存が効かないものが多く考察があまりできないことが多かったので頑張りました

改善したい箇所

  • ルールなどの考察が開発者自身も不十分
  • 作成することに頭が行きがちだったので今後考察して改善していきたいです。
  • UI...
  • 改善したいです。

おわりに

ここまで読んでくださりありがとうございました!
実はこの製作物は友人とハッカソンのために面白そうだから作ったのですがあまり受けませんでした。。。(少し尖っていたかも)
本ゲームの不具合、改善点、技術的な疑問点などありましたらご気軽に質問ください!
また、よろしければ遊んでみてください!!

38
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?