Everyone:

For the first project, you are to work in groups of 2 - 4 students to create a game or related artifact for a resource constrained environment. What this means is that the software you develop should run in an environment with low resources (CPU, memory, disk, etc.) such as an Arduino, a Raspberry Pi, or an emulator such as DOSBox.

Requirements

Your group's project artifact must meet the following requirements:

  1. The artifact is grounded in some element of video game history.

  2. The artifact is interactive and is capable of being manipulated by a user via some sort of input device.

  3. The artifact must run in a resource constrained environment.

  4. The artifact's source code is stored on an online repository such as GitHub, GitLab, or Bitbucket.

  5. The project includes sufficient documentation to build, deploy, and use the artifact.

  6. The project README.md must explain the project and its context in terms of video game history (between 250 - 500 words).

Keeping it Old School

Because the purpose of the project is to provide you an opportunity to experience what it was like to program on old (ie. resource constrained) computing system, you should avoid using modern programming languages and libraries such as Python and PyGame. Instead, you should focus on C, C++, or even assembly and render your graphics directly.

That said, the artifact, platform, and tools is mostly up to you; use this opportunity to explore something interesting to you.

If in doubt, ask the instructor if you can utilize a particular tool or library.

Ideas

Here are some possible project ideas:

  1. Re-create a classic game such as SpaceWar, Pong, Pac-Man, Breakout, Frogger, etc.

  2. Write a text-based MUD such as Zork, Adventure, NetHack, or Rogue.

  3. Use an old language like QBasic to make a game like Nibbles or Gorillas.

  4. Build a machine emulator for the Z80, 8086, M68K or any other old architecture.

  5. Construct a game out of logic gates (perhaps with a FPGA board).

  6. Develop a game an Arduino kit such as the Arduboy.

  7. Mod an old game like DOOM.

  8. Create programming tools like a tile editor, sprite editor, or level editor.

  9. Design a collection of game artwork such as sprites and tiles.

  10. Write a program that generates/plays music (perhaps MIDI).

  11. Create a scientific visualization.

  12. Develop a BBS.

Timeline

Here is the project timeline:

Date Milestone Description
February 3 Proposal Description of proposed project.
February 27 Progress Status report of current progress.
February 27, March 1 Sprints In-class sprints.
March 6, March 8 Presentations In-class presentations and demonstrations.

More details about each of these milestones is described below.

Proposal

Your group must submit a proposal document by noon on Saturday, February 3, which provides the following information:

  1. Lists the group members and each of their proposed roles.

  2. Describe the proposed project and how it meets the project requirements.

  3. Enumerates any resources required.

Hardware Resources

If you need any hardware resources such as an Arduboy or a Raspberry Pi, please let the instructor know and he will see if he can procure your requests. Please do this sooner rather than later.

Progress

Your group must submit a proposal slide deck (5-8 slides) by midnight on Tuesday, February 27, which provides the following information:

  1. Addresses the questions and expections in feedback email provided regarding the project proposal.

  2. Summarizes the work done this far, in particular the design and implementation details of your artifact.

  3. Enumerates the remaining tasks, with specifics on what you plan on accomplishing during the upcoming sprint week and what you realistically plan on accomplishing before the deadline.

  4. Itemize contributions to the project thus far and what how each member will aid in completing the tasks above.

If possible, provide video or image evidence of your project and your progress.

Presentation

Your group must submit a project slide deck (5-8 slides) by midnight on Monday, March 5, which provides the following information:

  1. Overview of your project and how you fits into the required theme (and requirements).

  2. Description of the design and implementation of the artifact (and how each person contributed), focusing on the key concepts and ideas.

  3. Summary of what was accomplished and what was learned.

  4. A demonstration of the artifact.

Each group should plan for about 6 minutes for the presentation and 2 minutes for questions. Towards the end of each presentation day, there will be about 15 minutes for students to go around the room and test out the projects presented that day.

Rubric

The project will be graded with the following rubric:

Metric Points Description
Proposal 10 Does the proposed project meet the requirements?
Progress 10 How much work did the group do before the sprint?
Presentation 10 How well did the group present and demonstrate their artifact?
Deliverable - Requirements 10 How well did the project meet the requirements?
Deliverable - Technical Challenge 10 How difficult was the project?
Deliverable - Execution 10 How complete was the project?.
Deliverable - User Experience 10 How enjoyable was project for end users?

Peer Evaluation

The first two metrics will be graded by the instructor, but the final five metrics will be evaluated based on feedback from your fellow classmates.

Deliverables

Once you have organized your group, please fill out the following form:

You can update your submission whenever you have your proposal, code repository, and presentation slides.