Project Description

What kind of game are you planning to build?

A four person pseudo wrestling game where the players fight amongst each other to knock themselves off the stage. There will be various power up hats that provide players special abilities in their pursuit to be the last player standing.

What are the goals of the game, how do players win, how do they lose?

The goal of the game is to be the last player standing in the arena. The final player that has not been pushed out of the stage is the winner, and the rest of the players are the losers. It is possible for players to draw if players fall off at the same time.

What are the interesting or unique aspects to your game?

The most interesting part of our game is the hats aspect. Each of the hats will have a unique ability that will help the player win. For example, a hat could provide the player with a grappling hook or a hat that allows you to teleport from one location to another.

What are the list of features of your game?
Feature ListGame IdeasGraphicsNetworking
Must have
  • 5 hats
  • 1 stage
  • 4 characters
  • Sound
  • Bounding box representation of players
  • Different color for each team
  • Camera view to encapsulate all players
  • Lighting
  • Basic Vertex and Fragment Shading
  • Collision Detection
  • Skybox
  • Animated Characters
  • Loader to parse object, animation, textures, etc
  • Multiple clients in same session
  • Implement Google Protobufs (message classes)
  • Represent the game
  • Event handling (fanning or sequential)
  • State communication
  • Config files
  • Parse inputs/events
  • Support TCP
  • Server/client loops
Would Be Really Nice
  • Characters have different costumes
  • Controller support
  • Music
  • Optimized Collision Detection
  • Particle Effects
  • Shadows
  • Physics (i.e. ragdoll)
  • UI to configure game/ activate debug mode
  • Save state (stats, character names, profile)
  • Improve serialization using Boost
Cool But Only If Ahead of Schedule
  • More maps (3 stages)
  • More hats (10 hats)
  • Hat Editor
  • When put on a hat, change costume
  • More detail in the maps (adding extra objects that can crush you)
  • Ability to destroy or change aspect of the stage such as increasing gravity, etc.
  • WebGL integration
  • Frank Ocean in the server
  • UDP support

Group Management

What are the major roles in your group's management?

For the first part of the quarter we are going to break up into two subteams: Graphics and Network, in order to work on the infrastructure of each. As the project progresses we will restructure into a unified team with separate tasks.

Graphics & ModelingNetwork & Game Logic ImplementationArt
Cindy, Tim, TiffanyAtyansh (AJ), Brian, Eduardo, Victor Tiffany
How will decisions be made? By leader, consensus?

Decisions will be made by majority. Everyone must vote and come to a decision, you cannot abstain from voting.

How will you communicate? Email, meetings in the lab, discussion board?

One weekly meeting with the entire team.
We will use FB Messenger for quick anecdotes/scheduling meetings and Slack for project development (particularly for integrations).

How will you know when you're off schedule, and how will you deal with schedule slips?

During the weekly meetings we will check our projected timeline to see how we are doing. The timeline will of course update as the project progresses but should remain relatively stable. If we believe as a team that one aspect of the project is behind, we will direct resources to that. Further, if we as individuals fall behind we should raise that in the team meetings to resolve it as soon as possible.

Who will produce the weekly group status reports?

Everyone will submit their weekly report on the Google Drive. Eduardo will collect the weekly reports and update the website accordingly.

Project Development

What tools will you use?
How will you do testing?
How will you do documentation?

GitHub Wiki Pages

Project Schedule

Week2345678910
MilestoneMVPMVPAlphaAlphaAlphaBetaBetaBetaGM
Graphics

Skybox
Camera
Lighting
Basic Buffers
Model Load
Basic Textures
Basic Shaders
Math Classes
Basic Animation

Animation

Bounding Boxes

Bounding Boxes

Shaders
Effects (Particles)

UI

Testing

Testing

Stabilization

Networking

Echo Server
Multiple Clients

Serialization
Parse Events

Profiling
Logging

Improve Networking Code

Art

Concept art

Basic character modeling and rigging

Stage

Skybox

Hats
Map Objects

Hats
Map Objects
Start Screen

Hats
Map Objects

Finalization

Finalization

Game Engine

Control flow of event handling
Event definition
Represent game (define the state)

Have events affect server state
Set up initial state

basic movement controls
Collision

Refine Gameplay
Combat

Hat Mechanics

Hat Mechanics

Testing

Testing

Stabilization

Input/Config

Basic Config Files
Keyboard/Mouse Integration

Config Template

Music

Basic Audio

More Audio