fp-arduino

Arduino Reach Grading Rubric and Guide

Verifying Your Submission

You can verify your submission to the autograder before the deadline. We will grade your final submission!

  1. Submit your work to the autograder here - available starting on or about April 6. You can submit your work in one of two ways:
    • Submit a file ending with .ino. For example, you could submit the file reach.ino or invaders.ino The name does not matter as long as it ends with .ino This is how most teams will submit their work, and if you only have one file to submit, this is how your team should submit the reach.
    • Submit a zip file containing all of your work. This option exists to allow teams to submit their work when it contains more than one file.
    • Any file names other than those ending in .ino or .zip and your file will be automatically discarded by the autograder.
    • The autograder will warn you when submitting one or the other. You only need to submit a .ino file or a .zip file, so when the autograder warns Missing files detected you may select Submit Anyway.
    • Only one person from the team needs to submit. We grade the last file submitted.
  2. View the “My Submissions” tab on the autograder.
  3. Click the small icon next to the file name - reach.ino or whatever you named your file - to download the submitted file. Be sure to select the last submission, if it is not the submission highlighted. Select file from autograder to download.
  4. Click the downloaded file to open the Arduino IDE. When the Arduino IDE popup prompts you to create a folder for the select OK.
    • When submitting a zip file, unzip the downloaded file to verify the contents.
  5. Using the Arduino IDE and your kit, upload the file to the Arduino board and test that it is the correct file you wish to be graded.

Reach Grading Rubric

Reach implementations fall into two categories for the Arduino project:

A new game or application of your design.

Recreate a classic arcade game, or design a game or other application entirely of your making.

Note: some games or ideas are far too simple to earn full points for the Reach. Pong is an example - recreating Pong would earn 20 of the 50 points for the reach. To earn full points, it would need to be accompanied by another game of similar complexity with a simple menu system to choose a game to play. It is expected that your Reach will be equivalent or greater in complexity (challenge to implement and/or code statements to implement) than the Core Invaders game. If you have an idea, you may ask the teaching staff for evaluation of the concept to have the potential to earn full points.

The staff will grade your reach by interacting with your creation at the Showcase. Multiple staff will grade each project to provide a comprehensive evaluation.

Full Score - a working game or program from the example list above. A working game or program is one that:

Points are deducted when:

Be advised: Tetris is a very challenging game to implement using the Arduino kit and should only be attempted if your team seeks to push the limit. A few teams have successfully implemented this game while others have tried then abondonded the idea.

Features added to the Core Invaders Game

Your team may decide to extend the functionality and features of the Core Invaders game. Below are a list of examples and the points they would earn. This list is not exhaustive - you may devise other new features which will be added to the list for future semesters. Note that your team is not limited to the number of features added but the Reach is capped at 50 points.

When you demonstrate your game at the Showcase, you should have a prepared list of features to share with the staff. An example from the list below that would earn full points for the Reach are: adding a Boss battle, powerups, and a start menu (20 + 20 + 10 points). A feature is counted when staff are able to use/see the feature when playing your game at the showcase. The same deductions listed above for bugs apply to feature additions for the Core Invaders game.

Feature Points Examples

Boss battle level(s) for the game

20 points per Boss level

A boss battle is a unique Invader that represents a greater challenge to defeat.

To earn the 20 points, a Boss battle or level should be at least as challenging to pass as Level 5 - a randomly generated strengths level of the Core Invaders game.

Multiplayer

20

Add a second player to the game - including potentiometer and button.

This is just for the second Player appearing on the display in some way and being able to interact with the game.

Powerups

20

Powerups - note this is plural not singular - are items that change gameplay.

Examples include items that increase life count, activate alternate firing or Cannonball modes/types, weaken Invaders on the display, slow or speed time, etc.

Create an AI to play the game

20

The game plays itself and can continue to play without input from a person.

Start menu system with options

10

When the Arduino is reset or powered on, the game does not automatically begin at level 1. A menu appears and the person must make a selection to beging the game, and that selection changes some element of the gameplay.

Note: this feature is often more challenging to implement than teams expect. It does not require a significant number of statements but is conceptually challenging to understand how to implement.

Welcome screen with start

5

Similar to the start menu, except the choice does not affect the game. Like the start menu, this is likely to be more challenging to implement than most teams expect.

Animations or Art

10

Usually displayed before the game starts, between levels, or after a Boss battle.

10 points for each of: a detailed animation lasting 10 seconds or more, a sorter repeated animation such as when the player dies, or repeated "pictures" at multiple points in the game.

Note: be very careful with animations and art. These can take significant amounts of memory to implement, and you may run out of memory very quickly. If you plan for animations, you should ask for one of the limited Arduino Mega boards, or purchase one early- they are inexpensive.

Invaders move side to side

20

In addition to Invaders moving down the screen, they also move side to side. Note that the Invaders should not be off the screen.

Custom features for each level

20

Levels have different rules or features. Similar to powerups, but level dictates gameplay features instead of items that the Player collects or collides with.

Note: can be comined with powerups, but the implementation must be additional and not simply overlapping. That is, to earn the 40 combined points it cannot be simply on level n powerup a is active.

Add a piezo speaker and basic sounds

5

This is a basic feature that is very approachable and adds a lot of fun to your game.

All the code to make sounds is avaialbe at arduino.cc, and adding a sound when the Cannonball hits an Invader or the Player dies takes very few statements.

Propose your own minor feature

10 to 20

Propose your own minor or major feature, equivalent to the other features listed at similar point values