Grading and Taking it Further
Grading Specifications
To receive a grade of B, you must have the following:
- README.md file is updated with name, email, section, and platform
- Basic game initialization and shutdown functions work
- Delta time updates properly on each frame
- The
W
andS
keys move the paddle and you can’t move the paddle off screen - The ball bounces off the wall and paddle as expected
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.
Since there is an odd number of spec items (5), you have to implement at least 3 to get a C.
Taking it Further!! (Optional)
For the labs in this course, we encourage students who want to push themselves to try adding additional features to their games. However, if you do add features, make sure you don’t break the expected game functionality. The TAs need your code to work properly to be able to grade it.
To be clear, 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 each lab, we’ll describe a handful of ideas of things to add, but you’re encouraged to be creative!
- Change the colors to a scheme you like. Or maybe make them change over time?
- Make the game harder over time by increasing the speed of the ball the longer the player stays alive
- Keep track of the number of times the paddle hits the ball (as a “score”). Then, display this score on screen using rectangles to draw the different numbers. (SDL does have a font rendering library which we’ll use later in the semester, but we’d suggest for now not trying to use it.)
- Make your game work for any screen resolution, not just 1024x768. You will have to program your positions such that they are based on the screen width/height. You could even also add code that allows the player to change the size of the window while the game is running (you can specify the “resizable” flag when creating the window).