Skip to main content

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.
The LevelDef resource inspector allowing visual configuration of the 8-bit image grid.
The LevelDef resource inspector allowing visual configuration of the 8-bit image grid.The Spawner tool properties, featuring randomization settings for intervals and movement.

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 Resource system for the LevelDef proved to be a powerful way to separate data from logic, making the level design process much more intuitive.