CS 134 – Project 2: Dynamic Pursuit
For this project, you will continue where you left off in Project 1 to create a physics-based game whose theme is entitled Dynamic Pursuit, inspired by the classic video game, Asteroids.
The primary difference between Project 2 and Project 1 is that the Agents (and optionally the Player) move using the physics integration method we developed in class. The Agents, guided by forces, collide with the Player. The Player can fire particle at the Agents (or the Player can optionally “gobble up” the Agents, Figure 1 Photo taken from "Asteroids Recharged" depending on the chosen theme of your game. The game also introduces the use of visual effects and sound.
The basic functionality for the project is as follows:
- The game includes of the required functionality from Project 1, including Agent lifespan, spawn rate, speed, Player energy levels and hidable GUI Panel to control these parameters.
- Three (3) levels of complexity but be clearly demonstrated. Your demonstration video should clearly show the levels individually (either through visual captions or audio narration).
- The Player is optionally moved using physics as we implemented in the midterm.
- The Player cannot be moved outside of the screen boundaries.
- The Agents must be animated using the physics solver that we completed in the Labs and midterm (using forces to drive the motion). Your demonstration must clearly show a physics-like behavior in their motion. Motion of the physics-based Agents by modifying position, acceleration of velocity direction is not permitted. (only forces are allowed to move the Agents).
- The Agents must be able to “pursue” the Player by heading towards the Player’s direction with proper* rotation of the Agent to point in the direction of travel. Hint: you can use a “force attractor” to pull the Agents towards the Player.
- The Player must be able to fire a “particle ray” at the Agents. Collisions between the particle ray and the Agents must be detected. Collisions between the Agents and Player must also be detected.
- The Player gains energy level by hitting Agents.
- The developer can optionally choose a non shooting theme for their game as some students did in Project 1. (example, the Player can gobble up the Agents as in the classic “PacMan”. In this case, the “particle ray” can be substituted for a different type of particle effect, depending on the game design. Please contact the instructor if you are unsure.
- An additional particle explosion visual effect is required. The particles are not required to be rendered on the GPU. Colored spheres can be used as in the class particle emitter example.
- The particle emitter system used for the labs can be used as a basis for the two (2) particle effects required if so desired.
- Sounds is required for at least: (1) collisions and (2) explosions and (3) thrust or movement of the Player. We will cover the use of the OF sound Player in class. (it is pretty simple).
User Interface 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.
- The following values must be displayed on the screen:
- Current Player energy level and levels available
- Elapsed Time
- Frame rate
- 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 for these assets in your submission to receive credit.
Thoroughly test your program and try different combinations of nAgents, nEnergy, rate, lifespan etc. In your demonstrate 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
- 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.
- 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
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).