Docs
The notes we build from
The same design documents the team works from, published as they are in the repository. Every numbered decision they mention is in the decision log.
- 3D characters (Quaternius modular outfits)Players and NPCs are drawn as skinned, animated 3D meshes assembled from three CC0 Quaternius packs : Modular Character Outfits – Fantasy , Universal Base Characters and Universal Animation Library 1 + 2 . All share…
- Asset pipelineModel in Blender -> bake to 2.5D sprite maps -> the client loads assets/sprites/<name>/. The output format is specified in sprite-format.md.
- Baked sprite format (v3)Every visual object in the game is a 3D model baked into a 2.5D sprite that carries enough data for modern lighting: colour, surface normal, front and back height, material and emission. The renderer reconstructs the…
- Brief: modelling a group of UO objectsYou model and bake one group of world objects for UO Remastered, a remaster of Ultima Online with 2.5D pixel-art sprites lit per pixel. Work in the git worktree…
- BuildingsStage 2 of building the world : a generator that plans buildings the way an architect would, from the object catalog . Towns place them .
- Character system (stats, skills, equipment, inventory)The gameplay model of a character, shared by every program that touches one: the server , the client , and the SDK/MCP bridge . It lives in crates/uo-proto/src/character/ plus the item catalog in…
- Client performance (uo-client)Machine: M1 , macOS, 2560x1600 window, zoom 2, offline demo scene , release build, quiet machine (load ≤ 10 from other apps).
- Client rendering (uo-client)The client is a Bevy 0.19 app. The world is real 3D geometry under an orthographic camera that reproduces the oblique UO projection of crates/uo-proto/src/iso.rs exactly. Baked 2.5D sprites (see…
- Combat: real-time tactics on a tempo timelineStatus: decision #68 ; the client-only showcase prototype is implemented : no server, no ledger. The rules are written so they can later move unchanged into the server and the uoledger program (see Later: server and…
- Destructible environmentStatic objects can be hit and broken. A hit shakes the sprite and flashes it white, damage shows as cracks, and the last hit replaces the sprite with real 3D chunks that fly apart, come to rest and sink into the ground.
- Game server clusterStatus: implemented (decisions #87 server, #88 online client, #90 ownership timings and tick scheduling). The on-chain ledger is off: inventories live in the server's store, and Gather/Craft answer "ledger off". Load…
- Public development pipelineHow Felucca Online is developed in the open : the website, the changelog, the blog with Discord comments, the docs, the roadmap board, the Discord bot and the media pipeline. The repository stays private; the site…
- Server cluster: load and chaos resultsHow the cluster of decision #87 holds up under uo-loadtest scenario . All runs on the M1 laptop while it was busy (load average 6–29 from other apps and sessions), bots and nodes on the same machine, so the absolute…
- TownsStage 3 of building the world : every settlement of the atlas gets a plan , and its buildings come from the building generator . Plans are computed once, before the bake; the ground painter, the bake and the atlas…
- UO Renaissance base (land) tilesUltima Online draws terrain from land tiles: 44 px diamonds, each tagged with a terrain type. Most types have several texture variants plus edge transitions toward neighbouring types. This is the set of base terrain…
- UO Renaissance objects (statics and items)The catalog of world objects to bake as sprites: housing pieces, furniture, lights, crafting stations, decoration, dungeon and civic props, nature, and items lying on the ground. It covers what a player saw in…
- User settingsWhat a player chooses and keeps between runs (graphics quality for now), as opposed to the command-line Settings of a single run. Code: crates/uo-client/src/settings.rs.
- World atlasThe first stage of building the game world: a seeded generator that plans the whole map (geography, the two factions and their borders, provinces, settlements, roads, resources, dungeons, sites and encounters) and…
- World dressingThe towns were alive and the world around them empty : this is the plan for filling every location of Felucca with props, and the order of 1060 new sprites it needs . Everything here is placed by the bake ,…