EECS 494 – Game Design and Implementation – Project 1 – Classic Game Project

Check Canvas for due dates. The table lower down should give you a decent guide as well but, as always, Canvas is authoritative.

Goals / Spec

Working in pairs, you will faithfully recreate core features of one of two console games using Unity and C#. You will be responsible for recreating a specified classic level of the original game in exacting detail as well as for implementing a new custom level of your own design.

A single level of a game would be something like World 1-1 in Super Mario Bros. or a single dungeon in The Legend of Zelda. If you have any question about what would be equivalent to a level in your game, please speak with us as soon as possible.

There are several goals to this assignment:

  1. You will gain competence with Unity and C# without having to simultaneously design a new game from scratch.
  2. You will get a chance to examine and recreate the esoteric design details of a gaming classic. There are dozens of tiny details in these games that made them rise above all of the other games of the era, and many of them are not immediately obvious.
  3. You will gain experience with the agile development methodology, including burndown charts and scrums, that will be used throughout the rest of the class.
  4. You will take part in the iterative process of design that is the cornerstone to good game design.
  5. You will get a chance to see how the game mechanics and technologies that you develop for the recreation of the classic level can be repurposed for your custom level.
  6. Remaking or reusing the original graphics is not a goal for this project. You will be scored on how well your game emulates the feel of the original game but very little score will be given based on how good the graphics look. Note however that this assignment is the only exception to the rule about using copyrighted assets.

Mindset

Read the Gamasutra article, How to Prototype a Game in 7 Days, by the Experimental Gameplay Project team from Carnegie Mellon. Then check out their website to see the kind of fantastically creative games that can be made by a single person in just one week if approached with the right mindset and abilities: Experimental Gameplay Project. Remember that in this project, it's much more important to have something that plays properly than something that is coded "properly". The key is capturing the feel of the game and the game mechanics, not fancy coding.

Possible Games

You must choose one of the following four games to reimplement.

We are expecting different things from each different game.

  1. Metroid (NES)

    Metroid Screenshot

    Metroid has scrolling screens (in two directions), lots of changes to movement and abilities, but very simple enemies.

    Required Controls

    • Arrow keys for movement
    • KeyCode.A for the NES Controller's A button
    • KeyCode.S for the NES Controller's B button
    • KeyCode.Return should be used for the NES Controller's Start button
    • KeyCode.RightShift for the NES Controller's Select button

    Classic Level Requirement

    For Metroid, I want you to complete everything shown inside the red line in this image:

    Classic Metroid Level

    That includes picking up the morph ball (maru mari), the first missile pack, and the long shot. You will also need to implement blocks that can be shot, doors, and all enemies. For a look at the enemies and their placement, you can check out this map: http://nesmaps.com/maps/Metroid/MetroidCompleteMap.html. You do NOT need to implement bombs.

    Assets

  2. The Legend of Zelda (NES)

    The Legend of Zelda Screenshot

    The Legend of Zelda has sliding blocks, items that confer abilities, inventory management, and hidden rooms, but each room is only one screen in size.

    Required Controls

    • Arrow keys for movement
    • KeyCode.A for the NES Controller's A button
    • KeyCode.S for the NES Controller's B button
    • KeyCode.Return should be used for the NES Controller's Start button
    • KeyCode.RightShift for the NES Controller's Select button

    Classic Level Requirement

    Complete the items in the Zelda burndown chart template, including the entire first dungeon.

    Assets

Cheats

You are required to provide us with some special cheats to allow us more flexibility in exploring and grading your games.

It must be possible to access all in-game content without using these cheats, but please give us help in case we need it in order to evaluate your games efficiently.

If you believe that any other cheats might be useful, please use KeyCode.F5, KeyCode.F6, KeyCode.F7, ..., and describe them in your documentation.

Grading

You will be graded based on the following criteria (totaling to 100%). For all of these, just doing exactly what is required of you will tend to get you a B. If you want an A or higher, you need to go beyond the base requirements.

Component Percent Description Due
Process: Agile Methodology 10% This will be the first project for which we will be requiring you to follow the agile development methodology. You will be creating burndown charts that must be updated before each class scrum, and you will be required to take part in at least one scrum.
Research and Analysis 20%

We expect you to do a bit of research in order to discover similar games with related mechanics, to explain the differences in the mechanics of these games to us, and to explain the ramifications of these differences. We want to know how the player experience changes as a result of their design choices, what the advantages of one design decision over another might be, and perhaps how you might have chosen to alter the design of the game you're implementing as a result of your survey. Hopefully this will help you to come up with ideas for your custom level that really fit in with the game you're reimplementing. You are required to investigate at least 3 other games and to write something at least on the order of 4 pages.

Don't pick multiple games from the same developers or the same franchise.

Note that this is not a book review assignment. Simple Wikipedia-esque description should be minimal. Get to the meat of analyzing and contrasting their design decisions.

Also note that your game choices for comparison must be reasonably similar for your comparisons to be useful to you. Two games simply having power-ups isn't enough, but two games having similar movement styles but handling the camera slightly differently would be right on the money. Focus on the subtler differences with respect to the mechanics you're interested in, rather than large but irrelevant feature changes.

Additionally, both team members are expected to contribute to this research and documentation approximately equally (just like the rest of the assignment).

Here's an example research and analysis doc for a reimplementation of Level 1-1 of Super Mario Bros..

January 18
Progress Milestone 5%

