Orkige Help Orkige

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

  • OrkigeThe 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-verifi…

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…
  • 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 abstraction (engine_render) — audit and designRender-backend abstraction design. Directive: dual backend classic OGRE 14 (what ships today) + Ogre-Next, extensible to Filament as backend #3 later. Backend s…
  • Orkige in the browser (WebAssembly / WebGL)The classic (GLES2) render flavor compiles to WebAssembly through Emscripten and renders through WebGL on a page canvas. One preset builds the whole runtime; on…
  • 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…
  • 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…
  • 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…
  • 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…
  • 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…
  • 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).