Orkige Help
The engine, editor and scripting documentation, generated from the repository's committed docs and engine headers. Use the search box or pick a page.
Overview
- OrkigeOrkige The orkitec game engine — a C++20 game engine for desktop, mobile and web games (macOS, Windows, Linux, iOS, Android and the browser via WebAssembly — CI…
- ChangelogThe engine's history, grouped by day. Versions before 2026-07-31 are labels applied in hindsight; from that day on a day is headed by the real version of the ni…
Guides
- Getting started: your first gameThis walkthrough assumes you have already built Orkige successfully (see the README). It takes you from an empty editor to a playable sprite with physics and a …
- Lua API referenceThe scripting surface a game reaches from a script component (projects/*/scripts/*.component.lua). Game behavior lives in these scripts; projects/jumper-lua/scr…
- The runtime GUI (engine_gui)The game UI system. It renders through the DrawLayer2D facade, so it draws the SAME image on both render flavors (classic OGRE and Ogre-Next) and on desktop and…
- Materials — the .omat asset and the render-facade material surfaceThe engine's material authoring is deliberately SIMPLE and GENERATED (the standing "keep materials simple/generated" rule): one small text asset describes one o…
- ParticlesParticleComponent (engine_gocomponent/ParticleComponent.{h,cpp}) is the CPU-simulated, batched particle emitter. The pure, renderer-free, seeded simulation live…
- SoundOrkige plays three kinds of audio, all through one SoundManager (orkige_engine/engine_sound/, OpenAL Soft on every platform): kind asset how it is loaded sound …
- Procedural meshes: the .omesh asset3D geometry authored as TEXT. A .omesh is a list of placed parametric shapes in one small, diffable file; the engine builds it into a real mesh resource on firs…
- Vector animation (.oanim)Keyframed animation for vector shapes: a layer rig whose transforms, opacities and path poses are keyframed over one frame timeline, carved into named clips (id…
- Character animationOrkige animates characters two ways: 3D skeletal meshes (skinned glTF with bones and clips) and 2D vector/sprite rigs (the flat-colour art path). This guide sta…
- LocalisationOrkige localises game strings through XLIFF 1.2, the industry-standard translation interchange format. A project keeps its strings in a loc/ directory of .xlf f…
- LoggingThe engine's diagnostics run through one always-compiled, runtime-gated channel. An honest error (a missing material, a failed parse, a resource miss) reaches s…
- Benchmark recorderPer-scene performance capture to a machine-readable results artifact. The recorder (core_debug/BenchmarkRecorder) is the benchmark counterpart to the crash brea…
- MCP endpoint — AI-agent editor controlThe Orkige editor hosts an MCP server itself, over Model Context Protocol Streamable HTTP (the stable remote transport, spec 2025-03-26): a single POST /mcp end…
- MCP agent workflowsWorked walkthroughs for an AI agent driving the Orkige editor over its MCP endpoint. This is the tutorial companion to Docs/mcp.md — that document is the refere…
- Render backend (engine_render)engine_render is the backend-neutral rendering interface. Engine code, components, tools, the editor and the Lua surface talk to the renderer only through it — …
- Orkige in the browser (WebAssembly / WebGL)The classic render flavor compiles to WebAssembly through Emscripten and renders through WebGL on a page canvas — effectively a GLES3/WebGL2 target. Two facts s…
- Device session — plug in a phone, one commandUtil/orkige_device.py is the owner-facing front door for running an Orkige game on a real phone (or the orkige_test emulator / an iOS simulator). It reuses the …
- iOS device signingInstalling an Orkige game on a physical iPhone/iPad (as opposed to the simulator) requires the app to be code-signed with an Apple Developer identity and a matc…
- Store releaseThe device/dev exports (macos, ios-simulator, ios, android) install on your own machines and hardware. Submitting to a store needs one more layer: Google Play a…
- Nightly editor buildsOnce a night, CI packages the Orkige editor for macOS, Linux and Windows and publishes the results as two prereleases: a rolling one whose download URLs never m…
- Overlay ports — rationaleFull documentation for the vcpkg overlay ports in ports/ (wired via VCPKG_OVERLAY_PORTS in CMakePresets.json). The prose lives HERE, not in the port directories…
- Third-party code provenance + pinningWhere Orkige's third-party code comes from, how each source is pinned, and how a maintainer re-pins it on an intentional bump. The security-relevant slice is th…
- Claude IDE integrationThe Orkige editor makes itself discoverable as an IDE to Anthropic's claude CLI. When the integration is on, a claude session started from the editor's embedded…
- Device player payloadsA downloaded Orkige packages a game for the desktop and the browser out of what it carries inside itself. A phone runs another architecture's binary, so that pl…
- Editor panelsReference for the Orkige editor's dockable panels beyond the core Scene / Hierarchy / Inspector / Console set. Each panel opens from the View menu and docks fre…
- The editor's command lineThe Orkige editor answers to argv as well as to a mouse. A first argument that is a subcommand word runs that operation headlessly — no window, no render backen…
- Editor distributionThe editor is meant to be copied. Someone takes the app to a machine that has no clone of this repository, no engine build tree and no Python, double-clicks it,…
- Keeping the editor currentThe editor updates itself the way desktop applications do: it looks once a day, says when something newer exists, downloads it in the background if that is what…
- Pak mounting (filesystem)A pak is a zip mounted as read-only content: the engine registers its entries with the resource system so a scene, texture, sound or script inside it resolves e…
- Fuzzing the pure parsersOrkige loads several plain-text and binary asset formats by hand-rolled parser. Some of those bytes are untrusted: a downloaded pak or an APK central directory …
- Help portalThe engine's public site lives at orkige.orkitec.com. It is regenerated and deployed by CI on every push to main (.github/workflows/pages.yml) — nothing on a de…
- HTTP clientThe engine's way to talk to a web server: a leaderboard, remote config, a backend API, an asset or update download. One facade — core_http/HttpClient — with a p…
- MonetizationSelling things and serving adverts, behind one seam with pluggable providers. Two halves — a store side (products, purchases, entitlements, restore) and an ads …
- Native game modulesA native module is the compiled C++ game code of a .orkproj project (the manifest carries native.target / native.cmakeDir / native.buildDir; projects/jumper-nat…
- Performance architecture — static mobility, sprite-run batching, instancingHow the engine turns *knowledge about content* (what never moves, what can share a draw) into each render backend's native fast path — and how the resulting str…
- Dynamic-analysis gates: ASan/UBSan/LSan, ThreadSanitizer and ValgrindInstrumented CI builds catch faults a plain build hides. The compile-time sanitizer gates run each in their own dedicated build tree (the sanitizer runtimes are…
- Script editing & debuggingThe editor embeds a Lua script EDITOR and a breakpoint DEBUGGER, built for humans in the code editor and Debug panel and for agents over MCP — one machinery, tw…
- The SDK packThe SDK pack is the engine in RELOCATABLE form: one self-contained directory that compiles, links and runs a project's native C++ game code on a machine with no…
- Security postureOrkige is developed and driven by AI agents as much as by people: an agent controls the editor over the MCP endpoint, writes project files, imports assets, and …
- Stability instruments: boot/teardown cycling + the nightly soakTwo classes of fault never show in a 3-second unit run: teardown-order and lifetime bugs surface only when the WHOLE stack comes up and goes down — a dangling h…
- Embedded terminalThe editor hosts real terminals as dockable windows: terminal-based agents (Claude Code and others) and plain shells each run in their own window, sibling tabs …
- Testing a game in LuaA project tests its own game code, in the language the game is written in. Test files live in <project>/tests/, are written against an engine-owned vocabulary, …
- Texture pipelineHow a texture travels from a project's assets/ folder to a shipped export: the import-settings model, the export-time cook, and GPU block compression. The one-l…
Engine API
- API ReferenceThe C++ class reference, generated from the engine headers when the site deploys (not part of a local portal preview).