GAME CONCEPT • Considerations & Specifications
Centicrawl
Last update: 13 Aug 2026

TL;DR: Collect flowers, evade creatures.
Abstract
Action game about roaming a loose maze, avoiding harmful encounters, and picking up needful things. Based on Bertram’s ominous dream in a hot summer night.

Environment
Our adventure takes place on a floorplan (top-down view) on 16×16 px cell raster, containing 256 (16×16) square rooms, each of which consists of 4×4 cells (area: 64×64 px).
A larger long-play version with 1024 (32×32) rooms would be an option, but probably requires too many objects to be calculated/animated at runtime, risking a performance bottleneck.

Rooms are interconnected by doors (wall gaps, width: 2 cells), each room having 1…4 of such openings, though terminal one-door compartments would be rare (good 4%, reserved for special content), and four-door crossings would even be extremely rare, if present at all.

The insurmountable (ignored by emitted sprouts) walls, having a thickness of 6 px, are centered on cell grid lines.

While many elements in the naturalistic ambience will have a photorealistic style, most of the handmade sprites - for plants, creatures or other objects - might tend to clipart or antialiased pixelart.

As of textures, there’s only 2 surface types in the level, both just slightly saturated.
SurfaceAvg. toneGray value
Floor/ground
Stained clay ground
with traces of rubble.
Brown
#9c8c7a
Dark medium
#8f8f8f
Walls
Rough weathered clay.Brown
#695945
Very dark
#5C5C5C
See Textures for full images.
Environment :: Viewport
Our usual viewport size of 768×768 px shows roughly 12×12 rooms at once, that’s ~56% of the map (or ~14% of a hypothetical large map).
The avatar stays centered (if possible) while the floorplan and other objects are scrolled accordingly.
Environment :: Layers
<div> viewport, overflow:hidden
Environment :: Algorithm
First, a random room is chosen to start with.
Then follows a random walk by building a series of connections to not yet visited adjacent rooms.
Whenever getting stuck, a pointer keeps backtracking the current path until a branch-off is possible, so the walk can continue.
This process repeats until every room has eventually been visited, whereby the entire map structure is defined.

Since the resulting tree is basically a (tediously to navigate) collection of one-way roads, we need two additional steps to increase connectivity:
Environment :: Generator
Note that extreme wall dominance values of the ratio slider below may be clipped, because even a very low wall density won't dissolve remaining terminal rooms, and a very high densitiy won't remove necessary doors.

Pressing [Default values] sets the slider values both to 60%, which looks about a decent setting.

Level structure is shown scaled down (37.5%).


The
dark squares near the center of the map’s quadrants are holes of the firebug’s den. With a size of ~22×22 px they’re always located near a room’s center for an esthetic reason: not to be partially overlapped by a wall.
Initial ratio (2-door : 3-door) ≈

bydissolve all

Ratio2-door:3-door
()
Low value → loose maze, open
High value → dense tree, close



Doors:1234
Rooms:----
Final ratio (2-door : 3-door) ≈

Avatar
To offer a minimum of customization, players can choose from ~60 character skins.
Here a gallery of upscaled (150%) versions which may also be used in a config dialogue:

An in-game avatar has a size of 20×20 px, just slightly larger than a grid cell.
See Avatar skins for final sprite sheets.

Moving as fast as a firebug (approx. 267 ms / cell), the avatar can traverse a room (4 cells) in just over a second (~1067 ms).

Navigation is done via arrow keys [Left][Up][Down][Right].
By steering into a…
daisy, the flower gets picked up.
health pack, the HP bar will be replenished (up to 100%, if possible) automatically.
bullet pile, the magazine will refill (to the brim, if possible) automatically.
green shroom, it gets eaten, restoring health by [113] HP (depending on shroom’s size).

If the magazine holds ammo, a bullet can be shot in viewing direction by pressing [Space]. It’ll destroy hit segments, firebugs, shrooms, and bullet piles.

Health decreases when being...
bitten by a firebug: -3 HP
consumed by a centicrawl: -50 HP
As soon as health is down to zero, the game is over.

At game start, the avatar is put in one of the map’s 4 center rooms.
Objects :: Exit
Has eventually to be reached by the player to win the game.
Located in one of the map’s 4 corner cells - marked by a blue flag, stating the exit is closed.
Only when the last flower has been collected, the exit opens and the flag turns light green.
Objects :: Daisies
The level contains 16 of those collectibles that are required for the exit to open.
By walking into a flower cell, the avatar picks it, increasing their counter.

