Daniil Gurski

Go back

Dark Horizon

2D browser-based platformer built with Phaser.js, featuring a custom player state machine and integrated tilemap physics.

As part of my final high school thesis project (gymnasiearbete), I wanted to explore the capabilities of JavaScript in game development. Over a three-to-four-month period, I partnered with a designer to build a playable 2D platformer while writing a formal academic report analyzing the technical implementation.

Our goal was to build "Dark Horizon," a browser-based platformer demonstrating core game mechanics like physics, level progression, and player state management. As the sole developer on the project, my objective was to architect the entire codebase using object-oriented JavaScript and Phaser.js, translating my partner's visual designs into a functional game.

To achieve this, I implemented a robust player state machine to handle complex animations and movement states, such as running, jumping, and shooting. I also engineered the collision detection systems and integrated Tiled map layouts into the Phaser.js engine, resolving technical hurdles around tilemap rendering and physics boundaries.

Ultimately, our project was highly successful, earning a nomination for the "best programming project" and receiving praise for demonstrating technical knowledge on an academic level. This early project solidified my passion for software engineering, teaching me how to manage a multi-month development lifecycle, write technical documentation, and master core programming paradigms like Object-Oriented Programming (OOP).