GameMaker Studio 2を始めてみる

久々の更新。

仕事の絡みでここのところUE4を使う機会が多いのですが、プライベートでは違うものを触って多少は気分転換を、ということで子供とGameMaker Studio 2を触り始めてみました。

まだ何かをまとめて語れるところまで至ってはいませんが、GameMaker関連の日本語情報はびっくりするぐらい少ないので、何かの足しにはなるだろうということで、GMS2を使い始めるにあたって役立った情報を軽くまとめてみます。

GameMaker Studio 2 (GMS2)とは

GameMaker Studio 2は YoYo Gamesが開発しているマルチプラットフォーム対応のゲーム開発ツールで、その名の通りGameMaker Studio1の後継バージョンとして昨年11年に発表されました。

UnityやUnreal Engineとの大きな違いは2Dゲームの開発に特化していることで、3D関連の機能がない分、少ない知識で気軽にゲーム開発を始めることができます。また、2Dの画像やアニメーションを作成するツールも内蔵しており、その点も別途専用のモデリングツールでモデルやモーションの作成が必要となる3Dゲーム開発環境との大きな違いと言えます。

前バージョンのものになりますが、GameMakerで作られたゲーム紹介動画がこちらです。インディ系のメジャータイトルが結構あります。

www.youtube.com

利用可能なリソースサイズに制限はありますが、こちらからダウンロードできるトライアル版でほとんどの機能を試すことができます。ちなみに私は試用の後に$99.99のデスクトップ版を購入しました。

GameMaker Studio 2の2種類の開発方法

GameMaker Studio 2にはDrag and DropGameMaker Language(GML)の2種類のゲーム開発方法があります。

Drag and Dropはプログラムを直接記述するのではなく、各機能ブロックを、以下の動画のように、文字通りドラッグ&ドロップでつなげていく作成方式です。

www.youtube.com

一方、GameMaker LanguageはJavaScriptライクな独自言語をツール内のエディタで記述する作成方式です。

どちらも制御対象となるオブジェクト(ゲームキャラクター)を作成し、各オブジェクトのCreate(初期化)、Step(毎フレームの更新)、Draw(描画)といった各種イベントに対して処理を記述するという流れは同じです。

では、Drag and DropGMLのどちらを使用するべきかなのですが、両方試してみた感じでは、GMLの方にしておいた方がよさそうです。

Drag and DropよりGMLにした方がよい理由

なぜ、Drag and DropよりもGMLを使用した方がよいのでしょうか。

Drag and Dropの方がビジュアルベースで処理を作成できるので、一見覚えることが少なく簡単そうに見えるのですが、実はビジュアルベースで記述できるのは制御構文の一部、例えるなら代入文のx=のところまでや、繰り返し処理のfor i=0ぐらいのところまでで、それ以降は、それぞれの機能ブロックのプロパティとしてGMLでコードを記述する必要があります。

例えば以下の図は、チュートリアルサンプルで敵キャラクターがダメージを受けた際に消える処理のDrag and Dropの一部になりますが、効果音の音程を決めるSet Audio Pitchブロックでは、音程を指定するPitchプロパティでrandom_range(0.8, 1.2)GMLコードで音程がランダムに変化するように指定しています。

f:id:tkitao:20170910150124p:plain

これの意味するところは、Drag and Dropはぱっと見とっつきやすく見えますが、実際は機能ブロック一式を覚えることに加えて、各プロパティの記述用にGMLの文法とAPI一式も把握する必要があり、文法とAPIのみの習得で済むGMLに対してトータルでの学習コストはより高くなるということです。

YoYo GamesがDrag and Dropにどれくらい重点を置いているのかはよくわからないのですが、すべての処理をビジュアルスクリプトで統一的に管理しようとしているUnreal EngineのBlueprintとは大分スタンスが異なるものだと思っておいたほうがよさそうです。

GameMaker Studio 2の習得方法

GameMaker Studio 2の機能以外のすばらしい点は、非常に丁寧なチュートリアル動画があることです。(一方、残念なところは日本語版の動画はないことでしょうか)

英語のトークは気にせず、以下のチュートリアル動画シリーズの各操作を一通りまねていくと、基本機能を一通り押さえることができます。

www.youtube.com

その次のステップとしては、実際のGMS2のゲームプログラムを眺めてよく使われるAPIや実践的なテクニックを身に着けるのがよいと思います。

まだ、私もチェックしきれていませんが、例えば以下のゲームジャムのコードなどは参考になるのではないかと思います。

f:id:tkitao:20170910153348p:plain

GameMaker Studio 2 - BetaJam 2!

終わりに

GameMaker Studio 2について簡単に紹介してみました。2Dゲーム開発であればとっつきやすく高機能で、非常にいい開発ツールではないかと思います。やはり最大のネックは日本語の情報が壊滅的に少ないことでしょうか。

次回はGameMaker Studio 2で横スクロール型ゲームの衝突判定の作成方法について簡単に解説してみるつもりです。