
ゲームの世界に直接絵を描くように
こんにちは、shomaです。
GameMaker Advent Calendar 2024の8日目です。
今回はゲーム画面に直接オブジェクトを置いて遊ぶ作り方が楽しかったので紹介します。
はじめに
GameMaker歴は1年ちょっとです。テキトーなこと書いてるかもです。
去年からMotionRecという記録と再生を駆使して進むパズルアクションをGameMakerで作ってます。その前はPICO-8でプロトタイプを作ってました。変えた理由はNintendo Switchでリリースしたいな〜と思っていて、Switch書き出し機能のあるゲームエンジンのなかでドット絵と親和性が高そうだったからです。
ゲームの世界に直接絵を描くように
2Dプラットフォーマーを作るときはRoomにキャラクターや壁、オブジェクトを配置してゲームを起動して遊び心地を確かめるのが標準的な作り方です。そこで課題なのはアイデアはたくさん出てくるけどステージのどこに配置しようなど考えてると時間がかかること。
そこでゲームを起動した画面でマウスでポチポチ絵を描くようにオブジェクトを置けるようにしてみました。
夜中にMotionRecのサンドボックス(?)作りたくなったので実装してみた
— shoma (@DonutsHunter) November 16, 2024
遊びながらステージ考えるの楽しい pic.twitter.com/M2wQzdE3rY
このゲームは記録した位置を確認してから壁やトゲを配置するとピッタリ作れる
これは真上に行くだけなら上に登る行動を記録すればいいが、右のリフトに乗りたいときは工夫する必要がある
パッとみどう進めば良いかわからない地形を考えるために試行錯誤する
こうするとアイデア出しには結構良くてぽんぽんとアイデアをカタチにしていけます。それをスクショしておき、figmaなどでカード状にして並び替えたりしてステージの流れを検討します。
ステージの1つ1つのデザインとステージの構成を分けて考えることでパズルの完成度、密度がぐっと上がったように感じました。
実装まわり
やってることはシンプルで、マウスでクリックした位置にオブジェクトを生成してるだけです。マリオメーカーのようにユーザーが作って遊べるものを作るのは大変ですが、自分や周りの人がプロトタイピングするツールを作るのはすごく簡単なのでおすすめです。
if (mouse_check_button(mb_left))
{
if (!position_meeting(mouse_x - (mouse_x%16)+8, mouse_y - (mouse_y%16)+8, oWall))
{
instance_create_layer(mouse_x - (mouse_x%16)+8, mouse_y - (mouse_y%16)+8, "Object", oWall);
}
}
また、発展として
- オブジェクトをグリットにスナップさせて配置させる
- 押してる間は絵を描くように連続でオブジェクトを配置できるように
- 消しゴムツール
- オブジェクトの切り替え
...などを実装していくと楽しくステージ作りに集中できるのではないでしょうか。僕は深夜の謎テンションで実装しました。楽しいね。
------------------------------
GameMaker Advent Calendar 2024
MotionRecは動きの軌跡を記録・再生する力で荒廃した世界を冒険するレコードパズルアクションです。
https://store.steampowered.com/app/2602230/MOTIONREC/