In this project, you will build a horizontal scrolling space game using MIPS assembly. These games (also
known as “shmups”) are a classic genre of games: you control a spaceship flying through space and
avoiding obstacles, as well as optionally shooting, picking things up, and more. You have some level of
freedom and we encourage you to be creative in how the game looks and feels.
We set up the basic requirement, but it is your game! You can see several classic examples of such
games for inspiration below (click links for videos). You do not need to achieve this level of polish
Since we don’t have access to physical computers with MIPS processors, you will develop and test your
implementation in a simulated environment within MARS. We will use a simulated bitmap display and
a simulated keyboard input.
The project has three milestones. In Demo 1, you will demonstrate the basic features (Milestone 1) to
your TA. For Demo 2, you will choose additional features to implement from a list of potential
additions that change how the game looks and behaves. You will then submit the completed assembly
program and a video demo as Prelab and then attend the live demo session during your normal
weekly lab time slot. Note that projects can be individual or in teams of two.
The basic format of the game is simple: your spaceship is flying through space (perhaps towards the
right side). There are multiple obstacles flying towards the ship that you need to avoid by moving the
ship around the screen so as not to crash into the objects. As objects fly out of the screen, new ones
appear. When you crash into obstacles, the ship suffers damage — If you crash into too many obstacles,
the game ends!
You use the keyboard to control the ship. While the w key is pressed, the ship will move up if it is not
at the top edge of the screen. Similarly, the a key makes the ship move left, the d key moves right,
and s moves down (unless the ship is already at that edge of the screen). See “Technical Background”
below to see how to read the status of keys.
Basic Demo – Milestones 1 and 2
There is a Project Preparation lecture video available on Quercus along with some video samples of last
semester’s projects. Note it is OK if your game looks and behaves somewhat differently from our
demo, as long as the features are there!
Additional Features – Milestone 3
The above only describes the basic gameplay. To get full marks, you will need to implement additional
features from a list. There are many possible additions to the gameplay, and here are a few examples:
Different flying patterns and directions for obstacles.
Adding “enemy ships” that move around in a pattern.
Adding the ability to shoot obstacles / enemy ships.
Picking up powerups that “repair” your ship, change obstacles size and speed, and so on.
See the list of additional features at the end.