Eエンジン

組み込みを第一に作られた、モジュール式のエンジン

Deki は、ビジュアルエディター付きの無料でモジュール式の C++ エンジンです。機能もプラットフォームもすべてパッケージなので、ゲーム、インターフェース、ツール、画面のないサービスまで、何でも作れます。組み込み機器を第一に作られていて、デスクトップでも動きます。

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 向けにもビルドできます。