From 2021 until 2024, my cousin (Willem De Vos) and I made a movie, The Clashing Elements: Saviors of the Multiverse.
At the premiere, we wanted to entertain the people with a little game that embraced the theme of the movie. My cousin made the art and I started programming the game.
The game was made with an early version of The JelA Engine before it was even called 'The JelA engine'. I was only able to work on the game during the holidays, so it was nice that we started early. This project required me to do things I've never done before, like creating a graph system and implementing A* pathfinding.
People loved playing this demo version, so we're planning on making a fully worked out game in the near future.
I implemented a simple graph where the player and all the enemies can move on. This graph is represented by an adjecency list which hold the indeces to the neighbours of the current tile. The tiles are loaded in via a text-file that specifies the position and the types of the tiles.
All enemies can find their way to the player by using A* pathfinding. Whenever an enemy encounters an intersection, it calculates the shortest path into each available direction. Based on the 'smartness'-level, the enemy will choose the most optimal direction accordingly.
When an enemy is close to the player, its 'smartness'-level increaeses, thus choosing the most optimal path more frequently. This creates a 'chase' behaviour when the player is close.
We wanted to make the game feel very... 'arcade-y'. Highscores should definitely be part of the game then.
The player can cycle through the alfabet and enter three letters to save their score to a file. All the highscore operations make use of the STL algorithms to e.g. sort and write to a file, remove highscores, check if a name is in the list,...
I also used C++ regex to read the scores from the file in case something went wrong with writing to it.