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.

What You Need To Do

(More on game scoring.)

How To Do It

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 to make some assets. You may not use any of the sprites I ship with this base code, or any assets you do not draw yourself. 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.

Asset Restriction

You must draw all the tiles used by your game yourself, and process them with your own code. (You may not even use the sprites in the base code!)

Not following this restriction will result in code score of 0pts for the game.

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