Snowmanic Level Tools
Godot Engine | GDScript | Editor Tools
About The Project
To accelerate the development of snowmanic during the Secret Santa Jam, I developed custom editor tools within Godot. These tools were essential for rapidly designing levels and managing the chaotic enemy spawning behavior that defines the gameplay. By extending the editor, I could iterate on puzzle designs and difficulty balancing without constantly switching to code.
Media Showcase

The LevelDef resource inspector allowing visual configuration of the 8-bit image grid.


Technical Implementation
LevelDef Parser
The core puzzle mechanic of snowmanic involves completing an 8-bit image. To manage this, I created a custom LevelDef datatype.
- Grid Definition: This resource allows me to define the target grid pattern directly in the inspector.
- Parser Logic: A dedicated parser reads this definition at runtime to generate the expected win condition for the level, checking if the player's placed blocks match the 8-bit image pattern.
Dynamic Enemy Spawner
To create the "chaos" element of the game, I built a robust enemy spawner with several layers of randomization:
- Randomized Intervals: The spawner features a respawn timer with a configurable deviation. The timer resets randomly within this deviation range, preventing predictable enemy waves.
- Failure Chance: To add unpredictability, there is a probability setting for a spawn attempt to fail, creating natural lulls in the action.
- Moving Spawners: The tool includes an option to move the spawn point linearly between two defined positions. This makes it feel like enemies are arriving from different locations along the map edge rather than a single static point.
Lessons Learned
- Tooling for Jams: Even in a short game jam, investing time in editor tools paid off by allowing faster level creation and balancing in the final hours.
- Godot Resources: Using Godot's
Resourcesystem for theLevelDefproved to be a powerful way to separate data from logic, making the level design process much more intuitive.