GameMaker Studio2で作ったゲームの話(1) -「Pong」

数年前からぼんやりと目的もないままにゲーム制作を始め、自分にしっくりくるゲームエンジンが見つからないままに2022年を迎えようかというところで出会ったのが「GameMaker Studio2」いわゆる「GMS2」でした。

「GMS2」は「Undertale」「VA-11 Hall-A」を産み出したエンジンということで実際は候補には上がってたのですが、無料じゃなかったので尻込みして買わなかったのです。ただそれももったいない気がしてなんとなしに思いつきで手を出してみることにしてみました。すると初心者向けというだけあってエンジニアでもない自分でも粗末なものですが、ゲームが作れてしまいました。制作したゲームを公開する予定自体はないのですが、理解したことや諦めたことや気づきとともに覚書として残していけたらなと思っています。

目次

Pong

画面中央より少し上の「640」は何かのデバック用です。消しなよ。

はじめに

チュートリアルを終えて微かに理解しながらはじめて作ったのが、この「Pong」になります。「Pong」はあのアタリ社が作った単純な卓球のようなゲームです。単純とは言っても右も左もわからない自分からしたらささっと作れる理由にはなりません。

ただ最初に「Pong」を選んだのには理由があって簡単というほかに、チュートリアルでやったブロック崩しの技術をほとんどそのまま持ってこられるということです。画面を横向きにして、崩すべきブロックをただのバーに置き替えてしまえばそれで終わりなんですよね。

ゲーム内容

シンプルイズベスト

基本的なプレイ自体は「Pong」とほぼ同じですが、打ち合うほどボールが加速する要素がなく等速での勝負になります。これについては「Pong」にこの要素があるのを知らなかったというだけですが、付け加えておけばプレイのリズム感が良くなったのではないかと思います。後述しますがAIなどの関係上リレーは長く続くのですが、勝負としての逼迫感がない気がするので改善できる点だと思います。

またStageとありますが、簡単な要素を付け足したものを2stageほど用意しています。

Stage2は上下に一定速度で動くブロックが動くだけです。あくまでボールに予想できない動きをさせるために作りました。バーとブロックの間に挟まってしまうと動きを合わせるのに苦労します。AIもこれように作り直してないので翻弄されてるのですが。個人的にはこれで遊ぶのが好きだったりします。

Stage3はStage2の状態から敵側のバーを長くする代わりに、自分側に有利になるアイテムを落とす時があるというようになっています。このアイテム要素もチュートリアルのブロック崩しから流用です。矢印のアイテムはバーを一定時間長くし、星のアイテムはバーの移動速度を一定時間速くします。なんというか蛇足ではありますし、何も調整などはしていませんが、「こういうのはできるかな?」から「できた!」の成功体験はこれだけ小さくても嬉しいものがあります。

AIの難しさ

最後に書こうと思うのが、敵AIの難しさです。AIというのはおこがましいですが、敵のバーの行動を作るのは骨が折れました。完璧にボールを弾くことのできるAIは作れますし、逆にボールを一切取れないAIを作ることも難しくありません。しかし丁度いいくらいにボールを跳ね返して、丁度いいくらいに取り損ねるAIをどうするか。これが一番頭を悩ませられました。強すぎる敵では勝てないし、弱すぎる敵では白ける。実際このレベルのゲームデザインですら無い知恵を絞らないといけないのは面白くもあり、壁でもありました。

調整した結果、「敵陣のあるラインからボールがなくなると中央で待機。そのラインにボールが入ってくると上下2分割したどちらか側に動き、さらに近くなるとボールに追随する動きをするAI」になりました。これによりある程度自然に見えるようになりましたが、作者側の視点からすれば「上下2分割に移動するラインの中でボールが壁にぶつかり、ボールを追随するラインまでに反対方向に飛んでいけば点を取れる」となってしまいました。なんというかメタなんですよね。これについては今もどうしたら良かったのか分かっていません。

問題点

問題点を挙げれば数が足りないくらいなのですが、ひとつにゲームを勝利でも敗北でもしたのちタイトル画面にいけない。または別のStageを選べないのは非常に不便です。勝利スコア数も選択できるのに毎回起動しなおしてはStageを選んで…っていうのは改めてやって不快になりました。UIだけではありませんが、こういうストレスフリーさを求めて最初に設計するというのも大事なのかもしれません。

また構文を全く理解していないのでif文ですべて無理やり作っているのが苦しいです。Switch文をどこかで一箇所使っているはずですが…他にもやりようがあったと思います。しかしプログラミング畑どころか齧ったこともない私にはのちのちこの構文をどう使っていいのか問題に悩まされることになるのです。

まとめ

最初につくったゲームというならこんなもんではないでしょうか。かかった時間はおおよそ6時間程度だと思いますが、そのほとんどが調整作業だったような気がします。ゲーム自体は単純で拡張性があり、今作り直すならああしてこうしてという考えも浮かびます。何年後かにまだ作っていれば時間と設計を決めて作り直してみたいですね。

マイクロソフトのGMS2紹介サイトのGMS2のロゴ画像をクリックするとGodot Engineに飛ばされるのはなんででしょうねぇ…

http://gorakuduka.com/gamemakerstudio2_002/

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ぼんやりしています。

コメント

コメントする

目次