プラットフォーマー
ゲームジャンルにおける「プラットフォーマー(Platformer/Platform Game)」は、キャラクターを操作して、足場(Platform)から足場へとジャンプで跳び移ったり、障害物を避けながら目的地を目指したりする「ジャンプ
アクションゲーム」のことです。
1. ゲームの主な特徴
- ジャンプ中心のアクション
- ジャンプのタイミング、距離の計算、着地位置のコントロールがゲームの核となる。
- 「足場」がテーマ
- 足場を渡る、障害物を飛び越える、落下を避けるといった要素が必須。
- ステージ攻略
- ステージの終わり(ゴール)を目指す形式が多く、収集要素が設けられることもある。
2. プラットフォーマーの主な種類
- 2Dプラットフォーマー
- 側面(サイドビュー)から見た2D画面で移動する古典的スタイル。例: 『スーパーマリオブラザーズ』、『星のカービィ』、『ソニック・ザ・ヘッジホッグ』
- 3Dプラットフォーマー
- 3D空間でキャラクターを操作し、自由に探索するスタイル。例: 『スーパーマリオ64』、『クラッシュ・バンディクー』、『バンジョーとカズーイの大冒険』
3. 歴史と進化
- 1980年代
- 『ドンキーコング』や『スーパーマリオブラザーズ』がジャンルを確立。
- 1990年代〜
- 3D技術の向上により、探索要素を強めた「3Dプラットフォーマー」へ進化。
- 現在
- インディーゲームを中心に、パズル要素を組み合わせたものなど、多様な進化を遂げている。
Playdateにおけるプラットフォーマー
Playdateでのプラットフォーマー(横スクロールアクション)開発は、標準SDKの機能が非常に強力なため、比較的スムーズに構築できます。
1. 開発手法の選択:Pulp vs SDK
- Pulp (Webベースエディタ)
- 解像度が "200x120"(ネイティブの半分)に制限されます
- コードを書かずにタイルベースの簡単なアクションが作れますが、本格的なプラットフォーマーには向ません
- SDK (Lua / C)
- ネイティブ解像度 "400x240" をフル活用可能
- プラットフォーマーなら、自由度の高い Lua SDK または C SDK の利用を強く推奨します。
2. コア・コンポーネントの実装
- moveWithCollisions(x, y)
- ただ移動させるだけでなく、壁や床との衝突を検知し、跳ね返りや滑りなどの挙動(slide, freeze, overlap, bounce)を自動で返します。
- 重力の実装
- 毎フレーム velocity.y に重力値を加算し、 moveWithCollisions を呼び出すのが基本パターンです。
タイルマップとスクロールについては以下の方法が用意されています。
- playdate.graphics.tilemap
- 背景や足場の描画に使用します。
- スクロール
- カメラの移動は playdate.graphics.setDrawOffset(x, y) で行います。
- Tip
- 1-bit ディスプレイの特性上、1ピクセル単位のスクロールはディザリングのチラつき(Ghosting)が発生しやすいため、2ピクセル単位でのスクロールや、移動中のディザパターンの固定などの工夫が推奨されます。
3. 推奨ライブラリ・ツール
自前で物理演算を組むのも良いですが、以下のコミュニティ製ツールを使うと開発が劇的に加速します。
- pp-lib (https://github.com/RobertCurry0216/pp-lib)
- ジャンプのバッファリング、コヨーテタイム(足場を外れても一瞬ジャンプ可能)、カメラの追従、敵のAIなどがパッケージ化されたLua用ライブラリです。
- LDtk (https://ldtk.io/)
- 汎用2Dマップエディタ。Playdate向けのインポーターが存在し、凝ったレベルデザインが可能です。
- Noble Engine (https://github.com/NobleRobot/NobleEngine)
- シーン管理やメニュー構築など、ゲーム全体の構造を管理するためのフレームワークです。
4. Playdate特有の設計
- クランク(Crank)の活用
- プラットフォーマーにおいて、クランクは単なる「おまけ」ではありません。
- ギミック:
- エレベーターの昇降、ネジを回して動く足場、銃の照準合わせなどに割り当てるとPlaydateらしさが出ます。
- 巻き戻し:
- 死んだ瞬間にクランクを回すと時間を巻き戻せる(『Braid』のような)仕組みも人気があります。
1-bitビジュアルの視認性としては以下のことを考慮する必要があります。
- アウトライン
- 背景とキャラが混ざりやすいため、キャラクタースプライトには白い縁取り(アウトライン)を付けるのが定石です。
- フォントサイズ
- Designing for Playdate のガイドラインでは、可読性のためにテキストは 8px以上(推奨は14px程度)を保つことが推奨されています。
5. 学習ステップ
- 1. SDK同梱のサンプル Level 1-1 を見る
- SDKインストールディレクトリ内の Examples/Level 1-1 に、Luaでのタイルマップ・スクロール・衝突判定の完璧な実装例が含まれています。これが最も信頼できる教科書です。
- 2. Inside Playdate ドキュメントの Sprites セクションを熟読
- 特に collisionResponse 関数の使い分けを理解すると、坂道や「すり抜ける床」の実装が楽になります。
関連ページ
最終更新:2026年05月04日 17:11