Eエンジン

エンジン

オブジェクトモデル、アセットシステム、ライフサイクル、そしてそれらを動かすプラットフォーム。それ以外はすべて、追加するパッケージです。

コア

エンジンには基本の型が含まれています。Deki::Object と Deki::Component、ライフサイクルマネージャー、アセットシステム、そしてプラットフォームが実装するプロバイダーインターフェースです。レンダリング、スプライト、入力、オーディオ、ネットワーク、各種ペリフェラルはすべてパッケージにあります。

中央にエンジンのコア、その周りにパッケージ。それぞれが実行時に読み込まれる DLL です

ひとつのタグで、どこでも

Deki::Component を継承し、フィールドに DEKI_EXPORT タグを付けます。このタグがインスペクターのウィジェット、シリアライズ、元に戻す(アンドゥ)、アセットの解決をまとめて担います。ほかの場所で何かを登録する必要はありません。

ヘッダーでエクスポートされた 3 つの float と、エディターのインスペクターに並ぶ同じ 3 つのスライダー

ホットリロード

コンポーネントを編集してエディターにフォーカスを戻すと、DLL をその場でビルドし直して差し替えます。シーンは動いたままです。

ソフトウェアレンダラー

ひとつの QuadBlit パイプラインで、4 つの出力フォーマットに対応します。ダーティ矩形のおかげで、パネルの部分更新が軽く済み、バッテリーにも優しくなります。

エンジンが 320 x 240、RGB565 でレンダリングした 3 枚のフレーム

DLL としてのパッケージ

どのパッケージも独立した共有ライブラリで、コアに組み込まれることはありません。レンダリングも入力もオーディオもなしで出荷できます。ライフサイクルだけです。

プラットフォーム

プラットフォームもパッケージです。統合部分を差し替えればターゲットを変えられ、ヘッドレスなサービスではディスプレイと入力を丸ごと外せます。

プラットフォーム状態概要
ESP32提供中メインのターゲットです。ESP-IDF でビルドするため、SDK が対応するバリアントはすべて対象になります。SD、ディスプレイ、タッチにも対応し、エディターのビルドパイプラインがハードウェアまで一通り通ります。
Windows デスクトップ提供中ウィンドウ、入力、ファイルシステムは SDL3 経由です。エディター自体もこの上で動いています。
Linux デスクトップ試験的エンジンとエディターは GCC 16 でビルドして動作し、Steam Deck 上で一通り検証済みです。ネイティブのファイルダイアログにも対応しています。

ハードウェア FPU を用意してください。トランスフォーム、トゥイーン、レンダリングはすべてネイティブの float に頼っています。ソフトフロートでも動きますが、かなり遅くなります。

現状

バージョンは 0.x で、その数字のとおりです。API はリリースごとにまだ変わりますし、対応ボードも増え続けています。エンジン、エディター、すべてのパッケージは Apache 2.0 のオープンソースで、github.com/orgs/dekiengine にあります。エディターはダウンロードできます。

C++ API、コンポーネントリファレンス、各パッケージのドキュメントはドキュメントにあります。