【プチコン4講座】パズルゲームはどう作るのか

プチコン4

プチコン4 パズルゲームの作り方

こんにちは。なおキーヌです。

ブログ毎日更新は261日目になります。

スプライトの基本的な学習を完了しましたでしょうか?

まだスプライトがなにかわからないという方はまず

アクションゲームを作るためにスプライトを覚えよう

から見ていただけるとより一層理解が深まります。

今回のミニゲーム作りはパズルゲームの作り方講座ということで第1回目は恒例の考察回です。

実は私、恥ずかしながらパズルゲームというのを作ったことがありません。

パズルゲームと一口に言ってもテトリスやぷよぷよといった落ちモノパズルや
15枚のパネルを動かして絵を完成させるタイプや穴埋めをしていくタイプもありますよね。

今回は最もシンプルな穴埋めタイプのパズルゲームを作っていこうと思います。

穴埋め系パズルで代表的なのはやはり倉庫番ではないでしょうか?

スプライトを覚えたてでなおかつ衝突判定を使えるのであれば、
倉庫番風のゲームを作るのが一番難易度的にもいいんじゃないでしょうか?

それではプチコンミニゲーム講座第10回目を始めようと思います。

  1. 倉庫番の基本ルールを知ろう
  2. 倉庫番風ゲームを作るのに必要な要素を考えよう
  3. 謎解きはゴールからの逆算が基本

倉庫番の基本ルールを知ろう

倉庫番のルールはとてもシンプルで、目印のところに木箱を押して
全ての位置に置くことが出来ればステージクリアとなります。

ただし、木箱を引くことはできないルールです。

倉庫番なら荷物を引くぐらいしろよって思うかもしれませんが、ゲームなので(笑)

パズルゲームなので、むやみやたらに木箱を押すと詰みます。

やり直し機能があるので何度でもやりなおせるんですけどね。

特に当たったらミスになる敵もいないので作る側としても
敵の動きとかを一切作らないでパズルに集中できるため、
ゲーム作りの入門としても優れていると思います。

スプライトを使えるようになると見た目も面白くなるので、
スプライト入門が終わった今こそ、倉庫番風のゲームを作るべきだと思います。

倉庫番のコピーを作っても面白くないかもしれないので、
そこにオリジナルのシステムをくわえてみるといいかもしれません。

倉庫番風ゲームを作るのに必要な要素を考えよう

倉庫番風のゲームを作るために必要な要素を箇条書きしてみましょう。

  • スプライトの表示
  • スプライトの衝突判定機能(当たり判定)
  • キーコントロール処理
  • マップの表示
  • クリアフラグ

必要最低限なものだけを書くとこれだけですね。

1つずつ軽く見ていきましょうか。

スプライトの表示

これはもう特にいう事はないですね(笑)

スプライトの基礎を学んでくれた方々はもう簡単に扱えるでしょう。

しかしスプライトはまだまだいろんな機能があるので、
今回も応用として新しいスプライトの機能を使えたら使っていきます。

スプライトの衝突判定機能(当たり判定)

衝突判定が無いと木箱が押せないので必須ですね。

今回はプレイヤー以外は基本的に押されるまで移動しないので
衝突判定を取るのがすごく楽です。

面倒な部分は上下左右どこから押されたのか
倉庫番風ゲーム作りのキモとなってきます。

キーコントロール処理

スプライトの基礎を学んでくれた人はなんとなく使ってくれていたとおもうのですが、
今回もキーに関しては説明はあまりしません。

というのも基本的に移動ぐらいしか使わないので、
コントローラー操作さえ出来てしまえば特に弄ることは無いからです。

そのかわりゲーム作りに集中しましょう!

もしキー操作について詳しく知りたいのであれば過去にやったSTG作成講座の

プレイヤーをコントロールしてみよう

で詳しく解説しているので見てください!

対話形式で構成されていて、なおかつプログラミングをしたことが無い人にも
だいぶ判りやすくなっているとおもいます。

マップの表示

スプライトの基礎の時はマップはスプライトでやりましたが、
今回は折角なのでテキストスクリーンを学んでみましょう。

マップデータの作り方は配列を使ってやるのですが、
もしかしたらもうすでにマップエディタを完成させてくれている人がいるかもしれないので
出来ればマップエディタを使ってステージを作りたいですね。

クリアフラグ

スプライトの基礎でクリアフラグを作り損ねてしまったので、
今回はパズルゲームだという事でクリアフラグを実装しましょう。

倉庫番風のゲームであれば指定の位置にすべてモノを置けばステージクリアです。

なのでステージに対してクリアになるフラグを変更する必要があります。

ここでも衝突判定を利用できるので、衝突判定復習にもってこいですね!

謎解きはゴールからの逆算が基本

パズルゲームってステージを考えるの難しいと思いませんか?

普通に考えると結構難しいのですが、
実は逆から考えると意外と簡単に謎解きが作れてしまうんです。

倉庫番風のゲームで言えばまずはクリアフラグがONになっていく場所をきめます。

そして本来のルールでは木箱を押すことしかできないとありましたよね。

そして逆から考えるわけですからステージを作るときは真逆のことをすればいいわけです。

具体的に言うと押すのではなく引くしか出来ないというルールで考えれば、
最終的に木箱を置く場所から引っ張って好きな位置に木箱を移動させればOKです。

もちろん、押して同じ動きをしたらクリアできるようにしないと
ゲームとして破綻してしまうので気を付けてください。

引っ張った木箱の位置が決まったらその値をメモって、
ステージの木箱の初期値にしてしまいましょう。

次回から実際に倉庫番風ゲームを作ってみましょう。

倉庫番というと著作権に引っかかってしまうので、
ソウコバンライクとでも呼びましょうか(笑)

海外の倉庫番の名前はsokobanらしいので英語で書くとsokobanlikeでしょうか。

一旦は作ってみてオリジナル要素を付け加えるかはそこで考えてみましょう。

それでは。