CSE 125
Project Specification
A4J2S (Group 4)
Alex Hawker
Ara Jermakyan
Arno Gau
Austin Sun
John Pallag
Justin Chou
Stephen Trinh
Table of Contents
Table of Contents
Project Description
Game Description
Goals (Win/Lose)
Interesting or Unique Aspects
Feature List
Minimum Viable Product
Must Have
Would Be Really Nice
Cool But Only If Ahead Of Schedule
Group Management
Major Roles
Decision Making
Communication
In person
Online
Managing Setbacks
Production of Weekly Reports
Project Development
Development Roles
Tools
QA Testing
Handling Documentation
Project Schedule
High-Level Milestones
Low-Level Milestones
Project Description
Game Description
Our game is a 3rd-person, cooperative, horror-themed survival game in which up to 4-players attempt to make their way through a labyrinth in order to drive away a terrible evil that hunts and pursues them throughout the game.
Goals (Win/Lose)
In order to win, players must survive and traverse the labyrinth to the end.
Players lose when they are caught too many times by the evil.
Interesting or Unique Aspects
- Is a cooperative horror survival game
- Has an intuitive story to reduce barrier of entry and allow players to quickly jump in
- The ability to “sing”
- Illuminates the world around them
- Communicates with other players
- Interacts with elements in the environment unique to each note (key)
- Allows the AI to trick players by mimicking their songs (Note: The trickery is more effective when players are split up)
Feature List
Minimum Viable Product | - Control over their character
- Can move
- Can manipulate camera
- Can sing
- Multiple players able to play together online
- Hostile AI that will chase players (NavMesh)
- Maze layout with lock-and-key progression
|
Must Have | - Character
- Hostile AI
- Level geometry
- Tone generation for singing
- Footsteps
- Hostile AI sfx
- Design/Layout
- Interactable elements
- Movement
- Camera manipulation
- Songs
- Movement (pathfinding)
- Attack
- Physics (collision)
- Networking
- Menu to host or join games
|
Would Be Really Nice | - 3D models
- Effects
- Animation
- Nice particle effects
- Nice lighting
- Sound Portals
- Responds to space
- Controller Support
- Beautiful Menus
|
Cool But Only If Ahead Of Schedule | - Real-time Cloth Physics
- Client Side Prediction and Interpolation for Lag Compensation
- Prerendered Intro Cutscene
- Cinematic game cameras
- Procedurally generated levels
- Shallow pools of water
- SFX
- Graphics (SSR & Refraction)
|
Group Management
Major Roles
Project Management: Alex Hawker
Networking: Justin Chou & Ara Jermakyan
Graphics Engine: Alex Hawker & John Pallag
Gameplay: Stephen Trinh & Arno Gau
Audio: Austin Sun
Art (3D/2D): John Pallag
Decision Making
High-level and/or important decisions will be made through group consensus. Low-level decision making that does not interfere with other modules or roles can be done independently.
Communication
In person
We plan to meet in the CSE lab room B220 MWF from 10am to 2pm.
Online
We will be using:
- Facebook chat for important messages
- Discord for general communications and calls
- Google Drive for sharing documents and art
- Trello for issue-tracking
Managing Setbacks
Each person will be responsible to complete their weekly/daily tasks. Every person in the group is competent in multiple fields and can therefore be temporarily re-assigned to help anyone who falls behind. We are focusing on communication and hope to have an enjoyable, on-time team. In major cases, we will drop features from ‘cool but only if ahead of schedule’ or ‘would be really nice’.
Production of Weekly Reports
Everyone will do a weekly write-up and submit them to one person by Saturday morning. This person will be responsible for making sure everyone has completed their weekly write-ups before collating them into a single blog post.
Project Development
Development Roles
Project Management: Alex Hawker
Networking: Justin Chou & Ara Jermakyan
Graphics Engine: Alex Hawker & John Pallag
Gameplay: Stephen Trinh & Arno Gau
Audio: Austin Sun
Art (3D/2D): John Pallag
Tools
Since this is a WebGL game, the game will be programmed in JS. Most of us plan on using WebStorm for our primary IDE. NodeJS will be required server-side. The code will be tracked via git, keeping track of version history and handling merges from multiple sources. 3D art will be created primarily in Blender and 2D art will be created primarily in Photoshop.
QA Testing
Each member of the team will be responsible for writing unit tests for the code that they developed. The unit tests being written will be for code that we are confident is not going to change. For each major release we will do integration testing to ensure various parts of the project are working as desired. Continuous integration could be an option to speed up and streamline our development process. To test graphics, we will attempt to replicate the results of a raytraced version of the scene.
Handling Documentation
Each member will be responsible for writing documentation for each of the components they create under a standard set format. Documentation will be in the form of high-level documents depicting the overall flow of the systems and inline code comments depicting how each section of code works. High-level documentation will be stored on the google drive for everyone’s viewing.
Project Schedule
High-Level Milestones
- Server-client communication/coupling
- Client can send messages to the Server, and Server can send messages back to the Client.
- Communication standards defined and implemented
- Completion time: Week 3
- Full graphics-engine implemented
- Graphics engine work is complete such that basic graphics features are working and we can render the scene.
- Completion time: Week 2 or 3
- Game-look decided
- A general idea of the look of the environment, characters, and general art is decided on. A general theme and feel exits.
- Completed: large amount of concept art, color scheme, general level layout, character descriptions
- Completion time: Week 2 or 3
- Primary gameplay
- The basic gameplay interactions including victory condition
- Completed: Players can run around and interact with the environment, and hostile AI chases the player around.
- Completion time: week 5
- Design freeze
- Game design is finished.
- Completed: No more added features, and the design is done.
- Completion time: week 5
- Level layout
- The level created in 3D.
- Completed: The final game space created (does not include interaction) and rendered in the game.
- Completion time: week 6
- Detailed game-play
- Fully fleshed out level design with appropriate difficulty curves. Make it actually fun!
- Completed: The full level in the game engine with all the interactions in place.
- Completion time: week 8
- Full models/textures/sound
- Integration and testing of full models
- Addition of sounds
- Completion time: week 9 or 10
Low-Level Milestones
Week | Gameplay (& Physics) | Networking | Graphics | Art | Audio |
1 | | | | | |
2 | - Design gameplay
- Add basic controls
| - Prototype a working client/server connection
| | | |
3 | - Design gameplay
- Implementing physics
- Hostile AI
- Add interactable objects
| - Define and implement communication standards
| - Primary Graphics Engine
- Update GPU Particle System
| | |
4 | - Tune gameplay
- Develop primary gameplay
- More physics
- Level design
| | | | |
5 | - Finalize primary gameplay
- Integrate physics
- Level design
|
| - Crepuscular Rays
- Foliage Rendering
| | |
6 | - Test primary gameplay
- Build final level
| - Client side prediction and interpolation
| | | |
7 | - Develop replayability (w/ Art) (randomization, generation)
| - Client side prediction and interpolation
| - Real Time Irradiance Probes (or other indirect lighting)
| | - Sound design
- Record voices
|
8 | |
| - Optimizations and other features
| | |
9 | |
| | | |
10 | |
| | | |