はじめに
シンセとか4k introまとめたいけど、まず直近で終わったヤツについてまとめます。
GameMaker:Studioとは
公式
https://www.yoyogames.com/gamemaker/
特徴
- 後方互換性あり(前バージョンがかなり有名、バージョン間インポート機能あり
- マルチプラットフォーム(1個作れば他環境へのエクスポートが楽
- オブジェクトベースでGUI操作+スクリプトベースでゲームを作成する
- スクリプト言語(GML)の文法が超強力
- エンジン自体が3Dアーキテクチャベースの環境
その他にも色々ありますけど。
項目の詳細
1. 後方互換性あり
元々同じように2Dベースで作られた前バージョンが存在しているわけですが、
これを利用して前の資産をほぼ互換性を保った状態で移植が可能になってるみたいです。
(1→2への移植はOKですが、2→1への移植はNGです
2. マルチプラットフォーム
Unityとかもそうなんですが、1個プロジェクト作れば同じソースコードとデータで移植が楽に行えます。
ただ気をつけた方が良いのが、「YoYoCompiler」を利用する場合。
これは、VisualStudioのコンパイラを利用してC言語に変換したソースコードをコンパイルしてしまおうというもの。
動作速度やネイティブなバイナリの出力が可能になりますが、コンパイラを使わない状態と結果に差異が出てくるケースがあります。
よって、一度テストしてみてから差異がないことを確認してみる等、いきなり導入しないことをおすすめします。
ただ使えるようになると強力です。
3. オブジェクトベースでGUI操作+スクリプトベースでゲームを作成する
これは、以下の形式でゲームを作っていくことになります。
- オブジェクトを画面に配置する
- オブジェクトの振る舞いを設定する(ソースコード等)
- スプライト・スクリプトやシェーダ等リソースの呼び出しを行う
つまり登場するオブジェクトをベースにゲームを作っていくことが可能になり、
登場人物とその行動の把握が容易になります。
UnityやUnrealEngine4と似たような構成にはなっていますが、2Dに機能を絞っている分、GameMaker:Studioは記述や設定が簡略化されている要素が見受けられます。
4. スクリプト言語(GML)の文法が超強力
C言語に似た文法で処理を書くことができるので便利です。
中でも強力な文法が「with」になります。
これはGML独自と思われる文法で、
ゲーム中に登場しているオブジェクト(キャラクター等の定義)が登場していた場合、処理を実行するというものです。
つまり、「オブジェクトが画面内いなかったら処理を行わない、オブジェクトが画面内にいたら処理を行う」ということが簡単に実装できるのです。
速度的にも仮想マシン上で動かしているらしく、そこまで遅いという印象は持っていません。(前述のYoYoCompilerを使うことで更に最適化がかかる可能性あり)
5. エンジン自体が3Dアーキテクチャベースの環境
これは公式というよりも自分が実装しらべた結果なのですが、少なくともWindows環境では、「3Dベースでの実装がなされている」形になります。
これによって、3Dアーキテクチャの知識を利用したGPUを利用するアプローチも可能となっております。
一番わかり易いところでは
- GPUアクセラレートによる描画の高速化が可能
- シェーダを利用して陰影・カラーキー・特殊処理が可能
- 3Dモデル・カメラの利用が可能
というところです。
実際自分のプログラムで以下の実装を確認済み。
- テクスチャを歪ませてラスタースクロール
- 透過オブジェクトに対し陰影をつける
- 2Dグラフィック中にレイマーチングによる描画を組み込み
ただ、エンジン上で制約かけているケースがあるため、どういうフローなら利用可能かは確認する必要あり。
(それでもUnityとかよりはアクセスしやすいと思う)
おわり
2Dベースのゲームやアプリケーションを利用するなら有用な選択肢になるかと思います。