Playdateシミュレーター

PlaydateシミュレーターはPlaydate実機を模倣した、Playdateにおける開発を迅速かつ簡単にするためのアプリケーションで、macOS、WindowsとLinuxでご利用いただけます。本アプリでは単にPlaydateアプリを実行するだけでなく、クランクや加速度計など、Playdateに搭載されているコントロール機能もエミュレートします。

Table of Contents

Playdate Simulator

コントロール

シミュレーター上で実行されているゲームは、画面上のGUIまたはキーボードショートカットでコントロールできます。また、互換性のある設定されたコントローラー、接続されているPlaydateコンソール自体からもコントロールが可能です。

Controlsメニューからコントロール方法を選択できます。どのキーで十字キーおよびABボタンをコントロールするのかを選択します。

互換性のあるコントローラーを使用するには、環境設定で構成します。

Controller preferences in the Playdate Simulator

クランクと加速度

シミュレーターには、デバイスに搭載されている加速度計とクランクによる入力を再現するためのGUIが含まれています。

Crank and Accelerometer controls in the Playdate Simulator

コントロールするには、それぞれをドラッグします。キーボードを使用したりマウスまたはその他のポインティングデバイスのスクロールホイールでもコントロールできます。クランクサークル上をダブルクリックすると、マウスを動かすだけでクランクを回せるようになります。

ゲームはクランクの状態、つまりドックに格納されているか否かを取得することができます。これをシミュレートするためのチェックボックスがあります。角度を手動で入力することも可能ですし、スライダーを使用して一定の前後回転を入力することもできます。

デバイスメニュー

Playdate本体をコンピュータに接続すると、シミュレーターの様々なデバイス機能が利用可能になります。デバイスメニューにアクセスする方法は以下の通りです:

  • USBケーブルでPlaydateとコンピュータを接続する。
  • Playdateの本体上面にあるボタンで、Playdateをアンロックする。
  • **macOS版では、**シミュレーターウインドウの右下に現れるPlaydateボタンを押します。{.platform .platform-mac}
  • **Windows版およびLinux版では、**メニューバーから、Deviceメニューを開きます。
Device menu in the Playdate Simulator

実機をシミュレーターのコントローラーとして使う

Playdateシミュレーターで提供される機能で開発をお楽しみいただく一方で、実機による操作感を確認したい場合はPlaydateデバイスをコントローラーモードにし、シミュレーターのコントローラーとして利用することも可能です。

メニューから、Device > Use Device as Controller を選択します。これにより、Playdate実機からシミュレーターをコントロールできるようになります。

**macOS版では、**逆のオプションもあります。Device > Control Device with Simulator を選択し、シミュレーターから実機をコントロールします。これは様々な入力を実機上でテストしたい場合などに役立ちます。

シミュレーターからゲームをアップロードする

シミュレーターに読み込まれている.pdxファイルがデバイスにアップロードされます。既に同じ名前の項目が存在する場合は、上書きされます。

**macOS版では、**新旧双方のバンドルがマージされます。デバイス上の古い.pdxにのみ存在するファイルは残され、その他が上書きされます。

大規模なゲームでは、アップロードに時間がかかる場合があります。

パフォーマンスについて

シミュレーター上のゲームパフォーマンスは、実際のPlaydateと比較してかなり高速です。ゲーム開発の際にはそれを考慮し、Playdateの実機上で定期的にテストしてください。

デバッグ機能を使用することで、コードのパフォーマンスについて多くのことを学べます。

Luaのパフォーマンスを制限する

Playdate > Throttle Lua Performance を有効にすると、シミュレーターは通常よりも遅くLuaコードを実行するようになります。実機の速度を正確にあらわすものではありませんが、問題がある領域をあぶり出すのに役立ちます。

アピアランス

スクリーンの更新をハイライトする

ゲームのパフォーマンスを向上される主な方法は、必要以上に再描画しないことです。Playdate > Highlight Screen Updates をオンにすると、ゲーム内で再描画されている数量を確認できるようになります:

Highlight Screen Updates in the Playdate Simulator

再描画が必要な場合、スプライトシステムを利用することで、コードがより効率的に実行される可能性があります。

スプライトコリジョン矩形を表示する

Playdate > Show Sprite Collision Rects を利用することで、コリジョンのデバッグに役立ちます。

ドローイングのデバッグ

コードがplaydate.debugDrawを実装している場合、Windows版とLinux版のPlaydateメニューから、その表示を切り替えられます。

デバイスの外観シミュレーション

Playdate > Simulate Device Appearance を有効にすると、以下のようになります:

  • Playdateハードウエアに合わせ、シミュレーターウインドウが黄色になります。
  • ハードウエアに合わせ、メモリLCDディスプレイと一致するよう単なる白黒ではなく、2色のグレイが使用されます。
  • スクリーンショットおよびGIFでも同様、2色のグレイが使用されます。
Simulated device appearance in the Playdate Simulator

スクリーンショットとGIFを保存する

ゲームの実行中、または一時停止した状態でツールバーの"カメラボタン"を押すと、スクリーンショットを撮ることができます。実際に押すと、PNG画像として保存するためのダイアログが表示されます。Option/Altキーを押すとカメラアイコンが変わり、ボタンを押すと画像として保存される代わりにクリップボードにコピーされます。

またツールバーの"ビデオカメラボタン"を押すと、GIFアニメーションの記録が開始されます。

Screenshot and GIF buttons in the Playdate Simulator

メモ: デバイスの外観シミュレーションが有効な場合、スクリーンショットとGIFもその設定が踏襲されます。

メモ: GIFはゲームサウンドを保存しません。音声付きのビデオをキャプチャしたい場合はMirrorもしくは同様のスクリーン録画アプリをご利用ください。

メモ: スクリーンの更新ハイライトコリジョン矩形デバッグによるドローイングなどの各機能が有効な場合でも、これらオーバーレイはスクリーンショットやGIFに保存されません。

デバッグについて

Playdateシミュレーターには、実行中のコードを測定、検査、そしてデバッグするための多数のツールが準備されています。これらは個別のウインドウとして利用可能で、ツールバーとWindowメニューからアクセスできます。

Debugging tools in the Playdate Simulator
  • Lua Memory. ゲームのメモリを占有している全てのLuaオブジェクトを表示します。メモ: 本ツールはゲームの一時停止中のみ利用可能です。
  • Malloc Log. Cコードごとのメモリ使用量を表示します。
  • Device Info. Playdateがコンピュータに接続されている場合、パフォーマンスとメモリ使用量に関する様々なグラフを表示します。
  • Console. コードから出力されたログを表示し、リアルタイムで評価するためのコマンド入力が行えます。
  • Sampler. 実行中のゲームをサンプリングし、コードが費やしている時間と場所を確認できます。
  • Event Recorder. macOSでは、これによりユーザ入力を記録し再生することができます。特定の一連のステップを再現する場合などに役立ちます。

アダプタプロトコルのデバッグ

**macOS版では、**PlaydateシミュレータでDebug Adapter Protocolがサポートされており、Novaの様なコードエディタを使用して1行ずつデバッグすることが可能です。

ショートカット

Action Shortcut
Restart Cmd/Ctrl-R
Pause Space
Lock Cmd/Ctrl-L
Menu Escape
Crank Forward [
Crank Backward ]
Volume Down -
Volume Up =
Toggle Full Screen Fn-F
Rotate Display Left Cmd/Ctrl ◀︎
Rotate Display Right Cmd/Ctrl ▶︎
2x Display Cmd/Ctrl-2