emil28092005 4cc58d8c59
Native and manual checks / native (ubuntu-24.04) (push) Waiting to run
Native and manual checks / native (windows-2025) (push) Waiting to run
Native and manual checks / manual (push) Waiting to run
Windows editor and software Vulkan / windows-graphics (push) Waiting to run
Configure LuaLS for single-file script workspaces
2026-09-18 11:57:23 +03:00

Faset Engine

Faset is an independent engine project for desktop 2D and 3D games on Linux and Windows. Its priorities are a custom editor that is comfortable to use by hand and through MCP, integration with Blender, and a path toward advanced graphics.

Current status: the C++ MVP is implemented and accepted for the recorded Linux and Windows test profiles. It includes the native Editor, shared GUI/MCP authoring, gameplay builds, Vulkan Player, Blender import and standalone export. Both playable games passed Release export and relocated execution on both operating systems. Windows graphics acceptance used software Vulkan; physical Windows GPUs, system IME and mixed-monitor transitions need additional coverage. See the acceptance dossier for exact revisions, checks and limits, and the implementation checkpoints for the development record.

Start here

  • User manual — learn C++ gameplay and follow working examples; maintained alongside implementation.
  • Development plan — milestones through MVP, acceptance criteria, and development beyond MVP.
  • Architecture — accepted decisions and subsystem boundaries.
  • Documentation — navigation and maintenance rules.
  • Source studies — Unreal Engine, Godot, Unity, Blender, ECS, graphics, asset import, and builds.
  • Dependencies and independence — libraries, tools, and source provenance.
  • Toolchain profiles — recorded compilers, SDKs, graphics devices and offline preparation.

After following the manual's build setup, run build/linux-debug/faset_editor (or build/windows-debug/faset_editor.exe) to open the project launcher. The collect-2d and collect-3d projects include playable C++ examples; the 3D example includes an original Blender asset and import instructions. Import its Assets/exit-arch/manifest.json once before Play, including after clearing its cache.

Language

English is the primary language of the engine: editor UI, built-in commands, diagnostics, public API identifiers, and CLI/MCP tool descriptions. Project content and user-entered text support Unicode; the engine's interface language does not dictate the language of a game.

This README is in English. The current planning documents, studies, and research map are primarily in Russian. Editor localization is a later milestone.

Accepted foundation

  • C++ for the core and native gameplay. Lua 5.4 is an optional sandboxed gameplay module, with Inspector schemas, development reload, and standalone export. See the Lua guide.
  • Objects, components, and nested scene templates for authoring; EnTT for the runtime ECS. JSON authoring data, stable IDs, and cooked binary assets for export.
  • A custom Vulkan 1.3 backend, RenderGraph, and renderer. The backend calls Vulkan directly; gameplay uses Faset APIs. Slang compiles shaders, including compatible HLSL, to SPIR-V. The baseline renderer does not require ray tracing.
  • SDL3 behind Faset's platform API; Box2D and Box3D for physics.
  • A custom retained-mode editor UI with C++ behavior, declarative layout, separate styles, and a dark theme by default. Dear ImGui is reserved for debugging tools.
  • CMake + Ninja + Clang; Windows uses clang-cl, the Windows SDK, and MSVC runtime libraries. Initial builds are tested on their target OS.
  • A separate Player process, statically linked with gameplay. The C++ iteration cycle is stop, incrementally rebuild, and restart.
  • Editor-only MCP: authoring, assets, import, builds, export, Play/Stop, and editor diagnostics. MCP is absent from the Player and exported games.
  • Standard, unmodified Blender, glTF/GLB import, and an optional add-on for convenient export and stable IDs.

The MVP provides two small games, one 2D and one 3D, with scene editing, C++ behavior, physics, Play and standalone export. A Lua-only example demonstrates the optional scripting module. GPU-driven rendering, HZB, advanced shadows, temporal reconstruction and dynamic global illumination follow this baseline.

Run the research map

Requires Node.js and npm. From the repository root:

cd docs/studies/map
npm ci
npm test
npm run build
npm start

Open localhost:4178. The map is a documentation viewer, not a web version of the Faset editor. See the map README for details.

Repository contents

Faset's C++ source, tests, sample games, Blender add-on, Manual, architecture, studies, selected validation evidence, and research map are tracked in Git. Third-party engine source trees, installed dependencies, build outputs, and caches are excluded. Research source links are pinned to the commits examined; Unreal Engine links may require access through Epic.

See the publication notes for publication scope and licensing status. A license for Faset's own content has not yet been selected. Third-party projects retain their own license terms.

S
Description
Faset Engine: architecture, MVP roadmap and source studies for a C++ 2D/3D engine for Linux and Windows.
Readme
4.8 MiB
Languages
C++ 88.7%
Python 7.8%
CMake 2.8%
Lua 0.4%
Slang 0.2%
Other 0.1%