Sabotage: Give me my Pet Back!

By Iker Giménez


Summary

Personal Highlights

Video

The video is rather loud! Be careful with the volume!

Project Description

In my sophomore year of university, my graduating class was split into two teams. I worked on Dandelion, while the other students worked on this game, Sabotage. For our senior project class, some of us chose to group up again and improve on a previous project. We chose Sabotage, as it was the most stable and the most easy to expand upon that our cohort had developed. There were a lot of concepts left on the table in the original game, such as remixed bosses and a storyline. We used our improved skills and knowledge to try to bring those things to life in a second iteration of the game.

One of the things that had bothered me about the original is that the health and mana pickups dropped by enemies were very inconsistent. This was down to some messy code trying to use randomness to decide whether to drop a pickup when an enemy is defeated or not. I had been taking probability and statistics math courses recently, and I had more practical experience using random number generators in C++ because of it. I changed the code to better stick to the intended case where the drops became more plentiful if the player was running low on either mana or health. While it did drive down some of the difficulty, the game is much better for it, as it now feels possible to finish the game, and not get stuck very early on due to minor mistakes.

The other major thing I added is the ability to script scenes using Json files. The scenes aren’t complicated, and are sequentially exectued actions and text boxes written directly into the Json file. These days, if I were to do something similar, I would make the editor integrate into the engine and allow previewing and tweaking more on-the-fly, to reduce iteration time. Given more time, we might have experimented with giving the player chocies to make that branched the narrative. But the results speak for themselves, as our combined efforts resulted in an experience that plays better and has more personality.