1. ハードウェア・表示の基礎
CPU・メモリ
- CPU: PlaydateのCPUは168MHz〜180MHz動作のARM Cortex-M7 (STM32F7) を搭載しています
- メモリ: 16MB 外部RAM (PSRAM) と約320KBのCPU内部のSRAMが搭載されています
- フレームバッファ: ディスプレイに表示する1画面分(1フレーム)の画像データを一時的に格納するメモリ領域。Playdateは "400x240x1bit" なので、わずか12KBほどです
- Display Buffer: 液晶パネルが実際に表示に使用しているデータ
ディスプレイ
- LCD: 液晶ディスプレイのことで、Playdateはシャープ製のバックライトのない単色のモノクロ液晶 (Sharp Memory LCD) を採用しています
- Sharp Memory LCD: Playdateが採用している液晶ディスプレイ。電子ペーパー並みの省電力性と、高速な応答速度(動画表示可能)を両立しており、太陽光下でも高い視認性を発揮できる
- 解像度: デジタル画像や画面表示における「画素(ピクセル)の密度」や「きめ細かさ」のこと。Playdate の解像度は "400 × 240" です
- 1-bit ディスプレイ: Playdateの画面は「白か黒」の2色しか表現できません。中間色のグレーは「ディザリング」という技法で表現します
- フレームレート: 1秒間に何枚の静止画(フレーム)で構成されているかを示す数値で、Playdateはデフォルト “30fps” です
入力デバイス
- D-Pad (十字ボタン): Directional Padのことで、本体左側に配置されたクリック感のある小型の4方向ボタン
- クランク (Crank): Playdate最大の特徴である手回しレバー。角度(0〜360度)や回転速度を取得して入力に使います
- Docked / Undocked: クランクが本体に収納されている(Docked)か、引き出されている(Undocked)かの状態を指します
- 加速度センサー: 本体の傾きや動き、振動を検知できる「3軸の加速度センサー」を搭載しています
- マイク: Playdateにはマイク機能があり、音声の録音や、音量を利用したインタラクティブな演出(「息を吹きかける」など)が可能です
2. システム・実行サイクル
開発ツール
- playdate.update():最重要の関数です。1秒間に30回(デフォルト)呼ばれるメインループです。この中で描画や入力処理を行います
- pdx (Playdate Executable): Playdateの実行ファイル形式(フォルダ)。ソースコードや画像をコンパイル・パッケージ化したものです
- pdc (Playdate Compiler): Playdateの実行ファイルを生成するための専用コンパイラ
- Playdate OS: Panic社が開発した携帯ゲーム機「Playdate」用の独自のオペレーティングシステム
- Playdate Simulator: PC上でPlaydateの挙動を再現する開発ツール。クランクの回転などもキーボードやマウスでシミュレートできます。
- Playdate Mirror: 実機の画面をPCにリアルタイムで映し出し、PCのコントローラーで操作もできる公式ツール。配信やデバッグに便利です。
- Pulp: ブラウザ上で動作する初心者向けのゲーム制作ツール
テキストエディタ
- VSCode: Playdateの開発において、Visual Studio Code(VSCode)は事実上の標準エディタとして広く利用されています
- Nova: Panic社が開発したMac専用の高速・軽量なコードエディタ。人気エディタ「Coda」の後継として開発され、ネイティブな動作、拡張性の高いAPI、Transimitのファイル転送機能、デバッグツールなどを備えた、Webエンジニア向けのツールです
プログラム全般
- コールバック関数: ある関数(親関数)に引数として渡され、その処理の途中や完了後に「呼び戻される(call back)」関数
- オブジェクト指向 (Object-Oriented): システムをデータ(属性)と処理(メソッド)をセットにした「モノ(オブジェクト)」の集合体として捉え、それらを組み合わせてプログラム全体を構成する設計・開発思想
- 1始まり (1-based indexing): Luaでは、配列(テーブル)の要素にアクセスする際、最初の要素のインデックス(添字)が「0」ではなく「1」からスタートする仕様です
- クロージャ (Closure): 「関数」と「その関数が作成された環境(外部ローカル変数)」をセットにしたもの
- デバッグ: Playdateにおけるデバッグ方法について
- データ駆動設計: ゲームの挙動やパラメータ(体力、攻撃力、移動速度など)を、プログラムのソースコードから切り離し、外部データ(CSV、JSON、XML、ScriptableObjectなど)として管理・運用する設計手法のこと
3. グラフィックス(画像・描画)
- LCB (Local Chunked Bitmap / Dirty Rects): 画面全体を書き換えるのではなく、変化があった場所(Dirtyな領域)だけを書き換えるPlaydate独自の高速化の仕組みです。
- Dirty Rows: ディスプレイの描画更新を最適化するための行単位の管理フラグ
- フォント (fnt / png): Playdateのフォントは専用の形式です。画像ベースのフォントを使用して、1-bit ディスプレイで見やすい文字を表示します。
- アウトライン (Outline): 主に物体や形状の「輪郭」「外周線」「外形」を指す言葉。これによって視覚的な形を強調てきます
- ステンシル (Stencil): 特定の形(パターン)で描画範囲を切り抜く機能。円形に画像を切り抜く際などに使います
- シェーディング: 主にスプライト(画像)や背景に対して、ピクセル単位で色調変更、影の描写、発光などの視覚効果を与える処理
- アフィン変換: アフィン変換とは、画像や図形の「回転」「拡大縮小」「平行移動」「せん断(歪み)」を、行列とベクトルを用いて線形に処理する幾何学的な操作です
- タイルマップ: 小さな画像(タイル)を格子状(グリッド)に並べて、2Dゲームの背景やステージを効率的に作成・管理する機能。Playdateのタイルマップはイメージテーブルとの連携で実現します
- 9スライス: UIのボタンやウィンドウなどの矩形画像を、角の歪みを抑えながら任意のサイズに引き伸ばして描画するための機能
- playdate.graphicsのサブモジュール: 描画や視覚効果を司る非常に強力なモジュール
- ディザリング (Dithering): 白と黒のドットを網目状に配置して、擬似的にグレーに見せる手法。SDKにはこれを自動で行う機能が備わっています
- GFXP: Playdateコンソール用のディザリングパターンコレクションを備えた非公式の小さなライブラリ
画像フォーマット
- PDI (Playdate Image): Playdateの実機およびシミュレータで高速に描画するために最適化されたコンパイル済みの画像ファイル形式
- GIF (Graphics Interchange Format): 最大256色の画像を無劣化で圧縮できる画像ファイルフォーマット(拡張子 .gif)
- スプライト (Sprite): Playdate SDKにおけるゲームオブジェクト管理システム。位置情報・描画機能・コリジョン機能などが用意されています
- Display List (ディスプレイリスト): システムが管理する「描画待ち行列」です。スプライトを add() するとこのリストに入り、自動的に描画対象となります
- Z-Index (Zインデックス): 描画の重なり順を制御する数値です。値が大きいほど手前に表示されます。setZIndex() で設定します
- イメージテーブル (Image Table): いわゆる「スプライトシート」。複数の画像を1つのファイルにまとめ、インデックス(番号)で呼び出します。アニメーションに必須です
- カメラ: 空間の表示範囲や視点を決定し、カメラワークで演出を行う
- 視点: プレイヤーが画面を通してゲーム世界をどのように見るかを定義するもの
- サイドビュー (横視点): キャラクターやゲーム世界を真横(側面)から見た視点
- トップダウンビュー (真上・見下ろし視点): プレイヤーがゲーム世界を上空から見下ろす形式の視点
- クォータービュー / アイソメトリック (斜め見下ろし視点): 立体物を斜め上方(一般的に約120度ごとの視点)から見下ろしたように描く「斜め視点」の技法
- ファーストパーソンビュー (擬似3Dの一人称視点): 2Dゲームにおけるファーストパーソンビュー(一人称視点)は、操作キャラクターの目線(カメラ)と視点が一致するゲームスタイル
- パララックス (Parallax / 視差効果): ゲーム画面をスクロールする際に、複数の背景レイヤーをそれぞれ異なる速度で動かす技法。2Dゲームにおける多重スクロールをパララックスと呼ぶこともある
- 多重スクロール (パララックススクロール): 背景、中景、前景など複数のレイヤー(層)を異なる速度で移動させ、2D画面に擬似的な奥行きや立体感、疾走感を演出する映像・ゲーム技術
- ラスタースクロール: 表示画面の水平走査線(ラスタ)ごとにスクロール量や方向を変化させる描画技術
- 擬似3D: 真の3次元空間データ(ポリゴンなど)を使わず、2Dの画像や背景技術を駆使して、立体感や奥行きがあるように見せる技術や表現方法
- 遠近法: 2次元の平面(絵画、写真、図面)上に3次元の奥行きや立体感を表現する技法
4. スクリプト・データ管理
- CoreLibs: import "CoreLibs/graphics" のように呼び出す、公式が提供する標準ライブラリ群。例えば OOP(オブジェクト指向)機能もここに含まれます。
- main.lua: ゲームの起動時に最初に読み込まれるエントリーポイントとなるファイル
- データストア (Data Store): ゲームのセーブデータ(JSON形式など)を保存・読み込みするための仕組み
- Playdate SDK (Software Development Kit): 開発に必要なコンパイラ、ライブラリ、シミュレータ一式のこと
- サンドボックス (Sandbox): コンピュータやソフトウェアの分野において、システムから隔離された「安全な仮想環境」のこと
- JSON: Javascriptのオブジェクト記法をもとにした軽量なデータフォーマット。Playdateでは、ゲームデータのセーブ、設定ファイルの保存、あるいはレベルデータの管理に使われます
- コリジョン: オブジェクト(キャラクターや背景など)同士の衝突や接触を検知する「当たり判定」の領域、またはその仕組み
- 衝突検知 (Collision Detection): ゲーム内のキャラクター、オブジェクト、地形などが、物理的に接触、あるいは交差した(当たった)かどうかを計算・検出すること
- 衝突応答 (Collision Responses): ゲーム内のオブジェクト同士が衝突(コリジョン)したことを検知した後に、その物体が「どのように反応するか」を定義する物理演算やスクリプト上の処理
- AABB (Axis-Aligned Bounding Boxes): 回転しない矩形のコリジョン
- Overlap: 「衝突検知するが、相手を通り抜ける (衝突応答しない)」という挙動をするコリジョン。衝突したら消滅する場合や、イベントのトリガー用に使われる
- レイキャスティング: 3D空間上の点から直線(レイ)を放ち、最初に衝突する物体を検出する計算手法
6. オーディオ
再生
ファイルフォーマット
- PCM: アナログ信号をデジタルデータに変換する最も基本的かつ「生の」形式
- ADPCM: Playdate における音声をデジタル化する際の一般的な圧縮方式
- シンセサイザー: スウェーデンの電子楽器メーカー Teenage Engineeringとの共同開発による強力なソフトウェア音源
- 波形: 音の最小単位である「オシレーター(発振器)が作り出す、音の素となる電気信号の形状」のこと
- エンベロープ: シンセサイザーなどの音響において、音の立ち上がりから減衰までの時間的な音量・音色の変化を示すもの。ADSR(Attack, Decay, Sustain, Release)などがよく使われます
- LFO (Low Frequency Oscillator): 音のパラメータ(音量、ピッチ、フィルターのカットオフなど)を時間経過とともに周期的に変化させるための「モジュレーション(変調)ソース」
その他
- マイク: Playdateにはマイク機能があり、音声の録音や、音量を利用したインタラクティブな演出(「息を吹きかける」など)が可能です
- SEQ (サウンドツール): Gregory Kogos氏が開発した4トラックのシーケンサーツール。Playdateのシンセサイザーの挙動を実機で手軽に確認できます
その他
- Panic社: Panic Inc. (Panic社)は、米国ポートランドを拠点とするソフトウェア・ビデオゲーム会社で、Mac用ツールの開発で培った高いデザイン性を武器に、Playdateの企画・製造・運営を統括しています
- Teenage Engineering: スウェーデンのストックホルムに拠点を置く電子楽器・家電メーカー。Playdateのハードウェア共同開発者。クランク、イエローの筐体、ドッキングステーションなどのデザインを担当している
- Catalog (カタログ): Panic社が運営する公式ストア。審査がありますが、実機のストアから直接購入可能です
- Sideloading (サイドロード): 開発者が自分のWebサイト(Itch.ioなど)でファイルを配布し、ユーザーがUSB経由やWebサイトから実機へ直接インストールする方法
- Playdate 開発者フォーラム: ゲーム開発者向け公式コミュニティサイト
- Awesome Playdate: Playdateの開発に役立つ情報やツールをまとめたリンク集
最終更新:2026年05月20日 06:45