Unityでゲームを作ってみた(その2)+ゲームレビュー

Unityで2作目のゲームを試作しました。まぁまぁ満足というか、Unity初心者としては十分なデキになったと思います。

以下のサイトで公開しています。

unityroom.com

ドミニオンゲーム紹介:ドミニオン / Dominion - ボードゲーム紹介)のようにカードを引いて回していく感覚と、クッキークリッカーhttp://orteil.dashnet.org/cookieclicker/) のように何も考えずどんどん強くなっていくような感覚を出してみました。 最小限のゲーム性でカードゲームっぽいものを作ってみようと思ったのですが、なんだかんだで実装は膨らんで行きますね。

ゲームプログラミングのポイント?

Unityでゲームを作るにあたって学んだポイント
  • ゲームのロジックや状態の管理は、GameManager、CharacterManagerといったシングルトンのManagerクラスを作って管理する
  • キャラクタや敵といったインスタンスは、Character、EnemyといったMonoBeheviorを継承したスクリプトを作ってGameObjectにアタッチする
  • UIの反映は、定期的に読み込まれるUpdate関数で毎回UI要素を書き換えに行くのが楽な気がしてきた(パフォーマンスを気にしなければ)。イベントベースで制御する方法もあるが、いちいちイベントを宣言したり登録したりするのが面倒くさい。

  • コルーチンというものがあり、これによりメインの流れとは別に処理の流れを作ることができる。 敵を倒したときにアニメーションさせて1秒待って消す、と言った処理は、コルーチンで処理するのが基本らしい。

  • DOTweenといったアセットを使うと、いい感じの慣性の動きをつけることができて便利。

  • ビューとモデルの分離
    カードを使うとき、「手札からカードを論理的に削除 ⇒ カード使用のエフェクトをかけて一定時間後にGameObjectをDestroy」という流れになる。ちゃんとビューとモデルを意識して分けないと訳が分からなくなるが、完全に分離できるわけではない。例えば、カード使用のエフェクトが発動する前にカードのドローが行われると不自然になるため。
    もともとはリアルタイムのゲームを作るのは難しいのかと思っていたが、こういうことを考えるとターンベースより逆に作りやすいのかなと思った。

手札の表示

こんな感じの制御をすることで、いい感じにゲームっぽく手札の表示ができたりする

  • カード枚数と選択中のカード(マウス位置でフォーカスされているカード)に応じて、それぞれのカードのあるべき位置を決める。
    • 現在選択中のカードは特別扱いし、ちょっと大きくした上で最前面に出すようにする
    • カードのあるべき位置が変わるときは、DOTweenで動きをつけていい感じに移動させる
    • 結構大変だったのが、「カードが選択される⇒カードの位置が変わる⇒マウスを動かしていないのに違うカードが選択される⇒また位置が変わる」となって非常にうざい問題への対処。結局、カードの選択を一度行ったら一定時間は他のカードの選択をしない制御とすると解決した。

ゲームレビュー

家にいる時間も増えたのでいろいろゲームを遊んでみました。

ラトロポリス

デッキ構築タワーディフェンスみたいな感じ。最初はクソゲーだと思った。「少しでも戦力が足りないと一気に戦線が崩壊する&どう足りないのか分からないため納得感がない」のがひどい。タワーディフェンスだと通常はタワーは攻撃されないですが、このゲームはキャラクタが敵に攻撃されて倒れるので、戦線崩壊の度合いがたぶん激しくなるんですよね・・
余裕をもって戦力を強化すると結構進めるので、理解してくると結構楽しかった。ルールの枠外を突くようなコンボ(カードを強化する能力を使いまわすとか、一度使うと消えるカードをコピーするとか)じゃないと勝てないっぽく大味ですが。

store.steampowered.com

Iratus Lord of the Dead

Darkest Dungeonの敵側としてプレイするようなローグライクRPG。 雰囲気はとても良いのだが・・ゲームとしては劣化Darkest Dungeonのような気がします。

Steam:Iratus: Lord of the Deadstore.steampowered.com

DIMENSION REIGN

ローグライク+デッキ構築ゲーかと思いきゃそうではなく、デッキ構築ではなくスキルとレリック(能力を付与する宝物)を上手く構成して敵を倒していくゲーム。 敵を倒す順序を組み立ててずっと俺のターンが楽しめる良ゲー。

store.steampowered.com

グノーシア

ノベルゲー+人狼ゲーム。繰り返して人狼ゲーを遊んでいく中でストーリーが進んでいく。キャラクタの良さとゲームシステムの新しさからなる素晴らしいゲーム。 ランダム性を上手くシステムに織り込んでいて、こうやって人狼をゲームにすることができるのか、という驚きがあった。
くらいの紹介にしようと思ってましたが、クリア直前の展開が良すぎて名作になりました。みんなやろう。

ec.nintendo.com