Soul of the Forest


  • 2D Platformer

  • 8 Weeks part-time (4h/day)

  • Written in C++ using TGA2D

  • Group of 11 people

Main contributions

  • Parallax system
  • Collision handling
  • Particles / VFX / Animations
  • Pipeline / Atlas Generator

Parallax system

The parallax system was implemented using a perspective projection matrix with actual depth between the layers. This led to natural scrolling speeds and a one-to-one correspondence with how the level looked in the level editor, Tiled

A challenge that arose however was that to get all objects to be projected on to the screen correctly, a position offset had to be applied to all objects depending on the parallax layer. This was achieved with simple linear transformation and the result turned out really nice and easy to use.

Collision handling


The collision system was based on a simple grid, where the dynamic objects checked for collision against the static objects in the same current cell as themselves.

It was not optimal, but with so few dynamic objects, it worked fine and was not a performance bottleneck.

Particles and sprite sheet animations

I implemented the particle system and the animation system, which were basically the same as the ones I wrote for Having Great Adventure

The particle system was also used to create some nice weather effects in this game, see images on the right.

Atlas Generator

For this project I also wrote some scripts that helped our artists creating sprite atlases. You can read about that here.