What it does
The world is a torus of land and sea from torus-land, shared by reference with the renderer. Carpets fly by
cruise-flight, and creatures come from creature-zoo, with the game supplying their targets, attacks and food. Each
wizard has two hands holding spells, cast from personal mana that regenerates, faster at home. Stronger spells wait
until the caster's castle holds enough mana. When a creature or wizard dies, its mana drops as orbs: gold for nobody,
or claimed in a wizard's colour once possessed. Balloons fly out from each castle to its owner's claimed orbs and
carry them home.
Castles are built on land or sea and raised level by level, each level with a larger store, more hit points, more balloons and archer guards. A world is restored when your castle holds its goal share of all the world's mana, held for a set time, or by an objective of your own. Spells learned from urns carry to the next world.
The land changes in play. Earthquakes run across it and split it, craters blow bowls, volcanoes rise and erupt lava
for a minute and more, and Raise and Lower Land reshape it. After each step, takeDirty() lists the
regions that changed, so your terrain refreshes only those. Rival wizards run a priority cascade: build, heal at home,
raise the castle, raid castles, attack wizards and balloons, possess mana and hunt creatures, with grudges.
Features
- Mana as the whole economy — personal mana that regenerates, orbs that drop from the dead, possession that claims them, and balloons that ferry them home.
- Growing castles — any number of levels, each with its own store, hit points, balloons and archers, and the strongest spells gated by castle mana.
- Spells as effects — 27 built in, from fireballs, rapid fire, lightning, storms and homing meteors to possession, castles and terrain spells, in a registry you can extend or replace.
- A deformable world — earthquakes, craters, volcanoes with lava, and Raise and Lower Land on a wrapping heightfield, with only the changed regions reported for redraw.
- Creatures as data — flocks, flyers, worms, serpents, walkers and sea creatures with melee, fireball, boulder, arrow, lightning or meteor attacks, and some that eat mana, grow and lay eggs, steal and teleport, or raise their victims.
- Rival wizards — aggression, skill and spells per wizard, a cascade of priorities with grudges, and hooks for their choice of spell.
- Objectives — a goal share of the world's mana, or any test of your own held for a set time.
- Campaigns — worlds in order, with spells learned from urns kept from one to the next.
- Difficulty and saves — Easy, Normal and Arcade, and snapshots of the whole state with the land's heights.
Good for
- Flying conquest games in the style of Magic Carpet, with spells, castles and rival wizards.
- God games seen from the ground, where reshaping the land is a weapon and a tool.
- Capture-the-mana arenas, with a few rivals on a small world and a resource to win and ferry home.
- Island conquests on a small torus of lagoons and sea.
- Terraforming sandboxes — a flying landscape editor with raise, lower, volcano and earthquake and no fighting.
- Raid games, where the only mana is in rival castles and creatures, and winning means breaking castles.
Make it yours
A configuration holds the worlds, each with its land's size, height, sea depth, land share and landform, its goal, its
wizards, creature groups, orbs, urns and trees. Every spell's cost, castle requirement, damage, duration, range,
radius and speed, the spell book and the starting spells; every creature kind's hit points, mana, motion and attack;
the castle ladder, balloons, sorcerers, orbs and flight; and difficulty are tables you can change. Spells, rival
choices and the win condition plug in through effects, ai and objective.
Two presets show the range. magicCarpetPreset is a long campaign of 45 worlds, each a 256 by 256 tile torus from its
own seed, with rivals arriving from the fourth world, spells found in urns and none known at the start.
manaDuelPreset is an original three-world lagoon game on 128-tile worlds, with two or three rivals who start with
castles, a four-level castle with bigger stores, terrain spells in the starting book, no castle gating, only crabs and
bees, and a two-thirds goal. Or set no wizards, no creatures and a goal of the whole world, and it becomes a sandbox.
A quick look
Start a game, build the terrain from its land, feed it the flight and the spell hands, and refresh what changed:
const MC = game.manaConquest;
const conquest = MC.createManaConquest(MC.magicCarpetPreset({ difficulty: 'normal', seed: 3 }));
conquest.start();
game.terrain.build({ field: conquest.land.field, paint });
conquest.tick(dt, { thrust, strafe, turn, pitch, left, right });
for (const r of conquest.takeDirty()) game.terrain.refresh(r);
for (const e of conquest.drain()) { /* cast, blast, hit, death, possess, castle-level, restored… */ }
Works with
torus-land,cruise-flightandcreature-zoo— the land, the carpets and the creatures, as package dependencies; each can be used without the rest.terrain-3d— draws the wrapping heightfield and refreshes the regions a spell reshapes.world-3dandrender-3d— the camera's roll banks the view into turns, and curved lighting draws the torus as a small globe.rig-fps— relative mouse look for the carpet's turn and aim.particles-3dandmodel-3d— for spells, creatures, castles and balloons.jet-combat,heli-assaultandrail-route— for a scrolling shooter or a flight that flies itself;terrain-3dalone serves a landscape that never changes.
Good to know
- The terrain is a heightfield: there are no caves, overhangs or tunnels.
- One volcano erupts at a time, and earthquakes die over water.
- Towns, civilians and their militia, teleport mirrors, switches, walls and mazes of the original's later worlds are not modelled.
- Rival wizards see every target; their cascade is a simplified one.
- Per-hit damage, later world goals and creature and rival counts per world are estimates, and the pack draws nothing.






