マイコンでの開発といえば、たいていはボードに目を凝らすことになります。スクリーンショットは撮れませんし、デバッガーを用意しないと、どれくらいの速さで動いているかもわかりません。Deki 0.18.2 では、その差を少し縮めました。ボードは書き込みに使うのと同じ USB ケーブル越しにいくつかのリクエストに応え、エディターはその尋ね方を知っています。
ボードのスクリーンショット
エディターは、接続したボードの画面に出ているフレームを PNG として保存できます。USB 越しに読み戻した本物のフレームバッファで、転送に失敗したものは保存せずに検出できるよう、チェックしています。1 秒ほどかかりますが、ゲームはその 1 秒を経過時間に入れないので、時間で動くものがあとで先に飛んでしまうことはありません。

パネル上に見える不具合が、エンジンが描いたフレームの中にあるのか、パネルに届くまでの途中で起きているのかを見分けるには、これがいちばん手っ取り早い方法です。
どれくらいの速さで動いているか
ボードに尋ねると、1 秒あたりのフレーム数、平均的なフレームが更新・描画・送信にかけた時間、空きメモリーの量を報告します。さらに詳しく見たいときは、描画時間をコンポーネントの種類ごとに分けることもできます。また、要求に応じて任意のシーンを開けるので、1 つのスクリプトですべてのシーンを計測できます。60 fps への取り組みも、こうして計測しました。
準備を減らす
- ポートは自動で見つかります。 ポートを指定せずに書き込むと、シリアルポートが 1 つだけならそれを、複数あれば最初に ESP32 として応答したものを選びます。
- ビルドの出力は手元に。 ビルドや書き込みの出力と、それがどう終わったかは、エディターの Activity パネルに表示されます。アセットのエクスポートに失敗したときは、どのアセットかを教えてくれます。
スクリプトから、エージェントから
これらはすべて、エディターの MCP サーバーからも使えます。動いているエディターにエージェントをつなげば、ファームウェアのビルド、ボードへの書き込み、ボード上でのシーンの読み込み、フレームレートの読み取り、画面の確認まで、人の手を介さずにこなせます。このリリースのデバイス関連の作業の大半は、まさにこのループで進めました。
リクエストはシリアルポート上の単純なテキスト行なので、シリアルポートを開けるものなら何からでも使えます。コンソールがチップ自身の USB ポートか UART になっている ESP32 ボードなら、どれでも動きます。