At game start, the flowers are evenly spread over the map.
Objects :: Health packs
Serving as health supply station, a pack contains up to 25 HP units.

If walking into a pack, the avatar’s health bar will be replenished (up to 100%, if possible) automatically.

Player controls are blocked during HP transfer. Healing takes 250 ms (1/4 sec) per unit, hence ingesting a full pack immobilizes the avatar for over 6 seconds.

At game start, 4 full packs (100 HP) are spread over the map.
Objects :: Bullet piles
Serving as ammo supply station, a pile contains up to 14 bullets.

If walking into a pile, the magazine will refill (to the brim, if possible) automatically.

Player controls are blocked during bullet transfer. Reloading takes 500 ms (1/2 sec) per bullet, hence refilling an empty magazine (10 slots) immobilizes the avatar for 5 seconds.

At game start, 2 full piles (26 bullets) are spread over the map.
Flora :: Shrooms
These fungi come in 2 species
… and have a 2-phase lifecycle, based on a symbiotic relationship with firebugs.
At game start, 120 fungi (6 of which are green) of random sizes are spread over 120 arbitrary rooms.

Flora :: Shrooms :: Demo
Simulation of fungi und their lifecycles on a mini map (6×6 rooms ≈ 14% of actual map).
Max. population (covering ~20% of area): 115.

Pressing [▶ Step] emulates a (usually rather sporadic) firebug interaction on each fungus, producing an extreme time lapse effect which demonstrates how the shroom vegetation ebbs/flows and wanders around over time.



Deaths:
Sprouts:
Violets:
Greens:


Creatures :: Centicrawl
The mighty centicrawl; nearly blind but ruthlessly rushing through the maze.

These predators, consisting of head and 1…25 body segments, always move straight from one room center to the next, never touching a wall, and consume every object in the path (though daisies and inorganic objects are excreted shortly after, right behind the tail).

Since they’re 32 px wide (= 2 cells; exactly fitting through doors), the avatar can/should sidestep towards a wall to avoid being steamrolled.

With a speed of approx. 117 ms / cell they can traverse a room (4 cells) in close to 1/2 sec (~467 ms).

If getting stuck in a terminal room, they’re able to instantly revert direction by exchanging head with last segment, and to continue scavenging without delay.

Centicrawls mainly nourish violet shrooms (as it’s the default fungi type), but can devour actually anything organic. Nutritive value overview:
Object:ShroomDaisyFirebugAvatar
?
Calories:≙ size[113]1550
As result of calorie intake, they’ll grow a new segment (before the next step) at the tail whenever a threshold of 13 calories has been reached in the stomach. A full length exemplar (max. segment count: 25) spans ~13 rooms.

While a head is immune to direct hits, segments can be destroyed by bullets, creating either a gap (body split) or - in case of rump hit - just a shortage.
Split rule: Parts that don’t survive, simply vanish.

At game start, and also when the last exemplar dies at runtime, a minimal (head + 1 segment) centicrawl is spawned in a corner room of the map. Hence, there’s always a predator in the level.
Creatures :: Firebugs
Busy fellas, running around aimlessly.
With a size of 22×22 px they’re a bit larger than a standard grid cell, by design leading to visual overlapping near walls, objects, or in crowded situations.

Moving at a speed of approx. 267 ms / cell they can traverse a room (4 cells) in just over a second (~1067 ms).

New exemplars may appear sporadically, arising from holes of their widely ramified den. The maximum number of on-map firebugs is ~256.

If a bug steers into the avatar, it will bite in confusion, which costs the player 1 HP.

Firebugs die if being consumed by a centicrawl, and they will explode if hit by a bullet.

At game start, a den hole is placed in each of the map’s quadrants, and ~120 bugs are spread randomly over the map.
Stats panel :: Health bar
.
.
A simple bar shows health status in the range of [0…100] %.
Percentage:

At game start, players get 50 HP.
Stats panel :: Daisy counter
A spiral shows the current flower collection. As soon as all 16 slots are filled, the exit opens.
Number of daisies:

Stats panel :: Magazine
A magazine (capacity: 10 bullets) shows ammo availability.
Number of bullets:

At game start, players get 5 bullets.
Appendix :: Textures
Floor/ground (275×275 px)
Wall (137×137 px)

Appendix :: Avatar skins
Walk cycle (4 frames) in cardinal directions; frame size: 20×20 px.

Billy