Skip to content

Bonus Tile Alphabet

The bonus map alphabet keeps the mandatory parser model but extends it with additional accepted symbols for bonus-only gameplay and rendering systems.

Bonus alphabet

Bonus symbols extend the map language without changing the mandatory base

Doors, pickups, and extra wall families are parsed through bonus helpers. The mandatory alphabet stays intact; the bonus binary adds new accepted symbols and routes them to the correct runtime behavior.

01
Families of bonus tiles

The page is organized around the semantic groups the parser and renderer actually care about.

Doors

AD

Dedicated door tiles with runtime state and passability logic.

Accepted through BONUS_DOOR_SET and resolved as progress-aware collision and dedicated door textures.

Sprites / pickups

*@)/

Traversable gameplay markers projected as sprites instead of wall hits.

Used for HP, ammo, armor, and score pickups; they stay reachable by BFS and free for player movement, even though some of these glyphs also belong to the broad punctuation alphabet.

Extended wall families

2..9 and a..z
2349abcz

Additional wall buckets for larger texture vocabularies.

Each accepted value maps to a distinct wall family and remains solid for validation, collision, and DDA.

Symbol walls

BONUS_WALL_SYMBOL_SET
!#%&+-[\]~

Punctuation-based wall tiles for extra themed textures.

They behave like walls, not floors or sprites, because sprite tiles are filtered out first before symbol-wall matching.
02
Behavior by subsystem

The critical distinction is not the glyph itself, but whether the symbol is considered solid, traversable, or stateful by BFS, collision, and rendering.

Symbol BFS Collision DDA / render
A / D solid while closed state-aware door texture / door slice
2..9 / a..z solid blocked family-selected wall texture
symbol walls solid blocked symbol-selected wall texture
* @ ) / traversable free projected sprite
03
Validation path

The bonus parser does not replace the mandatory validator. It extends it with one explicit gate for bonus symbols.

mandatory alphabet = { 0, 1, N, S, E, W, ' ' }
bonus extension  = bonus_is_valid_map_char(c)
accepted extras  = doors + extra wall families + symbol walls + pickups
priority rule    = sprite tiles excluded before symbol-wall matching
Invariant after validation

Player spawn remains strict even in bonus mode.

Only N/S/E/W can initialize the player. Bonus symbols widen the tile alphabet, but they do not redefine spawn semantics or the mandatory parsing path.

  • door tiles: A, D
  • extended wall families: 2..9 and a..z
  • symbol-driven wall families via BONUS_WALL_SYMBOL_SET
  • sprite and pickup markers: *, @, ), /

Keep this page synchronized with the bonus parser, validation helpers, and texture selection logic. Player spawn remains N/S/E/W even in bonus mode. The bonus wall-symbol set is broad, but sprite markers are carved out first and treated as traversable sprites rather than solid walls.