Wiki page
Nevo Engine Documentation
A practical manual for building games, editing projects, and extending Nevo Engine.
Start Here
Nevo Engine is a C++ game engine with a data-oriented ECS, JSON scenes, native gameplay systems, OpenGL and DX12 backends, NVEditor tooling, physics through Jolt, and component-driven post-processing.
This wiki is written for game developers first. The public API pages use exported headers from include/nevo or Nevo-Engine/shared; internal headers are documented only when you are modifying the engine itself.
Getting Started
- Build and Run - Build the engine, Nevo-base, and NVEditor on Windows/MSYS2 or Linux.
- Game Project Structure - Where code, scenes, materials, shaders, textures, and runtime artifacts live.
- Editor Workflow - Open projects, edit scenes, round-trip JSON, and work with materials in NVEditor.
Game Development
- ECS Public API - Register components and systems, create entities, and run gameplay logic.
- Input Management - Keyboard, mouse, focus, and cursor-lock APIs.
- Debug Utilities - Logging, crash handling, system diagnostics, and runtime flags.
- Scene JSON - Scene file shape, built-in component JSON, load paths, and custom component registration.
- Materials and Shaders - Material JSON, shader metadata, texture slots, and renderer flags.
API Reference
- Engine API -
Public::Engine, lifecycle, flags, scenes, and custom component loaders. - ECS API -
Coordinator,System, signatures, component views, and entity lifetime. - Built-In Components - Transform, rendering, camera, light, animation, physics, and post-processing fields.
- Physics API -
PhysicsSystem, rigidbodies, colliders, public body controls, and raycasts. - Input API - Key codes, mouse state, and cursor control.
- Debug API -
DebugManager, log levels, crash dumps, and helpers.
Practical Examples
- Freecam and Custom Systems - A complete custom component/system pattern from
Nevo-base. - Character Controller Pattern - A practical rigidbody/capsule controller recipe using public physics APIs.
- Sky and Environment - The current cubemap mesh workaround used by
outside.json. - Physics Scene Setup - Dynamic, kinematic, static, box, capsule, and mesh collider examples.
- Post-Processing Stack - ACES, bloom, vignette, film grain, and auto exposure.
- Material and Shader Recipes - Textured materials, unlit sky materials, and editor metadata.
Engine and Editor Internals
- Engine Codebase Structure - The engine source layout and generated public artifact flow.
- Public vs Internal API - What games should include and what stays engine-private.
- Resource Management - Runtime assets, GPU resources, caching, and invalidation.
- Asset Loaders - Scene, mesh, GLTF/OBJ, material, shader, and texture loader behavior.
- Rendering Backends - OpenGL/DX12 notes, render targets, post-processing, and editor viewport UVs.
Working Rule of Thumb
Use the public headers and JSON formats first. If a workflow requires an internal header, document it as engine work, not game code.
