San Francisco State University
CSC 413: Software Development
Dawson Zhou ([email protected])
Term Project
Overview
The goal of the term project is to apply design principles we’ve learned throughout the
semester to develop a simple video game with a focus on extensibility.
Submission
The term project is due on Friday, May 21, 2021 at 11:59 pm PT. There will be no late
submissions accepted for the term project.
Part 1 of the project will be graded based on whatever is submitted by Tuesday, May 4, 2021 at
11:59 pm PT. See Part 1 Requirements below for more details.
Grading
100 pts total:
● 10 pts: Part 1 submission
● 5 pts: Game control
○ 3 pts: Must transition the game to show the end menu screen if:
■ Escape key is pressed while on the run game screen
■ Player tank is destroyed
■ All AI tanks are destroyed
○ 2 pts: Restarting from the end menu screen starts a fresh new game
● 42 pts: Model elements for game entities
○ 2 pts: Supports a player tank that moves based on keyboard input
○ 8 pts: Implements at least 2 different types of AI tanks with support for multiple
tanks in the game at once with separate tank movement logic
■ At least one of the AI tank types must determine its behavior on the
GameWorld, e.g. where the player is, where other tanks are, where shells
on the screen are, etc.
○ 4 pts: Bounds checking on tanks to preve
nt them from moving offscreen
○ 10 pts: Allows the player tank and the AI tanks to fire shells
○ 5 pts: Walls added to the game
○ 5 pts: Tanks and walls track their “health”, and are destroyed after taking too
many hits from shells
○ 8 pts: Entity classes share code between player tank, AI tanks, shells, and walls
● 18 pts: Collision detection and handling
○ 6 pts: Collisions are correctly detected
○ 12 pts: Collisions are correctly handled
● 15 pts: Additional features (see Extra Features below)
● 10 pts: Miscellaneous (model and view code kept separate, various style issues, etc.)
● (extra credit) 10 pts: Extra credit for additional features beyond the initial 15 points (see
Extra Features below)
Assignment Setup
Click on the GitHub Classroom link provided on iLearn to automatically create your GitHub
repository for the assignment, which will include the starter code for the project.
See the “Git, GitHub, and IntelliJ Setup Guide” document for instructions on setting up the rest
of the project on your local machine. In addition to those instructions, you’ll also need to
indicate to IntelliJ that there are images in the “resources” folder. You can do so by right-clicking
the “resources” directory in the project navigation panel on the left and selecting “Mark
Directory as” > “Resources Root”, as shown below.