
Good Knight
Good Knight is a 2D platformer created with GameMaker Studio. A knight embarks on a series of seemingly heroic feats, only to discover that his efforts may not be as virtuous as they appear. Beneath the lighthearted premise lies a darker truth about the nature of heroism and the consequences of blind ambition.. but you must play to find out!
Core Design
The world is divided into "rooms", each built with tiles and objects in GameMaker. A top-level “room manager” listens for transitions—whether that's stepping off-screen into a new area or activating a hidden gateway—and updates the camera to keep the knight centered throughout each scene, as well as manage the game's state through health, interactions, and level progression.




Implementation
Good Knight's codebase is organized into distinct objects for the player, enemies, environment interactables, and projectiles. Each object type has its own set of behaviors and properties, such as movement patterns, collision detection, and health tracking.
Each enemy or obstacle—ranging from small woodland creatures to larger, more formidable hazards—operates under the same architectural logic with parent-child relationships. This lets us repeat behaviors like collision responses and health bars. We also set up other systems, like collisions, to prompt for dialogue from quirky NPCs, as well as create twists that challenge the player's perception of heroism.
Acknowledgements
Our visuals are sourced from several great open-source tilesets! Many of the forest elements and character sprites owe their charm to the works of Dan Cramp and Indiana Kuffer, whose assets suited both the medieval atmosphere and the lighthearted tone.