Worlds First
For newcomers:
- Think of Epoch as one big workbench for making games and tools. Engines like Unity, Unreal, and Godot try to give you one main place to build things, and Epoch is aiming for that same kind of all-in-one home in its own way.
- The launcher is the front door. You pick a project, choose settings, check updates, and then open the editor.
- The editor is the work room. You can look at scenes, run the project, build scripts, check systems, and use AI tools there.
- The AI workspace has its own sub-workspaces.
Sandboxis the separate self-iteration control room,Harnessruns editor tool scripts and captures before/after state,Assistantis for normal game-engine/project guidance,Launchertracks project/build evidence, andTraininghandles evidence-backed promotion. - Epoch can also draw the same project in different ways. Those are called rendering backends, but you can think of them as different drawing engines under the hood.
- The downloadable builds are kept small on purpose. The full source code and the deeper engine work still live here in the repository.
For engine/tooling developers:
- active engine code lives under
Engine/src/,Engine/modules/,Engine/include/,Engine/resource/, andEngine/ai/ - local MSVC runtime outputs usually live under
x64/Debug/andx64/Release/ - Windows multicontext validation should run from asset-bearing output folders, not from the repo root
- the repo is moving toward one active product backend at a time in normal use: editor -> OpenGL today, Windows-native product rendering -> DirectX/D3D11 as it matures, and software kept as fallback/debug/headless support
- Source is currently the active development line at
v0.87.45. - The latest published stable runtime release is
v0.87.44. - Windows and Linux runtime packages use the production package
layout: one editor/runtime executable, a root
assets/folder, and public README/LICENSE files. Generated atlases, source-shapedEngine/folders, headless smoke binaries, and duplicated compatibility output folders are not part of the public runtime payload. - Windows and Linux packaged runtime assets now use versioned names such as
epoch_win10_x64_v*.zipandepoch_linux_x64_v*.tar.gz. - MSVC Debug/Release multicontext editor builds use the dynamic-vcpkg
x64-windowslane so Raylib, SFML, SDL3, GLAD, OpenGL, Vulkan, and DirectX can coexist without static duplicate-symbol collisions. DLLs beside the debug executable are expected runtime dependencies for that editor lane. - Bootstrap updater-shell releases are separate from the main runtime package and are meant to update into the current runtime release, then fall through to source only when packaged parity is already reached.
- Update/install policy is binary-first across install types: packaged Windows
installs use the newest matching
.zip, packaged Linux/WSL installs use the newest matching.tar.gz, and source checkouts rebuild from source only after packaged-runtime parity or when no newer packaged runtime exists. - The packaged release updater accepts both flat and nested runtime payloads, stages replacement evidence before restart, and keeps failed update work visible in package logs instead of looking like a sudden shutdown. Launcher update behavior is tracked separately from the packaged-release lane.
- Source updates now clear stale handoff/cancel evidence before launching a new
worker and verify
Engine/vcpkg.jsonafter extraction before vcpkg/MSBuild is allowed to run. - Phase 1 and Phase 2 of the active roadmap are complete. Current work is concentrated in systems tooling, time ownership, AI sandbox/capture, and UI maturity.
- Latest source checkpoint: the editor has a toolbar scene-mode selector for 3D scene construction versus 2D game/UI construction, launcher/editor handoff and update progress use the shared EpochGui loading-screen primitive, OpenGL owns the first visible sampled render-surface preview proof for Engine Arcade, SDL context handoff stays docked in the parent grid, and the Linux/Clang full-engine lane remains the module-sensitive CI lane that must stay green before calling a source checkpoint sealed.
OS AI model, tooling, and evidence rules live with the AI assets in
Engine/ai/README.md and the engine policy docs.
Epoch's visual proof comes from asset-bearing editor outputs, not stripped bootstrap shells. The current public gallery is below; the top proof shows the Windows multicontext editor carrying every active backend lane.
- Project-centric editor/runtime flow: launcher, generated project shells, single-context project runs, and an engine-shaped self-iteration lane.
- Workspaces:
3D Scene,2D Scene/UI,Assets,Plant Lab,Video,Project,Intelligence, andSystem Info, with Console Dock kept as compact status evidence instead of a duplicate control surface. - Rendering spine: Raylib, SDL3, SFML, Vulkan, OpenGL, DirectX, software, and headless/noop lanes are orchestrated by the same project/editor contracts, with render-graph material, mesh, model, and render-target bindings now flowing through the shared device contract.
- GUI spine: shared C++23 controls for windows, tabs, select boxes, scroll panels, progress bars, modals, text editing, theme preferences, and future popout/docking work.
- Time and input spine: core time, timeline/video sequencing, streaming-save contracts, frame-limit presets, and universal input profiles are engine data, not scattered per-backend behavior.
- Package spine: local runtime minis, Forest Factory/voxel/ocean research
gates, model assets, and future downloadable source packages route through
executable-local
cache/packages/and human-approved build/install gates. - OS AI spine: Qwen/Nemotron coding lanes plus Bonsai, Wan, TRELLIS, and FLUX
creative model lanes are on-demand external model assets under
cache/models/with license/notice and evidence gates. - Validation spine: headless contract tests, project-shell self-tests, CI lanes, asset-bearing runtime proof, and visible editor notes keep promoted behavior tied to evidence.
These proof images come from asset-bearing outputs, not stripped updater-shell builds.
- A valid Windows six-context proof must visibly show
Raylib,SDL,SFML,Vulkan,OpenGL, andDirectX. - Floating-window proof is archived in
Images/readme/; the active README gallery now favors the currentv0.87.10multicontext editor capture so old promoted-window screenshots do not look like current UI proof. - The Linux proof comes from an asset-bearing WSL build output, not a source tree launched without runtime assets.
Current Windows per-backend startup proofs from the same v0.87.10 capture
round:
WSL/Linux editor proof, latest asset-bearing visual capture:
v0.84.38 WSL Clang build/headless validation is green with DirectX disabled,
and WSL/OpenGL visual proof is current for the single-context Linux path.
Launch from the binary directory so colocated assets resolve cleanly:
Set-Location x64/Debug
.\EpochEditor.exeRelease build:
Set-Location x64/Release
.\EpochEditor.exeSolution:
Engine.sln
Typical configurations:
Debug | x64Release | x64
Example app only:
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" Engine.sln /t:ConsoleApplication1 /p:Configuration=Debug /p:Platform=x64 /m:1Generated shell self-test:
.\x64\Debug\EpochEditor.exe --editor-project-self-test sandbox
.\Projects\Sandbox\bin\windows\Debug\x64\Sandbox.exe --project-self-test
.\x64\Debug\EpochEditor.exe --editor-project-self-test projectlauncher
.\Projects\ProjectLauncher\bin\windows\Debug\x64\ProjectLauncher.exe --project-self-testWindows MSVC:
cmake --preset windows-msvc-debug
cmake --build --preset windows-msvc-debugLinux:
cmake --preset ninja-clang-debug
cmake --build --preset ninja-clang-debugLinux/GCC currently uses the headless validation presets by default because
GCC 14 can ICE while writing full-engine C++ module BMIs. Use
ninja-gcc-debug for headless validation, use Clang for full Linux engine
builds, or explicitly opt into the experimental GCC module path with
-DEPOCH_ALLOW_GCC_MODULE_ENGINE=ON.
Hosted CI mirrors that split: required portable lanes build/test headless, and
the Linux Clang engine lane builds the real epoch target with OpenGL,
software renderer, and SFML enabled at build time without launching GUI windows.
- use an asset-bearing output such as
Engine/Bin/Clang-Release/ - launch
./epochfrom the output directory - updater-shell mode is explicit/bootstrap-only on Linux/WSL, not the default runtime identity
Engine/ engine code, internal source grouped toward platform/render, examples, assets, and docs
Changes/ changelog, roadmap, release-note archives, current planning text
Images/ README and repo artwork
Tools/ local helper scripts and validation utilities
x64/ MSVC local outputs with colocated runtime assets
Documentation index: Engine/docs/README.md
If you're new:
- Engine/docs/build/cmake_presets_and_builds.md
- Engine/docs/build/local_build_scripts_and_release_packaging.md
- Engine/docs/engine/runtime_and_editor_workflows.md
- Engine/docs/platform/linux/linux_wsl_build_setup.md
If you're digging into engine behavior:
- Engine/docs/engine/current_engine_architecture.md
- Engine/docs/engine/backend_context_status.md
- Engine/docs/engine/backend_menu_overlay_status.md
- Engine/docs/engine/os_ai_tooling_and_evidence_policy.md
- Engine/docs/engine/smoke_capture_and_screenshot_workflow.md
Project planning and release history:
The current roadmap is focused on:
- Tightening the 3D Scene, 2D Scene/UI, Plant Lab, Video, Intelligence, and System Info workspaces into professional docked editor surfaces.
- Carrying the renderer-resource spine into backend-native mesh/model, render-to-texture, material, and import paths.
- Tightening the OS-model capture, review, and promotion loop with a separate self-iteration sandbox and watchable scene/tool evidence tasks.
- Improving UI/editor maturity without regressing the honest project-centric runtime flow.
See Changes/roadmap.md for the full phase-by-phase plan.
LicenseRef-MIT-NoSell
Epoch is free for non-commercial use. For commercial use or any legal edge case, read LICENSE directly and follow the full agreement text instead of relying on the README summary.








