パックマン1980年
古典ゲームのゲームデザイン論的振り返りシリーズ第三弾。
パックマンの初出は1980年5月だそうな。
既にスペースインベーダーでTVゲームと言うのは世間様に認知されていたけれども今みたくゲームセンターがあったワケではなく遊技場(バッティングセンターやボウリング場など)にコーナーが併設されており多くはそこに配置されていた。またアーケードゲームとしてテーブル筐体と縦置き筐体が共存する時代でもある。
またスペースインベーダーが社会問題になる以前から耳の早い人たちは海外での盛り上がりを既に聞き及んでおり、Atali Japanを買収して立ち上がったのが中村製作所。頭文字をとってnamcoと名付けた。namcoはインベーダーの成功は見ていたが欠点も見ていたのでパックマンは入念に企画されたゲームの手触りがある。シンプルだけれどキャッチーなキャラにポップなカラーリング。サウンドも印象に残る出来栄えで広告にも相当予算が掛けられたはず。
さて本作もゲームデザイン的に紐解いてみよう。
- ステージに配置されるキャラパックマンと4匹のゴースト
- ゴーストはそれぞれ性格付けがされており追いかけ型やランダム型など
- ステージには244個のドットとパワー餌が配置
- パックマンがこれらすべて食い尽くすとクリア
- ゴーストに捕まると残機が減って続きからリスタート
- 残機がゼロになったらゲームオーバー
- パワー餌を食べるとゴーストが反転逃亡状態となるが時間制限あり
- 反転逃亡状態のゴーストを捕まえるとボーナス点獲得
- 捕まえられたゴーストは一定時間後にリポップ
- 残機が尽きたらゲームオーバー
- ハイスコアシステムあり
- ラウンド毎に2回フルーツが配置され取るとボーナス点獲得
- ステージは多数のコーナーと左右ワープ等が用意されている
- ゴーストだけが一方通行となるエリアあり
- パックマンはゴーストより若干コーナリング速度が速い
- コーヒーブレイク面あり キャラによる演出がコミカルに描かれる
- 耳に残るBGMと効果音
スペースインベーダーに比べると相当に練り込まれたデザインである事が解る。
またプレイヤー目線で見ると
- ランダム性がなくパターンプレイに持ち込みやすい
- ゴーストに捕まるとダメだが反撃手段もちゃんと用意されている
- レベルデザインが意識されて最終面まできっちりデザインされている
- パーフェクトスコアが達成できるゲーム
- コーヒーブレイクタイムまで入れるサービスっぷり
などとゲームデザイン的にかなり進化が見て取れる。またパックマンが成功したのは北米に進出して大成功を博した理由が大きい。国内よりも北米で盛り上がりMsパックマンが投入されたんだとか。『パックマンは80年代のミッキーマウスに匹敵する』とかしないとか。
まとめると、パックマンはとにかく北米で盛り上がったタイトル。namcoの看板にはなったけれども国内ではそれほど支持されたかと言えば疑問。パックランドも少し早すぎた横スクロールゲームであまり人気が出たとは言えない。スマッシュヒットはメーカーには有難いのだが足枷にもなるという事実がすでに生々しい。
なおnamcoは国内でスマッシュヒットを飛ばして足場を固める中で作られたのがパックマン。初期はギャラクシアン、パックマン、ゼビウス、マッピー、ギャラガにドルアーガの塔と続きスマッシュヒット連発。そのままコンソールゲームにも乗り込み現代バンナムに繋がるのに対して、タイトーは確かに一時代を築いたがアーケードから脱却できなかったメーカーの印象が強い。
今回も最後まで読んでくれた方には感謝を。
2D Game Kit トラブルシューティング
Unityにおける2Dゲームサンプル『2D Game Kit』であるが、2022最新エディタで開くと詰まる箇所があるので備忘録がてら記す。DragonCrashの様な最新の2Dチュートリアルも良いのだが、オールドスクールなTilemapを利用したコンソールゲームのひな型としては良いサンプルなので埋もれさせるには惜しい。
以下はUnity 公式のLearningコース。Google翻訳で十分進められるので頑張れ!
2022年6月現在、ここに至るまでに壁があるのでスタートラインに立つ一助になれば幸いだ。
では以下が手順。なお
※Unityエディタは2021.3.41fを想定
※2Dビルトインモデルで空プロジェクトファイルを作成
まずはAsset Storeに行き以下のアセットをダウウンロード。
続いて先に用意したプロジェクトファイルに上記アセットをインストール。
※PackageManegerの使い方は割愛する
※Import時に確認ダイアログで色々聞かれるが、基本Yesで応えてImport一覧が表示されて確認画面までたどり着いたらさらにImport!
Project一覧に『2DGameKit』フォルダが追加されたらここまではOK。
ただしコンソールにエラーが出るので以下修正方法。
(9つエラーが出ているのが本件の対策方法。そうでないなら他をあたってくれ!)
1.Projectをたどり『2DGameKit->Scripts->Utility』を開く
2.RuleTileスクリプトを見つけて『RuleTile2』とリネームする
3.VS Codeなどのエディタで先のRuleTile2を開き『class RuleTile』を『class RuleTile2』に修正して保存する。
ここまででコンソールエラーが2件に減っていればしめたもの。エラーログのどちらかをダブルクリックすると所定のスクリプトエディタが起動するので、『RuleTileをRuleTile2に一括置換』する。方法はスクリプトエディタ毎に異なるのでそれぞれ自分で調べること。
この一括置換後にスクリプトを保存してUnityエディタに戻るとリコンパイルが始まりエラーが消えたら完了!おめでとう!動作確認はProjectから『2DGameKit->Scenes>Start』を開いてRunボタンクリックだ。
あとは本ページのトップにあるUnity公式のLearnチュートリアルを学習するもよし、とりあえず一通り遊び倒すもよし。ただしバグがあるっぽい。Zone4の毒を吐いてくるカエル?に倒されるとEllenが倒れたまま立ち上がらない。(うちだけかもしれぬ)
本2D Game Kitの解説はWEBにごろごろ転がっているので自分で調べる事。とりあえずは公式チュートリアルを進める事をお勧めするが。
ギャラクシアン1979年
古典ゲームのゲームデザイン論的振り返りシリーズ第2弾。
ギャラクシアンの初出が1979年。スペースインベーダーの翌年ッスね。そしてこちらはnamcoの出世作。
シューティングゲームの元祖であり出世作となったエポックメイキングな作品。
ゲーム史に輝くタイトルであるがゲームデザイン的に紐解いてみると
- 自機から発射されるミサイルでインベーダを撃ち落とす
- 自機の移動は左右のみ
- 残機が尽きたらゲームオーバー
- 敵すべてを撃ち落とすとステージクリア
- ハイスコアシステムあり
- 敵は上部で軍団待機しておりこの時にはミサイルを撃たない
- 時々単体あるいは編隊でミサイルを放ちながら降りてくる
- 敵は旗艦2機、レッド6機、パープル8機、グリーン30機の4種
- 4種それぞれ個別に移動カーブが設定されている
- 4種それぞれに個別スコアと飛んでる方が高得点な設定
- 旗艦はレッド(残っていれば最大2機)と編隊を組んで降りてくる
- 旗艦編隊を倒すとボーナス加算あり
- 軍団が少なくなると一斉にすべて降りてくる
- エクステンドありで自機が増える
- すでにサウンドが重要だと緻密に用意されている印象ある
ざっくりこんな仕様。またプレイヤー目線で見ると
- プレイ技術の向上と敵の挙動の学習がハイスコアに結び付くデザイン
- 編隊飛行と一斉飛行が単調になりがちなゲームに緊張感を演出
- スピード感はまだ無くシューティングと言うより精密射撃ゲームであり手触り的にはスペースインベーダーを感じさせた
- 黒背景に散りばめられた流れる美しい星々は銀河のイメージと、ソレを切り裂いて降ってくるエイリアン達を撃ち落とすシーンはなかなかに美しい絵づくりであった
などとスペースインベーダーを踏襲しつつプレイヤー心理をくすぐるデザインがあちこちに見て取れる。思えばこの頃よりゲームサウンドには個人的に興味を示しており、namcoサウンドは独自の耳に残る名曲が数々と記憶に刻み込まれている。
ここから派生したコンピュータゲームは数多いが、直近の系譜としてはやはりギャラガが挙げられるがその分析はまた別の回で。一転して高速シューティングと演出の派手さがマシマシになったこれまた名作である。
最後まで読んでくれた方には感謝を。
ML-Agent研究レポート~その2~
Unityで提供されるML-Agentsを利用した機械学習を実際に走らせた結果などをまとめる企画その2。
Wall Jumpモデルの場合
この学習モデルもかなり複雑なケースを想定。用意されたステージは以下の通り。
- 四角いステージ
- ゴールを奥側に配置
- 追跡者を手前側に配置
- 追跡者とゴールの間に高い壁と低い壁からいずれか1個を配置
- 追跡者側には移動可能で大きさ&高さ固定な台を配置する
追跡者のふるまいとしては以下を想定
- ステージから落ちたらペナルティ
- 目標位置にたどり着いたら+1.0
- 運動機能にジャンプを加える
- 一定時間内にゴールたどり着けなかったらリスタート
- 台をはじき出したらリスタート
つまり以下の二段階学習を想定している。
- 壁は越えられる事を第一段階で学ぶ
- 次に越えられぬ壁は台を利用して越えられる事を学ぶ
※低い壁が乗り越えられる事はかなり初期に学ぶ
※100万回リトライ繰り返すも高い壁は文字通り高い壁。
※リスタート時にゴールと台が一直線になるケースに於いて越えられケースを体験するが台を積極的に利用するまでには至らず、ゴールにまっしぐらに向かう報酬が強すぎる印象ある
※120万回。台を壁に近づけると良いことあるかも?と気づいた節はある
※150万回。遅々として進まぬ学習。到達高さに報酬を与えるのは?
※200万回。ほんの微かに台を使えば越えられるんぢゃね?のそぶりが伺えだす。壁ドンからのバックステッポを覚えてそこに台があればワンチャンパターン。壁際に台があると逆に良くない感じ。そして壁際でのサイドステッポも混じりだす。
※250万回。壁ドン繰り返しは減り、盲目に前後左右ドリブルすると飛べることあるんぢゃね?と言う段階。台を自分で反対から動かすような挙動はまだないw
※300万回。進化停止の気配。台を動かす事を覚えれば一気だとは思われる。
変化がなさ過ぎて放置w
※ログを見ると600万回を超えた辺りで何かつかんだようで報酬がプラスに転じる。
※700万回にて台使った壁超えを会得し、ロスもほぼ無くなり残るは効率学習のみとなった模様。
総論としては500万回を超えないと台を使った壁ジャンプが学習されないのは報酬設定がまだ詰められると思われる。また同様に以下に学習結果の動画と経過グラフを公開しておく。
ML-Agent研究レポート~その1~
Unityで提供されるML-Agentsを利用した機械学習を実際に走らせた結果などをまとめる企画。まず機械学習に向いたモデルと言うものがあるようで、Examplesの中から例をふたつピックアップして概要をまとめると
Basicモデルの場合
学習モデルはいたって単純。
- 小さい球にタッチで+0.1点
- 大きい球にタッチで+1.0点
- コースアウトで-0.01点
上記ルールを設けて機械学習を試みると小さい球の方に収束してしまうケースが稀にあった。これは小さい球に触り続ける方がコースアウトするより高得点であるうえに、大きい球にタッチしに行く可能性も収束してしまうので期待した通りの結果を得られない場合もあるというモデルケース。
Crawlerモデルの場合
この学習モデルでは先とはうって変わり複雑なケースを想定。球体のボディから有関節の足が4本生えている構造を持ち、また関節には稼働限界角度などがそれぞれ設定されている。すなわち4足歩行を機械学習で最適化するモデルケースである。なお目標へのアプローチは
- からだ本体が接地したらペナルティ
- 目標物への移動速度が一致したら報酬(0~1で可変)
- 目標物への方向へ一致したら報酬(0~1)
- 目標に達したら報酬&目標物の再配置
レーザーで目標を観測し補足するなどの処理は採用せず、体を落とさずに4足を利用した目標物への移動方法を機械学習する試みと言うことだ。モデルケースとしてはかなり複雑なパターンであり、上限回数も100万回と最適化にかなりの時間が掛かる事が予測される。以下学習ログと画面の挙動を読み取りながら、機械学習がどのように進行するかの例をまとめる。
※ゼロ回では流石に生まれたての子ヤギ状態
※約10万回前後で接地しない足の使い方を学んだ気配
※12万回を超えると目標方向を向く意識がやんわりと発生確認
※20万回でようやく目標方向へ進行する歩き方を発見した気配
※25万回超えて初めて目標物に到達
※30万回でよちよち歩きの幼児なみへ
※40万回。目標方向の補足はほぼ完成。方向転換の学習がかなり困難な印象。
※50万回でかなりスムーズになってきたが方向転換がまだぎこちない。特に真逆を向いていると目標方向への転換がかなり遅い。
※60万回。方向転換もかなりスムーズになったが時々まだ迷ってる気配あり
※70万回。猫まっしぐらほぼ完成。180度ターンがやはり苦手な模様
※80万回を超えればターンもお手の物。即目標へ向かって移動を開始する
以下に機械学習が完了した場合の動画と学習経過グラフを公開しておく。
スペースインベーダー1978年
古典ゲームのゲームデザイン論的振り返りシリーズ第一弾。
言わずと知れたスペースインベーダーであるが初出は1978年。
シューティングゲームの元祖であり、タイトーの出世作となったエポックメイキングな作品。ゲーム史に輝くタイトルであるがゲームデザイン的に紐解いてみると
- 自機から発射されるミサイルでインベーダを撃ち落とす
- 残機が尽きたらゲームオーバー
- ハイスコアシステムあり
- 通りすがるUFOを打ち落とすとボーナス点加算
- 塹壕x4は降り注ぐミサイルを防ぐが徐々に破壊されてゆく
- インベーダは軍団を成しており徐々に自機に向かって降りてくる
- またインベーダーが少なくなるor自機に近づくと高速移動になる
- 単純なドット絵ながらちゃんとアニメーションしている
- シンプルだが耳に残るBGMと効果音
ざっくりこんな仕様。またプレイヤー目線で見ると
- ハイスコアを狙うプレイが参加意欲を刺激する
- 自分も攻撃するが敵も攻撃してくる発想は当時はまだ斬新
- 徐々にインベーダーが加速するなどの演出バランスが良い
- 名古屋撃ちやレインボーなどの攻略技が当時すでに登場している
などとプレイヤー心理をくすぐるデザインがすでに練られているのが見て取れる。コンピュータゲーム自体がまだまだ黎明期であり手探りも多い中で、すでに一定の完成度と魅力を持って登場したのがスペースインベーダーであり、社会現象を引き起こしたのも納得できる。
ここから派生したコンピュータゲームは数多いが、直近の系譜としてはギャラクシアン&ギャラガが挙げられるがその分析はまた別の回で。
最後まで読んでくれた方には感謝を。