• First person platform game with a bow and arrow

  • 10 weeks, half time

  • Created using our own engine, Eggshell

  • Written in C++

The team​!

7 Programmers  -   Alexander Aschan   |   Axel Hornay  |  Christopher Rau  |  Frej Sjöström  | 
Mattias Ringström  |  Morris Gustafsson  |  Filip Carkic

4 Graphical Artists  -   Amanda Westerdahl  |  Catarina Batista  |  Stina Arvidsson  |  Tom Sandvik

3 Level Designers  -   Hanna Mårtensson  |  Peter Nilsson  |  Simon Carlsson

2 Technical Artists  -   Kim Wilhelmsson  |  Viktor Pramberg



  • Reimplemented premade draw commands for static meshes and baked lights used in our previous project.

  • Implemented animations in our showroom, allowing the user to play animations while adjusting their speed, adding additive animations and display joint position and rotation. This eased the workflow of our graphical artists and technical artists.

  • Separated meshes and animations in the code base, turning animations into their own contained system with support for blending and additive animations.

  • Implemented a script to display tutorial texts.

  • Automatic level load in a debug menu to make it easier to add new levels.

  • Added quality of life changes to the particle editor such as hot reloaded particle textures, the ability to use multiple textures and making the editor remember its current state when switching between the game and the editor.

  • Added keyframe support for various variables such as size, color and spawnrate to increase the technical artists control over the particle emitters.


  • Implemented a networked feature where an Arrow and particle effect is spawned at the last ten places someone has died.

  • I implemented the time warp bubble, used to modify local time for objects caught within it such as enemies, platforms and particle effects.

  • I added a hit marker for when your arrows hit an enemy.

  • Added lights to various things such as the time-warp arrow, enemies and the player bow.

  • Added support for destructibles, written with one other programmer and technical artist.

  • Added scripting functionality for death zones used to kill the player, checkpoints for the player to respawn and when to transition to the next level.


  • I added support for GPU particles to our engine. These use two structured consume/append buffers to bounce particles back and forth in a compute shader while updating them.

    Being able to consume particles in no particular order in turn make them very thread friendly.

  • Implemented screen space collisions for the GPU particles, allowing us to have many particles in the world with proper collision responses for a low cost.

  • Added support for volumetric light in our engine, based on this article.