Skip to content
hikari
RenderingEditorAIToolchainDocumentation
GitHub
hikari

© 2026 Flying Rat Studio.
All rights reserved.

Explore the engineDocumentationContributorsLicenseBack to top
Documentation / Tutorials
Browse docs
Overview
Tutorials16
OverviewFirst game projectFirst entityAuthored user_data and the inspectorFirst mesh and materialFirst physics body and triggerFirst character controllerFirst session servicesFirst UIFirst input actionFirst messagesPlay, Edit, and scenesFirst runtime spawnFirst motionFirst skeletal animationAssets in Play (soft refs and hot reload)Dynamic editor recompile
Guides16
OverviewDevelopment guideGameplay APIChoosing component storageBuild and packagingProject filePluginsHikari Plugin APIData-driven content, JSON, and pathsScripting with KawaShader authoringTime of dayUser interfaceUI layoutUI widgetsMigration from Unity / UnrealActor and component lifecycle
Systems28
OverviewArchitectureApplication lifecycleFrontends and driversPlatforms and supportSession services and cross-scene stateScenes and gameplayActor communication (hi.actors)Game-facing refsSave / replication wire versionCoordinate space and camera conventionsRenderingRenderer architecture mapFrame governorGPU particlesVisual ZonesVolumetric mediaInputAudioPhysicsMotion KitTemporal KitAssets and ShinraPrefabsAsset residencyAsset formats (Shinra pipeline)UI and editorEditor asset hot reloadEditor Project Selector
Language reference2
OverviewAkari language referenceKawa language reference
Engine overview
Start exploring
  • No matching sections. Try fewer words or another topic.
NavigateEnter Openesc Close
Overview
Tutorials16
OverviewFirst game projectFirst entityAuthored user_data and the inspectorFirst mesh and materialFirst physics body and triggerFirst character controllerFirst session servicesFirst UIFirst input actionFirst messagesPlay, Edit, and scenesFirst runtime spawnFirst motionFirst skeletal animationAssets in Play (soft refs and hot reload)Dynamic editor recompile
Guides16
OverviewDevelopment guideGameplay APIChoosing component storageBuild and packagingProject filePluginsHikari Plugin APIData-driven content, JSON, and pathsScripting with KawaShader authoringTime of dayUser interfaceUI layoutUI widgetsMigration from Unity / UnrealActor and component lifecycle
Systems28
OverviewArchitectureApplication lifecycleFrontends and driversPlatforms and supportSession services and cross-scene stateScenes and gameplayActor communication (hi.actors)Game-facing refsSave / replication wire versionCoordinate space and camera conventionsRenderingRenderer architecture mapFrame governorGPU particlesVisual ZonesVolumetric mediaInputAudioPhysicsMotion KitTemporal KitAssets and ShinraPrefabsAsset residencyAsset formats (Shinra pipeline)UI and editorEditor asset hot reloadEditor Project Selector
Language reference2
OverviewAkari language referenceKawa language reference
Engine overview
Tutorials2 min read

Tutorial: dynamic editor recompile

On this page
On this pageWhen Recompile is enoughWhen you must rebuild the editorVerifyNext Back to top

In a dynamic editor build the game is a loadable module. The toolbar Recompile rebuilds that module and swaps it when Edit mode allows — without restarting the whole editor.

Deep reference: Assets and Shinra (recompile table), Frontends and drivers. Sample project: src/games/example/.

When Recompile is enough

  • Changed game Zig under src/games/example/src/ (entities, session, config).
  • Added a new *_entity.zig (manifest regenerates with the game build).
  • Tweaked gameplay logic that stays behind the thin hikari_game / HostApi surface.
  • Editor-only menu/panel contributions (registerEditor / hi.editor) when the module was compiled with -Deditor-contrib=true (always true on editor recompile).

Flow: Edit mode → Recompile → wait for success → scene stays open; missing archetypes soft-fail if you removed a type still referenced in the document.

When you must rebuild the editor

Warning

Rebuild the editor after changing the thin game ABI (HostApi, GameModule, abi_version). A host/game mismatch in ABI version, Zig version, optimize mode, or profiler flags cannot be fixed by recompiling only the game module.

  • Recompile build fails — previous dylib stays; fix compile errors and retry.
  • Recompile succeeds but register/load fails — editor restores the previous module; panic only if restore itself fails.

Monolithic editor host linkage still loads game modules dynamically for recompile; a full product rebuild is only required for host/ABI changes.

Verify

  1. Dynamic editor: change a log line in cube_entity.zig → Recompile → Play → see the log.
  2. Remove an archetype still placed in the open scene → soft placeholders + audit after recompile.
  3. After a HostApi / GameModule semantic change → full bin/kaji/kaji editor --workspace=$PWD --project=$PWD/src/games/example … rebuild (not only Recompile).

Next

  • First project
  • First entity
PreviousTutorial: assets in Play (soft refs and hot reload)Next Guides

Documentation follows the current engine checkout.

Snapshot cc148c75Source docs/tutorials/dynamic-recompile.md
On this pageWhen Recompile is enoughWhen you must rebuild the editorVerifyNext Back to top