What it does
The player throws snow, which arcs under gravity and adds a unit of cover to the enemy it hits. When the cover is full
the enemy is a snowball; left alone it sheds snow a unit at a time and frees the enemy, so the player has to keep it
topped up or act. Walking into a snowball pushes it slowly; firing at one kicks it. fire does the right thing: it
kicks the resting snowball in front of the player, and otherwise throws snow.
A kicked snowball is the enemy's own walker body, so it rolls, falls and rides lifts and belts like anything else in the world. It rebounds off walls up to a set number of times, crushes enemies it meets in a chain whose kills are numbered for scoring, sets resting snowballs rolling into the same chain, and carries any player it meets along unharmed before releasing them with a moment of immunity. It shatters on a wall of the row you choose, by default the bottom floor. Enemies you mark as tough, such as bosses, are struck by a snowball instead of being covered.
Features
- Snow cover — thrown snow with speed, range, gravity and size, covering an enemy unit by unit to a full snowball.
- Melting — snowballs shed cover over time and free their enemy unless topped up.
- Push and kick — slow pushes by walking, fast kicks by firing, with one
firecall choosing between kick and throw. - Rolling chains — rebounds, crushes and resting snowballs set rolling, with chain ids and kill numbers for scoring.
- Carried players — snowballs sweep players along unharmed and release them with immunity.
- Tough enemies — bosses take hits from snowballs rather than being covered.
- Events and snapshots — thrown, snowball, melted, kicked, rebound, crushed, shattered, chain-end and more, plus snapshot and restore.
Good for
- Single-screen snowball platformers that trap enemies and kick them in chains, in the style of Snow Bros.
- Other platform games that want a freezing or rolling capture, such as a snowball rolled down girder levels.
- Push-the-frozen-enemy puzzles, where pushing trapped enemies into place is the challenge.
- Boss fights where snowballed minions are kicked into a boss that takes hits.
Make it yours
The pack factory has no options; settings go to createSnow, and snowSettings gives the defaults. You set the
throw (speed, range, gravity, size, life), the cover needed for a full snowball (default 4) and each shot's power,
the melt and hold times, the ball's size, kick speed, push speed and gravity, the rebounds allowed (default 8), the
row a snowball shatters on (the bottom row by default, or never), how long a roll can last, whether players are
carried and for how long they are immune, and a cap on shots. configure changes settings mid-game, and isTough
decides which enemies take hits instead.
Two different uses: the arcade structure, where enemy-capture and snow-tower put the mechanic into ten floors
with scores, drops and a boss; and a girder platformer where one hard throw (high power, cover of 1) freezes an
enemy at once, snowballs never shatter and rebound only twice, and a rolled snowball is a weapon down the slopes.
A quick look
A snowball controller with four hits to freeze and a faster kick, and the fire button:
const snow = SR.createSnow({ world, enemies, settings: { cover: 4, kickSpeed: 230 }, isTough: (id) => id === bossId });
snow.fire("p1"); // kick the resting snowball in front, otherwise throw snow
Works with
platform-map,platform-walkerandplatform-enemies— required: the level, the walker physics and the enemies it covers.enemy-capture— the arcade structure of floors, scores and lives around it.snow-tower— a complete ten-floor snowball game built on it.bubble-trap— for capturing enemies in bubbles instead.
Good to know
- Snowballs push nothing but other snowballs, because the walker has no body-to-body collision.
- A snowball is the enemy's own walker body, so it rides lifts and belts like any other body.
- It draws nothing; your game draws the shots, covers and snowballs from its state and events.






