Game1: Sprite-Based Game

For Game1 you will create a new game using a constrained display system called "PPU466." This system is (approximately) based on the Nintendo Entertainment System's PPU. In order to use this system you'll need to design an asset pipeline to produce sprites and tilemaps to fit the constraints of this... unique... display hardware.

Your goal is to start with a fork of the game1 base code and develop a new game that uses your asset pipeline and draws using the PPU466.

If you include any source images you did not draw yourself, (a) [don't plagiarize] list the source of the image in the README.md and (b) [don't steal] be sure that your use is compatible with the license of the image. I take this very seriously. Messing up because you "don't have time to write down where you got the image" is a very good way to fail the class.

What You Need To Do

(More on game scoring.)

How To Do It

Implementation Notes

The challenge of this assignment is designing an asset pipeline that will work for your game and is compatible with the PPU466. Your asset pipeline should help you load tiles and use them in-game; you may decide to use your own binary format to store them, or to leverage the built-in load_store_png.hpp helper functions. You may additionally wish to develop an asset pipeline for loading backgrounds (arrangements of tiles), since the PPU466 requires you to use tile-based backgrounds.

  1. Fork the base1 code as a starting point.
  2. Read the PPU466 header to understand how the PPU works.
  3. Read/run the PlayMode code to see the PPU in action.
  4. You may not alter the PPU or use any other method of drawing. You'll need to figure out how to make the most of this limited output "hardware".
  5. Actually implement a game (the starter code is more like a graphical demo).
  6. To make a game, you'll need some assets. You may not use any of the sprites I ship with this base code. Figure out how to author your own sprites (without typing them into source code directly by hand) and get them into the quirky format required by the PPU.
  7. Fill in the missing sections in README.md to document your project; replace screenshot.png with a screenshot of your game. (The base code is already set up to capture a screenshot whenever you press the PrintScreen key.)
  8. Turn in the game using the form linked above.

The official inspirational song of game1 is "Sick Beat" by Kero Koro Bonito.