A Windows-first C++20 game engine and editor for building 2D and 3D projects.
Important
Fadix Engine is an early preview. It is suitable for experimentation and engine development, but it is not yet recommended for production games.
Fadix combines a dockable Dear ImGui editor with an SDL GPU renderer, scene editing, scripting, asset management, audio, and 2D/3D physics. Projects are stored outside the engine checkout and begin from an Empty 2D or Empty 3D template.
Current release: 0.9.136
Windows users can download FadixEngine-0.9.136-Windows-x64.exe from the
latest GitHub release.
It is a portable editor: no source checkout, compiler, build step, or separate
engine asset folder is required. Fadix unpacks its embedded runtime resources
into the user's local application cache when it starts.
- Animation graph authoring and runtime playback with blend, layer, state-machine, saved-pose, and output nodes
- Expanded FXS/Lua editor validation, compile diagnostics, runtime APIs, and smoke coverage
- Save-game persistence and stronger scene/export handling for scripts, prefabs, and project metadata
- Refined project manager with GitHub editor-version downloads and cleaner project workflows
- Low-spec build defaults: editor-only builds, cache reuse, low process priority, and conservative parallel jobs
- Contextual maintainer comments across the engine's major subsystems
- Project launcher with recent projects, templates, news, and development history
- Dockable editor workspace with Scene, Game, Hierarchy, Inspector, Content Browser, Output, Material Editor, and FXS Editor panels
- Scene hierarchy, multi-scene workflow, prefabs, undo/redo, autosave, and persistent editor layouts
- Transform gizmos, editor camera navigation, picking, drag-and-drop asset placement, and editor-only debug visualization
- Physically based materials, directional/point/spot lights, cascaded shadows, ambient occlusion, fog, color grading, quality presets, and render debug views
- Jolt Physics for 3D, Box2D for 2D, mesh and primitive colliders, rigid bodies, and character controllers
- FXS/Lua scripting with an integrated code editor; native C++ script validation is available on Windows
- glTF/GLB mesh loading plus optional Blender-assisted conversion for FBX, OBJ, DAE, STL, PLY, and Blend files
- Audio playback through SDL_mixer and RmlUi-powered in-game UI canvases
The currently supported development environment is:
- Windows 10 or Windows 11, 64-bit
- Visual Studio 2022 with Desktop development with C++ and the Windows SDK
- CMake 3.24 or newer installed in its default Windows location
- Git for dependency downloads
- Python 3 for generated embedded editor assets
Every third-party library (FreeType, SDL, Jolt, Box2D, RmlUi, ImGui, glm, EnTT, tinygltf, Lua) is pulled and built from source by CMake FetchContent. There is no Conan or other package-manager step. An internet connection is required for the first build because CMake downloads the pinned dependencies. Blender is optional and is only required when importing formats that Fadix converts to GLB.
Clone or download the repository, open PowerShell in its root directory, and build only the editor for normal development:
.\build.bat editorThe script detects the Visual Studio toolchain, configures CMake in .build\debug-cmake when needed, and builds at low process priority. It defaults to two Debug jobs so Windows remains responsive on lower-spec PCs. The resulting editor is bin\Debug\fadix_editor.exe.
Use player to build only the Debug player, or 1 to build both Debug targets:
.\build.bat player
.\build.bat 1The first build can take a while because dependencies are compiled locally. Later builds skip the redundant configure step and reuse the .build cache. Set FADIX_BUILD_JOBS=1 before building for maximum responsiveness, or raise it on a faster PC.
To produce the portable Windows release executables, run:
.\build.bat 2The release artifacts are written to:
artifacts\FadixEngine-0.9.136-Windows-x64.exe
artifacts\FadixPlayer-0.9.136-Windows-x64.exe
Every dependency is fetched from source by CMake FetchContent — there is no Conan step and no other package manager. From a Visual Studio x64 developer shell:
cmake -S . -B .build\debug-cmake `
-DFADIX_ENABLE_PHYSICS=ON `
-DFADIX_ENABLE_LUA=ON
cmake --build .build\debug-cmake --config Debug --target fadix_editor --parallel 8
cmake --build .build\debug-cmake --config Debug --target fadix_player --parallel 8- Launch
bin\Debug\fadix_editor.exe. - Choose Empty 3D or Empty 2D in the project launcher.
- Enter a project name and parent folder, then select Create Project.
- Add entities from the Hierarchy panel and edit their components in the Inspector.
- Import assets by dragging supported files into the Content Browser.
- Drag an imported model from the Content Browser into the Scene View to place it.
- Use Play, Pause, and Step to test the scene.
- Use File > Save All or
Ctrl+Shift+Sbefore closing the editor.
Fadix project folders contain a project.fadix manifest, a Scenes directory, and project asset directories. Generated import data and editor caches are kept under the project's .fadix directory.
New contributors should start from the dev branch, which branches from the
latest release v0.9.134 and is where active work lands. Everything released
at or before v0.9.134 is considered a stable starting point:
git clone https://github.com/IYanel-DEV/FadixEngine.git
git checkout devBuild from the dev branch with the same commands as the Build
section, then follow the Contributing guide for the
branching, coding, and pull request workflow.
| Action | Control |
|---|---|
| Select tool | Q |
| Move tool | W |
| Rotate tool | E |
| Scale tool | R |
| Toggle local/world transform space | X |
| Focus selected entity | F |
| Delete selected entity | Delete |
| Save | Ctrl+S |
| Save all | Ctrl+Shift+S |
| Undo / redo | Ctrl+Z / Ctrl+Y |
| Duplicate selected entity | Ctrl+D |
| New / open scene | Ctrl+N / Ctrl+O |
While the Scene View camera is active, use W, A, S, D, Q, and E to fly; hold Shift for faster movement and use the mouse wheel to adjust fly speed.
| Category | Formats |
|---|---|
| Native mesh loading | .glb, .gltf |
| Blender-assisted mesh import | .fbx, .obj, .dae, .stl, .ply, .blend |
| Scenes and prefabs | .scene, .fadixscene, prefab assets |
| Scripts | FXS/Lua and native C++ source files |
| Materials and UI | Fadix material files, .rml, .rcss |
The repository uses small executable smoke tests instead of a separate unit-test framework. After configuration, build and run the relevant target from bin\Debug. For example:
cmake --build .build\debug-cmake --config Debug --target fadix_project_smoke --parallel 8
.\bin\Debug\fadix_project_smoke.exeOther smoke targets cover scene persistence, assets, physics collision, scripting, render quality, shadows, shader compilation, and GPU pipeline creation. Some graphics tests require a compatible GPU and display session.
assets/ Editor resources, shaders, templates, and validation assets
src/assets/ Asset database, import, metadata, and resource loading
src/editor/ Dear ImGui editor, panels, scene tools, and workflows
src/engine/ Shared engine interfaces and systems
src/physics/ Jolt and Box2D integration
src/project/ Project creation, metadata, persistence, and export services
src/render/ Renderer, shadows, post-processing, terrain, and particles
src/rhi/ SDL GPU rendering backend
src/runtime/ ECS world and components
src/scripting/ FXS/Lua and native script runtime
tools/ Asset embedding and smoke-test programs
- Windows is the only actively verified editor platform.
- The engine and project formats may change before version 1.0.
- A clean first build requires network access and can be large because dependencies are built from source.
- Some advanced rendering, animation, and packaging workflows are still experimental.
- Multiplayer/networking is not implemented.
src/networkcurrently defines only a replication schema (component/field registry and protocol hash); there is no transport, no client/server, and no state synchronization. Do not rely on it for online play. - Animation is early: glTF clips and skeletons load and can play, but there is no animation-graph/state-machine or retargeting tooling yet.
- There are no official prebuilt releases or compatibility guarantees yet.
Please report bugs with reproduction steps, the graphics adapter, Windows version, build configuration, and relevant Output-panel or console messages.
Contributions are welcome while the project is in preview. Start from the
dev branch (see Starting point for development)
and read the full Contributing guide:
- Create a branch from the current development branch (
dev). - Keep changes focused and follow the existing C++20 style.
- Build
fadix_editorin Debug. - Run the smoke target related to the changed system.
- Open a pull request explaining the change and how it was verified.
Do not commit build directories, binaries, editor caches, personal projects, generated embedded assets, credentials, or local AI-agent configuration.
Fadix Engine is available under the MIT License.
Third-party dependencies retain their own licenses. Notices committed under third_party/licenses and the dependency repositories are authoritative for those components.