CS134 Computer Game Design and Programming

SJSU - CS 134 – Project 1: Pursuit Game Development Tool
Story
For this project, you will be developing a tool to analyze  playability of a pursuit game involving a single player whose main role is to avoid a crowd of pursuit agents. The pursuit agents are not particularly very intelligent, but they do have the ability to replicate and track down the player with amazing
diligence. Once an agent collides with a player, the player’s energy level is reduced. If the player loses too much energy, the game is over.
Required Functionality
The basic functionality for the project is as follows:
The game is started with the space bar. At the start, the player has a preset number of energy levels (nEnergy, an integer). This level is an adjustable parameter. When the player’s energy level is 0, the game is over and the total game time is displayed.
The player can move forward and backward and can turn left and right with (a) an adjustable forward/backward speed and (b) rotation speed .
The player’s scale is an adjustable parameter.
The player cannot be moved outside of the screen boundaries.
The agents spawn at random locations and orientations on the screen. The number of agents (nAgents) that are spawned at the same time is also an adjustable parameter with a minimum value of one.
Agents are spawned with a lifespan (lifespan). The lifespan is an adjustable parameter.
Agents are spawned at a rate (rate). The rate is an adjustable value with a minimum value ½ second.
(nAgents per .5 seconds).
Once the agents are spawned, they will immediately turn in the direction of the player and “follow” the player.
The turning motion is not instantaneous. The agent should have an animated turn towards the player  using an adjustable speed.
If any part of the agent intersects the player, the agent is removed from the game and the player is reduced by one energy level. For the collision model, the player is a triangle and the agents can be either triangles or images. You must show both cases and a proper intersection occurs when any of the
triangle vertices intersect the visible (non-transparent) part of the image.
All agents which reach an age which is greater than the lifespan are removed from the game (and their corresponding object is deleted from memory)
Technical Requirements
All adjustable parameters must be made available in a ofxGUI panel. The panel must have the ability to be hidden so that screen real estate is maximized.
Instructions to start/restart game must be displayed as text on the game screen.
Use an Emitter class (with custom shapes) to implement agent spawning.
Use a keymap to handle keyboard state (will cover this in class).
The following values must be displayed on the screen:
- Current player energy level and levels available
- Elapsed Time
- Frame rate
Artistic Requirements
Start with triangles for the agents and player
Provide to toggle sprite images for the player and agents. Only one image is required for all agents, but you have the freedom to add more types if you desire.
You must provide a background image.
At least one of the sprite images and background image must be created by the developer. A video will be posted on how to model sprites in photoshop. You must include the source files (ex: photoshop) for these assets in your submission to receive credit.
Testing
Thoroughly test your program and try different combinations of nAgents, nEnergy, rate, lifespan etc. In your demonstration video, show 3 different combinations of settings that will produce 3 levels in order of increasing
difficulty. The levels should be challenging but fun to play, easy at first but more difficult by the last level.
What to Submit
1. You must submit a trailer to the link to a gallery to be provided . The trailer must be a screen capture with sound with no product watermarks . No screener movies with an iphone camera will be accepted.
The trailer should be one that you are proud of and can refer to in your portfolio or project listing on your CV.
2. Source code – submit source code and any game assets (images, sound) in a zip file with your submission. The format of the zip file should be:
ProjectName_StudentName_Date.zip
Example : Project1_KMSmith_02232022.zip
This is not a team project, the source code must be your own original code.
Grading Criteria
A rubric will be provided in the assignment on Canvas. Grading will be passed on the list of requirements in this document. The trailer (demonstration) will also be included in the grading (important)

你可能感兴趣的:(c++)