You need to have selected your game and your teammate, set up and shared your burndown chart on time, and progressed beyond the initial tutorial.

Deliverables:

  1. Share your burndown chart with us and be sure to keep it updated, following the burndown chart instructions.
  2. Commit an up-to-date copy of your burndown chart in the Documents/ subdirectory of your repo. Go to File -> Download as -> Microsoft Excel (.xlsx).
  3. Commit your research and analysis .pdf in the Documents/ subdirectory of your repo.
  4. Following the course submission instructions, submit a .7z file generated with one of the eecs-494-unity-canvas scripts to Canvas.
January 18
Alpha and Custom Sketch 20%

Is your game an alpha? The classic level must basically be playable as a complete game. (Note that "first playable" comes before alpha.) Experiments on features should be in a separate scene so as to avoid interfering with your alpha's playability. Is your game on-track? Have you completed at least 75% of the required tasks on the burndown chart? Did you implement the required keymapping and cheats? Do you have a sketch of what your custom level will look like?

Deliverables:

  1. Commit an up-to-date copy of your burndown chart in the Documents/ subdirectory of your repo. Go to File -> Download as -> Microsoft Excel (.xlsx).
  2. Commit a drawing, a paragraph, ... about your upcoming custom level to the Documents/ subdirectory of your repo.
  3. Following the course submission instructions, submit a .7z file generated with one of the eecs-494-unity-canvas scripts to Canvas.
January 25
Final Build

Deliverables:

  1. Commit an up-to-date, final copy of your burndown chart in the Documents/ subdirectory of your repo. Go to File -> Download as -> Microsoft Excel (.xlsx).
  2. Commit updated documentation regarding your custom level as needed.
  3. Following the course submission instructions, submit a .7z file generated with one of the eecs-494-unity-canvas scripts to Canvas.
February 1
Classic Game Project Turn-in 10% Did you turn in your project on time? Did you complete all the required tasks on the burndown chart? February 1
Mechanical Elements 10% How faithfully did you recreate the mechanics of the original? Does the game feel complete and internally consistent in the same way as the original? Did you capture the "special sauce" that made the game a classic? Note that adding additional buttons for non-cheats is strictly prohibited. February 1
Technical Elements 10% Does the game work? If a game isn't playable, it's not a game. Forcing the screen resolution or windowed mode, memory leaks, glitches, and other bugs will count against you for this requirement. February 1
Aesthetic Elements 5% Does the game move and feel like the original? Sprites and actual game art will not count at all for this aspect of the grading, however the feel of the game will (see the book Game Feel by Steve Swink). Don't forget about music. No flickering to indicate invulnerability! February 1
Custom Level 15%

Does your custom level take advantage of the various mechanics in the game? Does it find a new way to remix the classic elements of the game with a new game mechanic while at the same time feeling like it belongs with the other game levels? Is it at an appropriate level of difficulty? You should try to make it a beginner-to medium level of difficulty. This should be something like the second or third dungeon in The Legend of Zelda (definitely NOT the last dungeon). Does it have good progression and guide the player well?

No simple movement upgrades for custom mechanics, i.e. double jump, jetpack, ....

No upgrades actually present in later levels / sequels for custom mechanics.

February 1

Tools and Resources

To do this assignment you will need to use the same resources as for the rest of the course. There is no reliable version of Unity available on the CAEN computers, however, Unity is free and is available for both Windows and Mac operating systems. There are also music and audio programs (like Audacity and Garage Band) and paint programs (such as Adobe Photoshop, Macromedia Fireworks, and the Windows Paint program) available on CAEN machines. Additionally, there are lots of game development resources available on PixelProspector. Also, as a student, you can get all of Adobe Creative Cloud for less than $20/month and all of AutoDesk's tools (3DSMax, Maya, Mudbox, etc.) for free. Unity is also available in the Mac Training Lab on the 3rd floor of the Duderstadt Center.

Agile Progress Reports and Burndown Chart

See the course burndown chart instructions.

We may ask you to take part in a scrum on any class day during the project: Scrum – This will always happen on Wednesdays, but I could call some people out on Mondays as well. Be prepared!

As a slight modification on what was shown in the video, participants in a our scrum meetings will answer four basic questions:

  1. What are the name and logline of your game?
  2. What did you do since the last class day?
  3. What will you do before the next class day?
  4. What do you need help with?

Our in-class version of scrum will be very similar. On scrum days, you will bring up your burndown chart, and you will tell us the name and logline of your game, what you've done since the last scrum, and what you plan to do before the next one. Also let us know if something is blocking you, and we'll find someone to assist you with that (which could be an instructor or a peer).

If you miss a scrum where you are chosen, you may be asked to present at the next class in front of everyone, and your participation grade may suffer.

Playtests on Wednesdays

You are required to have your game playable and ready to show on every Playtest day. We may also assign you to play various games made by your peers as homework. When you are not showing, you should try to give meaningful feedback to as many people as possible. You need to have playtests logged on the online system for your game every playtest day (additional playtest logs will also be beneficial).

Late Policy as Stated in the Syllabus

Late assignments will be assessed a penalty of 2.5% for each 6 hours it is late (10% per day) up until the cutoff. We will not grant extensions except for extended sicknesses.

Questions

The class forum is available through the Canvas Piazza and is by far the best place to ask questions.


More Code to Peruse: 494 Quest

~Help Jeremy (the previous instructor) save the world with the power of bubbles in this open-source Zelda-style game~

Inspect the source for optimal education.

Screenshot of 494 Quest