Work in progress. These docs are new and are likely missing a lot of info. If you notice something wrong or missing, open an issue. PRs are welcome as well.

A tour of the codebase

What goes where?

Top-level directories

Folder What's in it
Source All the engine and editor code
Config Engine and runtime settings (EngineConfig.json, GlobalConfig.json), and the list of shaders to compile.
Content Assets for the core engine and editor
External Third-party code: Git submodules and prebuilt libraries.
Tools Build scripts, CodeGenTool source and other misc tools
Documentation
Build, Binaries Where your build output goes Not committed, these are excluded via .gitignore

Source structure

Folder What's in it
Core containers, memory, reflection and so on. Keeps its dependencies to a minimum. This is also re-used in our CodeGenTool, not tied to the engine
Engine The main engine library: rendering, scenes, physics, networking, scripting and so on.
Editor The editor's code. C++ and C# mixed (bindings are C++, actual editor UI is C#)
Shaders HLSL shaders, compiled with DXC.
Commandlets See console
Sample The sample app's entry point
Generated CodeGen output. Don't edit by hand, it'll be overwritten on next cmake configure!

Improve this page on GitHub