Deki はモジュール式の C++ エンジンです。コアは小さく、レンダリングから Wi-Fi、プラットフォームそのものまで、ほかのすべては足したり外したりできるパッケージです。だから、ゲーム、機器のインターフェース、ツール、画面のないサービスまで、必要なものを何でも作れます。
組み込み機器を第一に作られています。携帯ゲーム機、バッジ、ダッシュボード、ガジェット、センサー。デスクトップのゲームエンジンのようなビジュアルエディターがあり、Build ボタンでプロジェクトをボード向けのファームウェアにして書き込み、同じプロジェクトがデスクトップでも動きます。
できること
- ビジュアルエディター (Windows と Linux): シーン、インスペクター、ボードが描くとおりに描く Play ビュー、元に戻す、ホットリロード。
- 振る舞いは C++ で。 コンポーネントは小さな C++ クラスです。フィールドはインスペクターに出て、シーンと一緒に保存され、元に戻せます。登録するものは何もありません。
- すぐに使える 2D: スプライトとアニメーション、好きなフォントのテキスト、グラデーション、ボタン、スクロールするリスト、ローラー、Tiled のマップ、パーティクル、トゥイーン、ステートマシン。簡単な 3D にはソフトウェア 3D パッケージ。
- 小さなチップでの速さ。 デモのすべてのシーンが、LilyGO T-Deck Plus と T-Display S3 AMOLED で毎秒 60 フレーム、裂けずに動きます。画面のほとんどが止まっているときは、変わったところだけを描いて送ります。
- プラットフォームはパッケージ。 1 つのプロジェクトが、パッケージのあるすべてのプラットフォーム向けにビルドできます。新しいチップや OS は新しいプラットフォームパッケージで、新しいエンジンではありません。
- 機能もすべてパッケージ。 レンダリング、入力、オーディオ、Wi-Fi、BLE、HTTP、GPS、LoRa、SD カード、I2C、SPI、GPIO。ゲームが使うものを足し、残りは外せば、ビルドには入れたものだけが入ります。
- 無料のオープンソース。 Apache 2.0 ライセンスです。
動く環境
| 今あるプラットフォーム | ESP32 ファミリー (ESP-IDF)、Tactility OS、Windows、Linux |
| すぐに使えるボード | LilyGO T-Deck、T-Deck Plus、T-Display S3 AMOLED |
| 自分のボード | 画面、ピン、バスをエディターで記述 |
| 新しいチップや OS | それ自身のプラットフォームパッケージ |
| 実機で動かしたもの | ESP32-S3。ビルドは ESP32、ESP32-S2、-C3、-C6、-H2 も対象 |
| 画面 | ILI9341、ILI9488、ST7735、ST7789、ST7796、GC9A01、SSD1351 と 2 種類の AMOLED コントローラー。SPI、クアッド SPI、パラレル。デスクトップではウィンドウ |
Deki は浮動小数点を多く使うので、ハードウェア FPU のあるチップでいちばんよく動きます。
ほかとの違い
- LVGL はユーザーインターフェースのライブラリです。C で書くウィジェット、レイアウト、テーマで、メニューやダッシュボード向けです。Deki はシーンエディターを持つゲームエンジンで、毎フレーム置いて動かすオブジェクト、スプライト、マップ、パーティクルがあり、UI はその一部です。Tactility では、Deki は LVGL と並ぶアプリとして動きます。
- Arduino の画面ライブラリ (TFT_eSPI、LovyanGFX、Adafruit GFX など) は、線、テキスト、画像を描きます。ゲームループ、シーン、アセットは自分で書きます。Deki はその上のエンジンで、自分で動かさない画面には LovyanGFX を使えます。
- デスクトップのエンジン (Unity や Godot など) は、シーン、インスペクター、コンポーネントという Deki と同じ作り方ですが、マイコンでは動きません。Deki はその作り方を組み込み機器に持ち込み、デスクトップでもそのまま使えます。
はじめる
エディターをダウンロードし、デモを開くか新しいプロジェクトを作って、Play を押してください。ガイドと API はドキュメントに、パッケージの一覧はパッケージにあります。質問は Discord へどうぞ。
よくある質問
マイコン向けに、ビジュアルエディター付きのゲームエンジンはありますか?
あります。Deki にはデスクトップのゲームエンジンのように、シーン、インスペクター、Play ビューを持つデスクトップのエディターがあり、Build ボタンでプロジェクトをボード向けのファームウェアにして書き込みます。同じプロジェクトはデスクトップ向けにもビルドできます。
Deki はどのハードウェアで動きますか?
パッケージがあるプラットフォームならどれでも動きます。プラットフォームはそれぞれパッケージだからです。今は ESP-IDF による ESP32 ファミリー、Tactility OS、Windows、Linux です。すぐに使えるボードは LilyGO T-Deck、T-Deck Plus、T-Display S3 AMOLED で、自分のボード (画面、ピン、バス) をエディターで記述することもできます。新しいチップや OS は新しいプラットフォームパッケージで、新しいエンジンではありません。Deki は浮動小数点を多く使うので、ハードウェア FPU のあるチップでいちばんよく動きます。
Deki は ESP32 で使えますか?
使えます。ESP32 ファミリーは Deki のプラットフォームの 1 つです。ビルドは ESP-IDF で ESP32、ESP32-S2、ESP32-S3、ESP32-C3、ESP32-C6、ESP32-H2 を対象にしています。実機で動かしたのは今のところ ESP32-S3 で、LilyGO のボードと Tactility の上です。
どの画面に対応していますか?
Deki は画面を自分で動かします。ILI9341、ILI9488、ST7735、ST7789、ST7796、GC9A01、SSD1351 と 2 種類の AMOLED コントローラーに、SPI、クアッド SPI、8 ビットと 16 ビットのパラレルバスで対応し、よく使われるタッチコントローラーからタッチを読みます。フレームは裂けずに送られ、Deki がまだ知らない画面は LovyanGFX パッケージで扱えます。デスクトップではウィンドウに描きます。
Deki は無料ですか?
はい。エディター、エンジン、パッケージは Apache 2.0 ライセンスの無料のオープンソースで、商用のゲームや製品にも使えます。
C++ を知っている必要がありますか?
自分の振る舞いを書くには必要です。コンポーネントは小さな C++ クラスで、そのフィールドは自動でエディターのインスペクターに出ます。シーン、スプライト、テキスト、UI、マップ、パーティクル、アニメーションは、コードを書かずにエディターで組み立てられます。
ゲームだけでなく、アプリや画面の UI も作れますか?
作れます。2D パッケージにはボタン、スクロールするリスト、ローラー、好きなフォントのテキストがあり、Wi-Fi、BLE、HTTP、GPS、LoRa、SD カード、I2C、SPI、GPIO のパッケージもあります。画面のないプロジェクトとして動かすこともできます。
マイコンでどれくらい速く動きますか?
デモのすべてのシーンが、LilyGO T-Deck Plus と T-Display S3 AMOLED で毎秒 60 フレーム、裂けずに動きます。画面のほとんどが止まっているときは、変わったところだけを描いて送るので、止まった画面はほとんどコストがかかりません。
ボードなしで試せますか?
試せます。エディターの Play ビューは、ボードの画面の大きさと色の形式でゲームを動かし、同じプロジェクトを Windows と Linux 向けにもビルドできます。