• 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.

Leave a Reply

Your email address will not be published. Required fields are marked *