Written by GuillaumeTechProject Skyfall

Skyfall, part 5: a map editor, a ghost and the Champion Forge

July to October 2026: my own map editor, blood and a real rewind, a ghost opponent that learns from how I play, and a forge to build your champion from paper-doll parts.

The Champion Forge in October 2026: a list of part slots on the left, the dwarf king under a spotlight in the middle, and a grid of 14 pre-built champions on the right.

Part 5 of the Skyfall story. After the busy months told in part 4, the pace slowed down: 15 commits from July to October. But each batch changed something big.

Table of contents

My own map editor

Skyfall’s maps were made in Tiled. On June 30, the game got its own editor instead: a small, game-specialised Tiled, built as a standalone LÖVE app in its own repository and pulled into the game as a submodule. It imports zero game code. It paints tile maps from any tileset, manages layers, flags tiles as solid, spawn points or chests, and saves the same Lua format Tiled exports, the one the game already loads.

It has the tools you’d expect: a brush, a bucket fill, a marker for single positions, a randomiser that picks a random tile from a selection for each cell, and undo and redo. A Maps panel lists every arena with a thumbnail. The editor took 29 commits between June and August.

On July 1, the maps were reworked with it, and each arena got a preview image.

The map editor with Towerfall open: a Maps panel on the left with thumbnails of The Choosen One, Towerfall and Towerfall 2, the map in the middle with torches marked in yellow and spawns in green, and the walls, torches, spawns and background layers on the right.
The editor: three arenas, torches in yellow, spawns in green.

Blood and a real rewind

On September 5, the replay got a proper rewind phase. Time runs backwards, rain and effects included, then the round plays forward again in slow motion, at 40% speed. Blood arrived the same day, splashing droplet by droplet, each one a different size.

Blood is a good example of the one rule I wrote in the replay docs that day: anything drawn during the replay must come from recorded snapshots, never from the live game. The live game already holds the ending, with everyone dead and blood on the floor. Draw from it during the rewind, and the floor is red before anyone has been hit.

Arrows stuck in walls also stopped disappearing between rounds: they stay as decor, so a long match leaves its marks on the arena.

An elf ranger archer has just shot a dwarf king, who flies backwards toward a torch, blood droplets spraying under the rain.
A hit in the current build: the blood splashes droplet by droplet.

A ghost that plays like me

Since May, the plan in the README had a line in its list of extras: an “Against the Ghost” mini-game. On October 24, the first ghost arrived, as a prototype behind debug flags.

Offline, the game records how a human plays: at every tick, the situation around the player and the buttons held. A ghost built from those recordings can then take player 2’s place. Every 6 ticks, so every 0.2 seconds at 30 Hz, it looks for the recorded moment that’s closest to its current situation and replays what followed. Human sequences like a jump into a dash, or aiming then releasing, stay intact.

Everything is measured from the nearest enemy and mirrored, so a recording made while chasing someone to the right works just as well to the left. The ghost keeps up to 20 minutes of play, and when the recorded player is in the match, it learns live. It’s pure Lua, so the server could run ghosts later on.

An elf ranger draws his bow at the dwarf king labelled “GHOST P1”, both standing on a ledge under the rain, next to a torch.
Player 1 against “GHOST P1”, the ghost opponent.

The Champion Forge

On April 13, my TODO list already had this wish: split the player’s body into a few parts, like the hat, head, torso and legs. Six months later, on October 25, the Champion Forge landed.

Champions are paper dolls. There are eight part slots (hat, head, face, mask, top, waist, legs and feet) plus a skin tone and a hair colour. Every part is drawn in place on the same 24×24 template, on the footprint of the original dwarf, so any part fits with any other. A look is baked once into a single sprite sheet, and the arena, the lobby, the replay and the menus never deal with parts.

You can start from 14 pre-built champions: the dwarf king, an adventurer, an elf ranger, an orc warlord, a witch, a knight, a plague doctor, a shinobi, a skeleton pirate, a lizard shaman, a cat rogue, a monk, a warlock and a viking. Or roll a random one.

The rig brought new animations: breathing and blinks, a run synced to the actual speed, a stretch on the jump, a hat that floats while falling, a squash on landing, a lean in the dash, a KO face and a hat-toss cheer, with follow-through on hats, hair, capes and tails. The bow arm even takes the colour of the champion’s sleeves. Your champion is saved locally and worn in the arena, the lobby, the main menu and the profile. Online, the other players see it in the War Room and in the arena.

The title screen in October 2026: Play, Champion, Trials, Shop, Options and Quit, with the dwarf king and his crown on the right.
The title screen now has a Champion entry.

Where Skyfall stands

  • Still pre-alpha, at version 0.0.0.
  • About 450 commits since January 11, after about 250 in the Defold version.
  • About 21,000 lines of Lua in 114 files.
  • A changelog, written on October 23, that sums it all up month by month.

It’s also still silent: there’s no sound or music yet. The plan’s next phases have chests that hold arrows and items, accounts and currencies, sound effects, a main theme and more arenas. There’s plenty left to write about.

The Skyfall story

  1. From a Defold cube to a fresh start in LÖVE
  2. Wall jumps, a real bow and a quiet network
  3. Rounds, rain, torches and a VHS replay
  4. The War Room and the armory
  5. A map editor, a ghost and the Champion Forge (this article)