Developer guide
This section is for contributors and anyone curious about how Talesmith is built. It explains the runtime and editor architecture, how the repository is organized, how to build and test it, the tools that keep the documentation and performance honest, and the formats of every file the engine reads.
You do not need any of this to make games. If you want to use the editor, start with the Guide; to write gameplay, the Scripting section; to extend the engine or editor without changing it, Plugins.
Pages
The game and its services, a frame, threads, the ECS, events, scenes, assets and presentation.
Editor architecturePer-project services, the edit world, play mode, editing services and extension points.
Repository layoutEvery project, what it may reference, and where new code goes.
Building and testingBuilding from source, the test runner, slow tests and the shader compiler.
ToolsThe screenshot tool, the editor stress benchmark, the smoke test and the benchmarks.
The editor UI toolkitTheme, controls, icons, property grids and docking.
ContributingCode style, comments, tests, commits and documentation.
File formatsScenes, prefabs, meta files, presets, maps, configuration and builds.
Where to start
| You want to | Read |
|---|---|
| Fix a bug in the engine | Building and testing to get a working build and run the tests, then Runtime architecture for the frame and threads. Add a test in the library's test project that fails before your fix. |
| Fix a bug in the editor | Editor architecture for the folder that owns the feature, and the smoke test to check the real window. |
| Add an editor feature | Editor architecture: register it the way a plugin would, and build its UI from the toolkit. |
| Add a component or system to the engine | Repository layout for which module it belongs in, and Scenes and prefabs for how its data is saved. |
| Add a file format | File formats for the shared rules (JSON, guids, unknown fields kept), then register an importer, an asset kind and a dependency extractor. |
| Make something faster | Performance to measure the game, Tools for the stress benchmark and micro-benchmarks. |
| Update this site | Contributing and website/README.md. |