4th Game Project

Engine: TGA2D (school's in house)

Timeframe: 7 weeks (half time)

Team size: 11

Genre: 2D Platformer

forknight_screen1.png
forknight.png

Play as Sven-Ture, a small knight with a great quest! Together with your handy fork you embark on a journey through the giant's house. Jump, climb and bounce your way through 4 unique levels.

My Contribution

Collision

For this project, I wanted to work less on gameplay and focus more on other parts of the game's code. Therefore I worked with the collision in Forknight. Because the game was tile-based, simple AABB collision sufficed. The collision itself was handled by a Collision Manager that ran through all the colliders in a level and checked for collision in a loop. Even though this isn't the most optimal and fps-friendly way to handle collision in a game - it was enough to get by for this projects and got the job done.

The system featured support for normal collision as well as Trigger-collision with enter and exit functionality. I took some inspiration from how Unity handles collision-response in code, with my own versions of OnTriggerEnter/Exit-functions that were called on the GameObjects involved in a collision. These functions made it easy to specifically check what an object collided with and handle that collision accordingly, as we get info of the other object as a parameter.

My biggest regret with the collision system is the fact that I didn't implement dynamic collision handling, free from tunneling and other fps-based problems. However, because of time constraints this wasn't something that got implemented into Forknight.

forknight_collision.gif

Collectables - Stamps

Another system I worked on was the game's collectibles that the player could hunt as a little extra completion bonus. These were represented by stamps found throughout the levels. The designers could easily place these out in Tiled (which was the level editor for Forknight) and was then saved to a file.

The system was not overly complex, but actually quite simple. However, it was a great way for me to learn more about reading and writing to files with JSON.

forknight_stamps.gif

Hazards

I continued upon another programmer's beginning work on level hazards. These were meant for the level designers to put in their levels to hinder the player and add a little bit of challenge to the game. In Tiled, the designers could place spawners for these hazards and choose what kind of hazard it is, as well as customize the hazard's values such as speed, acceleration and direction.

forknight_hazards.gif

Other

For this game project I worked with a lot of systems and parts of the game other than the ones described above. Since there was a lot to do and we wanted to implement a lot of features I got to do much more. This for example includes the game camera, which I created as an orthogonal 3D-camera for sprites (since we just had done cameras in our Linear Algebra course), as well as the sprite-sheet based animation system featured in the game.