Grading and Taking it Further
Grading Specifications
To receive a grade of B, you must have the following:
- Basic Game class functions are setup and integrated with SDL callback functions. You can also quit the game both by pressing ESC and by closing the window
- Your README.md file is updated with name, email, section, and platform. You also have the required screenshots as per the Practicing Debugging section.
- The required
Transform
andActor
functions are implemented, and you haveCreateActor
as well as the actorstd::vector
in Game. - The ball, walls, and paddle all draw in the window
- Delta time is calculated every frame, and prevented from going higher than 0.033
- The
A
andD
keys move the paddle and you can’t move the paddle off screen - The ball moves and bounces off the wall and paddle as expected
- If the ball flies off the screen, the game ends
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.
For a C, you need to get at least half (4/8) of the specs.
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!
- 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 https://wiki.libsdl.org/SDL3/SDL_RenderDebugTextFormat
- When the ball goes off screen for the first time, rather than dying make the paddle smaller and reset. Then maybe you lose the second time it goes off screen?