Skip to content

Repository files navigation

Fadix Engine

Fadix Engine

A Windows-first C++20 game engine and editor for building 2D and 3D projects.

Version Platform Language License

Important

Fadix Engine is an early preview. It is suitable for experimentation and engine development, but it is not yet recommended for production games.

Overview

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

Download

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.

What's new in 0.9.136

  • 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

Highlights

  • 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

Requirements

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.

Build

Clone or download the repository, open PowerShell in its root directory, and build only the editor for normal development:

.\build.bat editor

The 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 1

The 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 2

The release artifacts are written to:

artifacts\FadixEngine-0.9.136-Windows-x64.exe
artifacts\FadixPlayer-0.9.136-Windows-x64.exe

Manual CMake build

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

Getting started

  1. Launch bin\Debug\fadix_editor.exe.
  2. Choose Empty 3D or Empty 2D in the project launcher.
  3. Enter a project name and parent folder, then select Create Project.
  4. Add entities from the Hierarchy panel and edit their components in the Inspector.
  5. Import assets by dragging supported files into the Content Browser.
  6. Drag an imported model from the Content Browser into the Scene View to place it.
  7. Use Play, Pause, and Step to test the scene.
  8. Use File > Save All or Ctrl+Shift+S before 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.

Starting point for development

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 dev

Build 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.

Editor controls

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.

Supported asset formats

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

Tests

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.exe

Other 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.

Repository layout

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

Known limitations

  • 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/network currently 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.

Contributing

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:

  1. Create a branch from the current development branch (dev).
  2. Keep changes focused and follow the existing C++20 style.
  3. Build fadix_editor in Debug.
  4. Run the smoke target related to the changed system.
  5. 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.

License

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.

About

A Windows-first C++20 2D and 3D game engine and editor.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages