SWAMP UNLEASHED
Platform: Windows
Enigne: Unity 2022
Language: C#
Duration: 8 weeks
Type of project: University
Completion: 2023
Team size: 7
Role: Technical lead, tools programmer, narrative designer.
CHECK OUT THE TEAM
PROJECT OVERVIEW AND GOAL
This project was created by Team Butter: Go Shrek or Go Home - a multidisciplinary team, that worked together on multiple university projects. Together with The Overkill Festival 2023, our team created a game that was displayed at the festival in Enschede, the Netherlands, and was enjoyed by many visitors.
The Overkill Festival is an art and technology event that appreciates creativity and uniqueness. The theme of the festival in 2023 was “The outburst of the digital swamp”.
In Swamp Unleashed, your goal is to collaborate with the second player on getting the highest amount of points. The game is an endless runner where players can see a few types of obstacles: jumping, sliding and balancing. The players have 5 hearts each, and can revive each other, if the other one fails.
NARRATIVE DESIGN
To connect the gameplay to the festival’s theme, I created a narrative background for our product based on the team’s idea. In the game, the players run through the three layers of the internet: surface, deep, and dark web. Those are showcased by the different decorative elements and shaders used in the areas. Occasionally, the players will encounter crossroads with anonymous creatures that will hint at which direction to go. The creatures, with their masks, represent users of the internet and the fact that everyone there is anonymous, and there is no certainty that they wish us well. That is why the creatures sometimes help the player get to the surface layer and sometimes throw them deeper and deeper. This, combined with the increasing speed of the game, is supposed to simulate the feeling when we get lost scrolling online and can’t control it.
MY CONTRIBUTION
My primary focus was creating a random road generator that was easy to use by the 2 designers in the team. During this project, I worked on my skills in creating Custom Editors in Unity with the use of C#. The overall reaction of the designers was positive, and the tools sped up the team’s work. This also taught me that often it’s better to work longer on a good tool than to deliver unfinished work. Due to focusing on providing the proper random road generator, my team did not see much progress in the level development in the first two weeks. But when the tool was delivered, the speed of work increased massively. Thanks to testing out the tool in advance, the adjustments and fixes were minimal and did not affect the workflow of my teammates too much.
The other important element for the random road generator was the Obstacles Spawner script. The designers voiced their wish to have the obstacles spawn automatically, but with the ability to control them if necessary (for specific obstacle combinations). I created a Unity component that took various objects into the list and randomly put them on the road element. The designer could also decide on the spacing and height offset of the obstacles.
Again, to accommodate the desire to control the spawns in specific situations, I created a button to unfold a special set of settings for the Obstacles Spawn. The designer could decide in which area of the road the object should spawn and what object it should be. If no object was selected, there would be a random one.
Of course, the component had information written for the designers to know how to use the scripts. The whole tool allowed for better control of the game’s difficulty.
The primary tool was the Road Generator script. The few elements that made it easy for my teammates were, for example, the description elements that informed the user about how to use the tool properly. Road Generator would tell the user how to set up the list of Road Pieces and where to position the generator spawner (essential to work together with automatic obstacle creation). It also allowed the designers to modify various variables without looking at the code.
Another important thing was the Debug options. Sometimes, the designers would like to modify additional settings that were not connected to the general gameplay adjustments. I created a few debug options that were active only if the Show Debug button was pressed. It would also warn that the values should not be modified without the necessary knowledge. Thanks to this, we avoided someone changing important values by accident.