Genre : SHMUP
Length : 1 month
Status : Finished Game
Team : 9
Engine : Unity
Plateform : PC

What I've done :

  • Co-Etablished project's vision
  • Co-Designed weapon & movement systems
  • Defined & balanced ship, weapon & enemies metrics
  • Designed & realised 2/3 of the Level Design
  • Designed & implmented end game Boss
  • Designed & impl√©mented balancing & enemies on screen limit systems

The game

Junkraft is a 2.5D Shoot'em Up (SHMUP) in a post-apocalypse sand city where you control a flying junk that you can upgrade throughout all the game with your enemies weapons. Have fun destroying the enemies to add their weapons to your junk and becoming the most powerful. But remember: the bigger you are, the slower you become!

Game Design


We only could tweek time between each shot with our weapon system, thats why I created customizable bursts on ennemies weapons. My feature enabled me to choose how many shots were fired in a burst and the waited time between two bursts. It participated to renew the experience as soon as thoses enemies arrived on screen and curve the progression in the Level-Design. Indeed theses weapons when gathered by the player lost their burst limitation but kept their higher firerate.

Enemy limitation

Our enemy spawn system works with trigger zones placed on the map scrolling at constant speed. Therefore we face a problem when enemies kept spawning even though the player was struggling. There comes my enemy limitation wich enabled me to choose a maximum number of ennemies for each spawn trigger and prevent the waves from spawning any more once that number was reached. This had two effect : Firstly, it solved the struggling situations where enemies kept spawning, and secondly our scoring system became more relevant since it's rewarding each enemy destroyed. Players that managed to kill enemies faster then got a higher score than the ones struggling.

Balancing & drama

We were facing a balancing problem with the core system of the game : slowing down the player was not enough to prevent him from grabbing every item on his path. Eventually, every player was getting huge and too powerfull to be hurt.

Thus I thought about a dynamic protection system : while the player only has one to six modules, he gets protected for 1.5 seconds when he takes damage. As he gathers more, his protection time decreases until almost getting null. Then, a player equiped with twenty or so modules when he took laser damage lost almost instantly 5 to 6 modules

This system helps to create drama between gaining and loosing weapons which gives tension to the game's experience.