Dream Warrior

"Become a holy knight and slash your way through an army of shadowy
creatures as you try to reach freedom"

Dream Warrior is a 2D Platformer / adventure game following a little boy suddenly waking up as a knight in a castle.

Now, I was more comfortable working in Tga2D and C++ but there were many systems that needed to be implemented. This game was tile based and needed better handling of physics and animations compared to the previous game - Cell Surge.

Platform: PC
Engine: Tga2D
Project Duration: 8 weeks, 50 %
Team size: 14
2D Platformer/adventure game
Hollow Knight


  • Player movement

    • I worked on player movement: running, jumping, falling and dashing. I watched GDC-talks and read up on platformer physics which was very educational.

  • VFX (lighting, particle effects)

    • To enhance the mood of the game I added candles to our castle that illuminated the world. The candles could be destroyed like in Castlevania. The center light beam was a sprite sheet animation made by our animators.

    • I added a particle system that was used for improved ambiance and player feedback: candles, floor impact, blood splatters etc.

Candles created with particle effects and point light sources

Ground collision using tile collision system locators


  • Tile collision

    • Since this game was tile based I created a collision system taking advantage of that. It was cheaper compared to our conventional collision system and was used by actors to
      collide with static objects using what I called locators.

  • Controller support, rumble

    • The group felt that controller support was a must have, this being a 2D platformer. I added controller support with custom dead zones and rumble using XInput.

  • Audio manager

    • I created an audio manager that wrapped Tga2D:s audio class and was used to play all sound and music in the game.

  • Video manager

    • I created a video manager that wrapped Tga2D:s video class and was used to play our cutscenes. The cutscenes could be skipped and the last cutscene had a player choice.

Lessons learned:

  • The challenges of scoping a game project

  • The importance of having the ability to playtest early in a project and iterating on your game and systems