
Slip Up N Slide is a split screen multiplayer racing game that can only be described with one word. Chaos! The goal is to be the first to cross the finish-line by racing down a slippery track as a penguin. However, to be the fastest, you might have to use the chaotic physics provided in the game and think outside the track to win!
My roleThroughout this project, I became the programmer who dealt with the issue that our game engine was missing certain features that were needed for some functionalities in the game.One of them was a physics engine where our game was heavily relying on good physics. It felt like a waste of time “faking" physics to feel as good as an already established physics engine if we instead could find a way to get a physics engine in our project.And then it was to find a way to store high scores that were not local on your computer. For that we needed a site or server to store them to and a way of communicating to the site or server.But in reality I mostly filled in and worked on what no-one else was that excited to work on. Because for me, it feels more meaningful working on something important that impacts the result of the product rather than me working on what I think is the most fun.
Slip Up N Slide was made in PlaygroundSquads in-house game engine named Tengine, which is a pretty barebones engine based on DirectX 11. We use Tengine as a learning tool for us to learn the basics, and to not make us dependent on the tools and convenience that other well known engines provide. Like for example Unity & Unreal Engine. The engine doesn't have any documentation, that makes it so we have to learn to be comfortable with reading code instead of documentation for us to understand how to work with the engine. It's also a good opportunity for programming students who want to pursue a career in making game engines or make functionality that almost always exists in common engines.

Since our game engine has no built-in physics engine. We chose to integrate one ourselves by linking the needed includes and library files through our projects Premake file, which are used for setting up the file structure of our project. First I tried to integrate NVIDIA PhysX into the engine. Got it to work on Windows, but realized we were missing the library files for the PS5. And to not spend unnecessary time going through Sony, we decided to look if the school already had library files for any other Physics Engine for the PS5. We found some for Jolt Physics, therefore we decided to use that Physics Engine instead.
We also needed a way to keep an online scoreboard. The scoreboard stores the best time a user has finished the current level. For that, we needed somewhere to store these scores and a way to communicate between the game and that storage.First I looked into where to store the scores. I found a site called LootLocker, which was a free service for me to store a scoreboard without needing to worry about sorting it ourselves. The only thing I needed to think about was to keep track of what player you are and if your new time is better than what's already on the board.Therefore the same way I integrated Jolt Physics to the game engine I did with Curl for networking so that we can communicate with LootLocker.

When I was not working on any of the bigger features like Physics and High scores, I made small gameplay features. I'm just going to list a few of them below.I made Checkpoints, Sound logic, Scrolling UV shader, Boostpads and some UI code.
What I learnedThis was the first ever game I created in a group. A lot of mistakes were made as expected for a first project. But you learn from you mistakes, so I learnt a lot from this project. Both technical skills but almost more important I learnt a lot about teamwork and how I look at myself and my work.The thing I learned from this project that has shaped me the most and made a real difference in my life overall, is that a lot of times you need to take responsibility for stuff that you might not have any idea how to complete or even start with the task. But that's completely fine, and I think I can talk for everyone when I say "you are a lot more capable to solve problems then you will ever comprehend". After this project I have had it a lot easier to "trust the process" and to be able to take on tasks and responsibilities that I before didn't know if I could manage or not without saying stuff like "I'm not sure if I could do this". Because you don't know that before you have tried!