生逢三國

Born Among Kingdoms

The ink-wash battle prototype from the Three Kingdoms game I am building in Godot, compiled to run in your browser. Start it in English or Chinese, pick a scene and a hero, then press T to take over from the AI.

Zhao Yun casting his signature move, 七進七出, in the ink-wash battle demo

About 12 MB. Needs a keyboard and a browser with WebGL 2.

About 12 MB. Needs a keyboard and a browser with WebGL 2.

Choose a hero

Each one carries a personal 絕技 into all three scenes.

Controls

The same keys in every scene, matching the menu in the game's corner, in either language. The AI fights until you press T.

Scenes

  • 1Signature moves 絕技
  • 2Siege 攻城
  • 3Cavalry battle 野戰
  • GSwap sides in the siege
  • MOverview camera

Battle

  • TTake over from the AI, or hand back
  • RRestart the scene
  • FFast-forward after you fall
  • QNext hero
  • NNext signature move for this hero
  • VNext weapon
  • TabLeave the game and return to this page

Fighting

  • WASDMove
  • JAttack, tap for a combo
  • KCharge: hold, then release to strike
  • SpaceDodge
  • ISignature move, once Spirit 氣勢 is full

Horses and orders

  • EMount a horse beside you, or take an exhausted officer alive
  • HCall your horse
  • K SpaceRiding: couch the lance, spur on
  • ZXCOrders to your side: follow, hold, charge

Three scenes, one battle core

Signature moves, sieges and horses all run on the same simulation, so a hero's weapon, 絕技 and horse behave the same everywhere.

Guan Yu's 拖刀計 with its cinnabar warning arc

絕技Signature moves

A practice field where Spirit 氣勢 refills on its own. Each hero's 絕技 is a record in data: a move from their weapon family, with its own shape, tempo and ink. Guan Yu and Lü Bu also have hand-keyed unique moves, and enemy officers cast theirs with a cut-in, so you can see it coming.

Zhao Yun leading soldiers up a siege ladder onto the city wall

攻城Siege

Break the gate or take the wall before dark, or press G and hold the city instead. Ladders, a ram, arrow volleys and fighting along the wall walk.

Lü Bu on a white horse sweeping through infantry with 畫戟橫天

野戰Cavalry battle

An open-field fight where a horse is simply part of a unit's state. Ride in, dismount, call your horse back, couch the lance for a charge, and hold your line when the 虎豹騎 cavalry come at it.

About this prototype

What it is

A visual spike from the game's repository. The question was whether figures built entirely in code could reach an ink-wash look in Godot. Each soldier is assembled from a recipe of a few hundred bytes, every pose is keyed by hand, and the combat numbers are placeholders.

Getting it into a browser

Godot 4.6 exports to WebAssembly and WebGL 2. Matching the desktop look took three fixes: WebGL writes shader color without sRGB encoding, reads depth without reversed Z, and stores per-instance data as half floats, which had broken the packed leg data that moves the robes.

Credits

Design and direction by Hank Chen, built with AI coding agents (Claude Code, Codex and Cursor) under that design and review. Portraits were made with diffusion models. Chinese type is Noto Serif TC, under the SIL Open Font License.