Staraxis
Contributed: Jan. - Nov. 2024
Studio: Shine
Team size: 9 members
Staraxis is a twin-stick shooter created in two months during the second year of Creajeux Nimes.
Use the left stick to move and the right stick to shoot in every direction. Charge your laser and destroy every enemy on the screen.
A green planet has appeared near the Moon. Insect-like spacecrafts attack Earth. Take control of the latest-generation spaceship, the Staraxis! Team up with a friend! Try to complete all difficulty levels.
Can you beat the game without dying or shooting?
Staraxis
Contributed: Jan. - Nov. 2024
Studio: Shine
Team size: 9 members
Staraxis is a twin-stick shooter created in two months during the second year of Creajeux Nimes.
Use the left stick to move and the right stick to shoot in every direction. Charge your laser and destroy every enemy on the screen.
A green planet has appeared near the Moon. Insect-like spacecrafts attack Earth. Take control of the latest-generation spaceship, the Staraxis! Team up with a friend! Try to complete all difficulty levels.
Can you beat the game without dying or shooting?
What I did on this project:
From the very start of the project, we had a lot of ideas for enemies behaviour.
The idea was to have a lot of different behaviour so that the game feel different at every level, but easy behaviour so the player can learn easily how to beat them.
So I did a basic enemy class that contained the global informations that all enemies have (HP, hitbox, hurt box, ...) and I made heritage with each enemy type to override the behaviour of the differents enemies.
And we got these results :
During the development of the game, we quickly noticed that it would be long to create levels if we had to place every enemy on hand when it's the same kind of enemy.
To fix this, I created spawners that will be placed throughout the levels to spawn the same kind of enemy multiple times with one action.
The spawner have spawn position, rotation, number of enemy to spawn, spawn gap time.
This really help us make the spawn of enemy easier while improving drastically the number of enemies we could spawn at once.
We developped a tool using Dear ImGui that helped us create levels sequences, apply spawners to them, test the level from a defined moment, or test only the selected spawners.
This tool helped us create the levels faster, while making the level design way easier.
For the game to run correctly, I created a system that will load every level when they need to load, this help us syncronize the spawners and the background cinematic, it also allowed us to put cinematics between the levels (moon landing during the first level, between levels scoreboard...).
The system tell the game engine which cinematic to play, and tell the spawners which level to load so that the enemies are the right ones. It also detects when the level ends so that it can load the next one.
It also allowed us to play the musics at the right time.
From the very start of the project, we had a lot of ideas for enemies behaviour.
The idea was to have a lot of different behaviour so that the game feel different at every level, but easy behaviour so the player can learn easily how to beat them.
So I did a basic enemy class that contained the global informations that all enemies have (HP, hitbox, hurt box, ...) and I made heritage with each enemy type to override the behaviour of the differents enemies.
And we got these results :
During the development of the game, we quickly noticed that it would be long to create levels if we had to place every enemy on hand when it's the same kind of enemy.
To fix this, I created spawners that will be placed throughout the levels to spawn the same kind of enemy multiple times with one action.
The spawner have spawn position, rotation, number of enemy to spawn, spawn gap time.
This really help us make the spawn of enemy easier while improving drastically the number of enemies we could spawn at once.
We developped a tool using Dear ImGui that helped us create levels sequences, apply spawners to them, test the level from a defined moment, or test only the selected spawners.
This tool helped us create the levels faster, while making the level design way easier.
For the game to run correctly, I created a system that will load every level when they need to load, this help us syncronize the spawners and the background cinematic, it also allowed us to put cinematics between the levels (moon landing during the first level, between levels scoreboard...).
The system tell the game engine which cinematic to play, and tell the spawners which level to load so that the enemies are the right ones. It also detects when the level ends so that it can load the next one.
It also allowed us to play the musics at the right time.