Canonical docs for this workspace. Pages are independent Markdown; a static site can serve this tree as-is.
How this tree is organized
| Folder | Audience | Contents |
|---|---|---|
| tutorials/ | New game authors | Short onboarding paths |
| guides/ | Developers shipping games or tooling | How to build, configure, author, extend |
| systems/ | Engine / gameplay systems work | How subsystems behave and compose |
| reference/ | Language authors | Akari and Kawa language references |
Paths in these pages are relative to the repository root unless noted.
Start here
- Architecture — ownership, layers, repository map
- Application lifecycle — native loop → rendered frame
- Tutorials — first project through Play/Edit and hot reload
- Build and packaging — Kaji products and outputs
- Migration from Unity / Unreal — vocabulary map (with coordinate space for axis conventions)
Guides (developers)
| Guide | Covers |
|---|---|
| Development | Change seams, validation, hikari_std |
| Gameplay API | Actors, components, callbacks, typed fields |
| Component storage | Choose attachable, embedded, or swarm, with examples |
| Build and packaging | Kaji flags, products, packages |
| Project file | hikari.project.json, configs/, version axes |
| Plugins | Source-composed packages, manifests, packaging |
| Plugin API | Author-facing editor/render/gameplay plugin contracts |
| Data, JSON, and modding | ContentRef, path roots, loose resources/ |
| Scripting with Kawa | Engine integration for scripts |
| Actor communication | hi.actors / Actors.* — find, messages, component fields |
| Shader authoring | Packages, layouts, manifests, product pipeline |
| Time of day | Astronomical clock, atmosphere, sun/moon lights |
| User interface | Game UI hub (lifecycle, themes, ownership) |
| UI layout · UI widgets | Coordinates/stacks · controls/focus/modals |
| Migration | Unity / Unreal → Hikari concepts |
Systems (engine behaviour)
Runtime and session
- Architecture
- Lifecycle
- Frontends and drivers
- Platforms
- Session services
- Scenes and gameplay — entities, active / enable trio
- Actor communication —
hi.actors/Actors.*, messages, name-keyed fields - Refs —
AssetRef/ContentRef/SceneRef/PrefabRef/ActorRef - Replication wire version — current hook and codec limits
Presentation and simulation
- Coordinate space — RH Y-up −Z-forward, reverse-Z, euler, view-right
- Rendering — pipeline, G-buffer, composability contracts
- Renderer architecture — layers, RHI, graph, sync
- Frame governor — resolution / rays / indirect-resolution levers
- GPU particles — authoring, specialized SPT2 cook, simulation, indirect rendering
- Visual Zones — spatial / global look blending
- Volumetric media — global fog and bounded smoke, lights, shadows
- Input
- Audio
- Physics
- Motion Kit · Temporal Kit
Assets
- Assets and Shinra — pipeline, URIs, soft refs
- Prefabs — expand/diff/variants, editor plane, runtime spawn
- Asset residency — refcounts, budgets, scene replace
- Asset formats
Editor host
- UI and editor — chrome, contributions, Play/Edit, profiler
- Editor asset hot reload
- Editor project selector
Reference
- Akari language —
.akarilanguage (EBNF) - Kawa language and embedding
Conventions
| Surface | Location |
|---|---|
| Game-facing Zig API | src/hikari/sdk/src/hikari_game.zig |
| Engine/host API barrel | src/hikari/src/hikari_api.zig |
| Thin SDK pack tree | src/hikari/sdk/ |
Product std | const std = @import("hikari_std") — see Development |
Docs describe implemented behaviour. A directory or future RHI type is not a shipping feature.
- Actor and component lifecycle: every hook, dispatch source, activation order, and teardown contract.
- Gameplay API: actor/component declarations, scoped callbacks, typed fields, runtime state, and swarm populations.