Grading and Taking it Further
Grading Specifications
To receive a grade of B, you must have the following:
- The player can drive the kart with
W
,A
, andD
. InVehicleMove
, both linear and angular motion works correctly. - Spring camera functions as specified/in the video.
- The kart’s height is correctly interpolated based on the height map.
- The enemy car behavior is implemented in
EnemyMove
, and the enemy drives around the track at a reasonable speed without driving in circles, getting stuck, or driving noticeably outside the bounds of the track. - Checkpoints, lap tracking, and place tracking works correctly. Game start timer works as specified, and game displays whether you win or lose at the end.
- Music for starting the race, general track music, final lap, and win/lose work as specified, including with the required fade out/fade ins.
Keep in mind that for an A, you will also want to check for warnings on your GitHub actions, and make sure you are writing good quality code. We will do a code review and let you know what changes we think you should make, and you will have an opportunity to apply those changes to improve your grade during the regrade period.
Taking it Further!! (Optional)
Here are some ideas on things you could add to this lab. As a reminder, doing this will have no impact on your lab grade. You do not need to implement any of these to get an A. Similarly, you could implement these and not get an A if you have other issues! Adding anything extra is purely “for fun” and for your own personal education and enjoyment.
- In the real Mario Kart, if you drive off the track you fall out of bounds. If you’re out of bounds of the 2D height map array, or the cell has a value of -1, you’re not on the track, make it so the player falls off. You may want to add some grace distance so you don’t immediately fall off. Then after the car falls off, it should respawn back onto the track in a reasonable position. Note: If you implement this, please disable it by default for TA grading purposes.