Editor included
Section titled “Editor included”A docking editor with scene/entity/component editing, live play mode, and tileset, tilemap, and animation authoring. Everything you need to build a game without leaving the app.


Lua scripting
Section titled “Lua scripting”Drive entities with per-entity Lua: read input, move and animate, spawn and query, and store custom data other entities can read. Here’s the heart of the demo’s player controller:
function on_update(entity, dt) local transform = entity:transform()
local move = 0.0 if Input.is_key_down(Key.a) or Input.is_key_down(Key.left) then move = move - 1.0 end if Input.is_key_down(Key.d) or Input.is_key_down(Key.right) then move = move + 1.0 end vx = move * MOVE_SPEED
local jump = Input.is_key_down(Key.space) or Input.is_key_down(Key.up) if jump and not jump_held and grounded then vy = JUMP_SPEED grounded = false end jump_held = jump
vy = math.max(vy - GRAVITY * dt, -MAX_FALL) transform.translation.x = transform.translation.x + vx * dt transform.translation.y = transform.translation.y + vy * dtendLit 2D rendering
Section titled “Lit 2D rendering”Batched sprites with deferred ambient/point/spot/sprite lights, HDR tone mapping, bloom, SDF text, and tilemaps, so a pixel-art scene lights up without hand-painting shadows.


Readable projects
Section titled “Readable projects”Scenes and projects serialize to plain YAML, which is easy to diff, hand-edit, and generate (even by an LLM). A whole entity is just a few lines:
- Entity: 0 TagComponent: Player TransformComponent: Translation: [0, 0, 0] SpriteComponent: Texture: hero Size: [16, 32] ScriptComponent: Script: playerA complete game in the box
Section titled “A complete game in the box”The repository hosts Crystal Keep, a five-level night-time tower defense built entirely as kione content: autotiled maps, enemy waves and economy in Lua, dynamic lighting, a HUD, and audio. No engine-side game code. Play it, then pick it apart.

A small 2D engine you can own
Section titled “A small 2D engine you can own”Kione is a tiny, hobby-scale 2D game engine with a full editor, a Lua scripting layer, and
human-readable project files. Build your game in the editor, script it in Lua, and ship it by
dropping your project next to the runtime. No build step required. Two finished projects live
in demos/: a platformer and the Crystal Keep tower-defense game.