


- Year: 2011
- Publisher: Square Enix Co., Ltd.
- Platform: PC
- Genre: Bullet Hell Shooter
- Developed in: C++, DirectX 9, HLSL
- Team: Individual (1 person)
Astrospace was a game I developed internally at Square Enix as part of my training immediately upon entering the company.
Tasked with creating a shooting game from scratch, the first step was to set up a framework where I could draw triangles in DirectX. Once triangles were renderable, I constructed primitives like boxes and spheres, and pieced them together to make my spaceship and enemies.
Animation is done by using Quaternions to set a starting rotation and end rotation for each part of the actor and interpolating between those rotations over a certain amount of time, then looping back and forth. Enemy movement patterns use mathematical graph equations to map out a path on the screen which the enemy will traverse along.
Lastly, I made a simple shader in HLSL with random colors skewed towards the blue spectrum, similar to the GLSL shaders I made for my previous graphics engine and physics engine projects.
In the game, destroying enemies lets you gather energy. Energy can be used in two ways:
- Shoot a powerful laser that you can aim up to 45 degrees to the left or right. Great for sweeping out hordes of enemies, but uses up a lot of energy.
- A speed boost dash that makes you invincible for a short amount of time. Great way to escape when you get cornered by bullets / enemies, but there may be other enemies waiting to ambush you at the end of the boost, so some risk is involved.
Every 10 waves of enemies defeated, a boss will appear. The boss can be defeated by destroying all the armor pieces surrounding its core. The game continues endlessly until all lives are gone, at which point a high score is calculated.