Nima_Engine

C++20 · Vulkan · 自研發 2D 遊戲引擎

從零打造的遊戲引擎,追求極致效能與開發者掌控力。
不依賴 Unity / Unreal,每一行程式碼皆以 OpenCode AI Vibe Coding 親手撰寫。

引擎架構

以中央 Engine 類別為核心, 統籌 13 個子系統模組,採用 ECS 架構避免 OOP 繼承地獄。

🖥
Render
Vulkan 1.2 渲染器
GPU-Driven 管線
26 個檔案
🧩
ECS
自研實體系統
Sparse Set 存儲
Archetype 分組
🎬
Scene
10 種場景類型
過場轉換系統
29 個檔案
🖱
UI
自訂 UI 元件庫
ImGui 編輯器整合
18 個檔案
🔊
Audio
miniaudio 後端
BGM / SFX 管理
淡入淡出
Physics
AABB / 圓形 / 射線
碰撞偵測
剛體系統
📡
Event
Pub/Sub 事件匯流排
安全序/優先序
10 個檔案
🛠
Editor
執行/編輯雙模式
6 個面板
Gizmos 操作
📦
Asset
GUID 資產系統
檔案監控
依賴圖表
💾
Serialize
JSON / 二進位
版本化 / Delta
12 個檔案
JobSystem
執行緒池
工作竊取
依賴圖排程
🎮
Game
存檔管理
玩家資料
圖鑑系統
🏗
Core
GLFW 視窗
資源管理
高精度計時

技術棧

C++20
核心語言
Vulkan 1.2
GPU 渲染 API
GLFW 3
跨平台視窗與輸入
GLM
向量/矩陣數學庫
nlohmann/json
JSON 解析
stb
圖片載入 / 字體光柵化
Dear ImGui
編輯器 UI 框架
miniaudio
音頻引擎後端
CMake
跨平台建構系統
GLSL → SPIR-V
著色器編譯

技術亮點

🎯

GPU-Driven 渲染管線

Compute Shader 實現 GPU 端視錐剔除,支援最多 1024 個 Bindless 紋理。多執行緒命令緩衝錄製,每個 Frame 由 Worker Thread 並行處理。

🔥

執行期熱重載

Shader 與紋理支援執行期熱重載(Hot Reload),修改 GLSL 或圖片後無需重啟引擎即可即時預覽變化,大幅加速開發迭代。

🧩

自研 ECS 架構

基於 Sparse Set 的 O(1) 元件存取,支援 Archetype 分組提升快取命中率。內建平行化系統排程,Component Mask 過濾查詢。

📋

JSON 資料驅動

場景佈局、遊戲數值、UI 配置全部以 JSON 定義,無需重新編譯即可調整遊戲內容。設計師可直接編輯 JSON 檔案進行迭代。

🗂

完整資產管線

GUID 資產識別、Metadata 中繼資料、檔案監控(ReadDirectoryChangesW)、依賴圖譜、非同步載入、背景匯入——打造專業資產工作流。

🛠

內建編輯器

執行 / 編輯雙模式切換,搭載 Inspector、Scene Hierarchy、Content Browser、Console、Profiler 面板,以及 2D Translate/Rotate/Scale Gizmos。

Job System 多執行緒排程

執行緒池 + 工作竊取 + 依賴圖排程。可宣告 Job 之間的依賴關係,引擎自動處理同步與等待,充分利用多核心 CPU。

🔌

事件驅動架構

Pub/Sub 模式事件匯流排,支援安全序、優先序、延遲分發三種模式。場景變更、滑鼠輸入、視窗大小等全域事件統一管理。

首款遊戲:喵潮來襲

Nima_Engine 的第一個實踐作品——喵潮來襲:深海守衛, 一款結合塔防與合成策略的海洋奇幻遊戲。6 種魚兵守衛、7 種貓族敵人、6 大關卡, 無課金抽卡,一切靠策略與合成。

🐟 查看 UI 原型展示