Skip to content
hikari
RenderingEditorAIToolchainDocumentation
Download

© 2026 Flying Rat Studio.
All rights reserved.

Explore the engineDocumentationContributorsDownloadLicenseBack to top
Documentation / Tutorials
Browse docs
Overview
Tutorials17
OverviewPlay, Edit, and scenesFirst UI documentFirst game projectFirst entityComponent properties and the inspectorFirst mesh and materialFirst physics body and triggerFirst character controllerFirst session servicesFirst UIFirst input actionFirst messagesFirst runtime spawnFirst motionFirst skeletal animationAssets in Play (soft refs and hot reload)Dynamic editor recompile
Guides25
OverviewWorking in the editorDevelopment guideGameplay APIActor and component lifecycleThreads, jobs, events, and routinesGameplay AI tasksGame AI: perception and movement playgroundBrain assetsBrain execution for swarm populationsLocalizationGame cursorsChoosing component storageBuild and packagingProject filePluginsHikari Plugin APIData-driven content, JSON, and pathsScripting with KawaShader authoringChoosing and scaling shadowsTime of dayUser interfaceUI layoutUI widgetsMigration from Unity / Unreal
Systems32
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 governorPipeline compilationSkeletal animationGPU particlesVisual ZonesVolumetric mediaInputAudioPhysicsMotion KitTemporal KitUI documentsAssets and ShinraPrefabsAsset residencyAsset formats (Shinra pipeline)Document schemasUI and editorEditor asset hot reloadEditor Project Selector
Language reference3
OverviewAkari GPU ABIAkari language referenceKawa language reference
Engine overview
Start exploring
  • No matching sections. Try fewer words or another topic.
NavigateEnter Openesc Close
Overview
Tutorials17
OverviewPlay, Edit, and scenesFirst UI documentFirst game projectFirst entityComponent properties and the inspectorFirst mesh and materialFirst physics body and triggerFirst character controllerFirst session servicesFirst UIFirst input actionFirst messagesFirst runtime spawnFirst motionFirst skeletal animationAssets in Play (soft refs and hot reload)Dynamic editor recompile
Guides25
OverviewWorking in the editorDevelopment guideGameplay APIActor and component lifecycleThreads, jobs, events, and routinesGameplay AI tasksGame AI: perception and movement playgroundBrain assetsBrain execution for swarm populationsLocalizationGame cursorsChoosing component storageBuild and packagingProject filePluginsHikari Plugin APIData-driven content, JSON, and pathsScripting with KawaShader authoringChoosing and scaling shadowsTime of dayUser interfaceUI layoutUI widgetsMigration from Unity / Unreal
Systems32
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 governorPipeline compilationSkeletal animationGPU particlesVisual ZonesVolumetric mediaInputAudioPhysicsMotion KitTemporal KitUI documentsAssets and ShinraPrefabsAsset residencyAsset formats (Shinra pipeline)Document schemasUI and editorEditor asset hot reloadEditor Project Selector
Language reference3
OverviewAkari GPU ABIAkari 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

Every editor build loads game code as a dynamic module, regardless of the host linkage selected by --type. 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: hikari-games/example/.

When Recompile is enough

  • Changed game Zig under hikari-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/../hikari-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 86f12d68Source docs/tutorials/dynamic-recompile.md
On this pageWhen Recompile is enoughWhen you must rebuild the editorVerifyNext Back to top