ClusterBlast

Designed, programmed, animated, and illustrated a 2D platformer from scratch using GameMaker Studio 2. This project marked my first experience with game development and played a major role in developing my programming and problem-solving skills.

Overview

This was one of the first large personal projects I became truly invested in. What started as a simple game to improve my programming skills quickly turned into a much bigger project where I designed every asset, wrote all of the code, created the animations, and implemented the gameplay mechanics myself.

Although the game was never intended to be commercially released, it taught me far more than I expected and became the project that made me genuinely enjoy programming.

Skills Demonstrated

Tools Used

Process

Building the Game

The project began as a small platformer to help me practise programming, but over time I kept adding new features including enemies, bosses, multiple levels, collectibles, menus, and different endings. Every mechanic was built from scratch as I learned more about game development.

Creating the Assets

All sprites, animations and artwork were created by me. While art isn't my strongest skill, creating everything myself helped me better understand how gameplay, animation and programming all work together.

Programming the Mechanics

One of the biggest challenges was creating smooth movement and gameplay systems. I programmed player movement, jumping, gravity, collision detection, enemy behaviour and combat mechanics while continuously improving and refactoring the code as I learned.

Code Breakdown

Player Movement & Physics

The player movement system handles horizontal movement, jumping, gravity and collision detection. Creating these systems gave me a much better understanding of vectors, velocity, acceleration and game physics.

Enemy AI

Enemies use simple state-based behaviour to patrol, detect the player and attack. Building these systems taught me how game objects communicate and react to different situations.

User Interface

Menus, score counters and game transitions were programmed separately from the gameplay logic, helping me learn how to organise larger projects into reusable systems.

What I Learned

This project completely changed how I viewed programming. It started as a way to practise coding for a couple of hours each day, but quickly became something I genuinely looked forward to working on, to the point I worked on it for about 9 hours per day. Through building the game, I developed a much stronger understanding of programming fundamentals, debugging, problem solving and mathematical concepts such as movement, timing and collision detection.

More importantly, this project gave me the confidence to tackle larger software projects. After finishing it, I went on to build cybersecurity tools and eventually began developing cybersecurity-focused games, combining two areas that I enjoy the most.