The Naturals' Descent
The Naturals' Descent was developed as a group project assignment for the Games and Simulations course at Nova University. The group was composed of 2 programmers, and we also had some help with the world building and story telling from another friend.
Introduction
This was the bigger final project for the Games and Simulations university course. We were given full creative freedom and so we decided to try and create a relatively ambitious action-adventure first person shooter, set in a steampunk desert world. The player can explore the desert in a hover board, fight AI enemies and solve puzzles inside of procedurally generated underground mazes. The following sections showcase some of my core contributions to the project.
Video Presentation
Video showcasing the game and the implementation of the core mechanics. It was required for the project submission.
Wave Function Collapse
For the underground caverns, we knew we wanted them to be procedurally generated. I challenged myself to implement this procedural generation using the Wave Function Collapse algorithm. Because of the project's ever-closing deadline and since we didn't really need verticality in the caverns, I applied the 2D version of the algorithm using 3D meshes as the possible tiles.
Hover Board Mechanic
For exploring the desert, we wanted the player to be able to ride some kind of vehicle. We decided that a hover board would be a cool and fitting choice for our steampunk world. The mechanic was inspired by the hover bike found in the game Sable.
What I learned
This project taught me a lot about collaborating during game development. Even though our team was small, just two programmers, I really enjoyed the exchange of ideas and the process of brainstorming solutions together.
It was also the first time I worked in devising a detailed Game Design Document (GDD) before starting development. I learned how helpful it is to have a clear vision from the start to keep the scope realistic and maintain focus during implementation.
Another challenge was resolving Git merge conflicts in a game development context. While I was already familiar with resolving git merge conflicts, working with many binary and structured files made conflict resolution trickier. I learned how to handle these safely and prevent project corruption.