Project Description

The game has at least two teams. Each team is in a gondola with balloons attached; these balloons lift players into the air. Each team can slow down other teams by shooting down balloons that support the gondolas. Players replenish their balloon supply by collecting balloons that appear in the sky.

A team wins when it reaches the destination before any other team does. If no team reaches the destination before time runs out, then the team with the highest elevation wins.

Unique aspects of the game:

  • Gameplay based around balloons, i.e. shooting down balloons to slow down teams and collecting balloons.
  • Players on the team can only do one thing at a time (e.g. steer the gondola, shoot balloons of opposing teams, collecting balloons from the air) so a team must work together to win.

Must Have Would be Really Nice Only If Ahead of Schedule
Players move their characters around the gondola Gondola upgrades, repair Armored gondola
Interactive items in the gondola (e.g. steering wheel, gun) Spatial audio Different gondola types, e.g. the house from Up, steampunk airships, a rubber duck
Players "steer" the gondola by flapping giant fans on one side Boundary to incentivize interaction between teams Destruction effects when the gondola is shot
Players shoot down enemy teams' balloons Animation
Restore popped balloons by collecting balloons from the space around the gondola
A team wins after reaching some destination, or having the highest elevation when time runs out

Group Management

Decisions will be made by consensus; if we can't reach consensus in a reasonable amount of time, then the project lead (Leon) makes the decision. We set up weekly meetings to stay on track. Outside of our weekly meetings, we use Slack to communicate. The project lead produces the weekly group status reports.

We know when we're off schedule when it seems likely that particular project milestones won't be met at the expected time. Each development team includes more than one person, so if one person can't meet the deadline, then another person in the team can help. If necessary, we can have team members in other development roles help with the milestone.

Project Development

We plan to use Git for version control, Maya for 3D modeling, C++, and OpenGL. For internal documentation, we plan to have broad overviews of our modules and provide build instructions so that any developer can understand the code structure. We agreed to follow Google's C++ style guide during development. For external player documentation, we plan to write a player's manual for our game.

The development roles:
  • Graphics: Brian, Michael
  • Networking: Leon, Vincent
  • Artists/Audio: Kyle, Nick
  • Physics: Kyle, Leon, Nick

Project Schedule

High-level Schedule

Server-client coupling: Week 5.

  • Transmit world data from the server to the client; transmit events both ways.

Graphics: Week 8.

  • Includes rendering the gondola, balloons, character animation, cel shading for a cartoonish aesthetic, lighting, and camera manipulation (both first-person and third-person), and collision detection.
  • Advanced graphics improvements if time permits, such as SSAO, shadows, and fluid animation for the balloons, gondola, and characters.

Art/audio: Week 5.

  • Modeling assets such as the gondola, balloons, turrets, fan, and powerups.
  • Sound effects, e.g. balloons popping and turrets firing.

Basic gameplay: Week 5.

  • Moving characters, shooting down balloons, collecting balloons, and winning the game.

Design freeze: Week 9.

Detailed gameplay and physics: Week 8.

  • Includes gameplay improvements such as forcing teams to fight each other and introducing a mechanic for teams to catch up with winning teams.

Low-level Schedule

Week Graphics Networking Artists/Audio Physics Gameplay
1 Feature ideas
2 Cube display, movement, setup project directory structure Basic server and client Balloon, gondola Basic movement, gravity
3 Render gondola and balloon structure Design protocol for passing messages Character design, user interface Collision detection, projectiles Basic player movement, third person camera
4 Toon shading, character models, moving character Messages for object creation/deletion Weapons, fans, powerups Collision detection Riding the gondola, transitioning to first person camera
5 Lighting Messages for moving objects Sounds Wind Gondola movement, destroying balloons, construction, upgrades
6 Camera manipulation Game UI, win detection
7 Collision detection, particle effects Game menu
8 Animation
9 Testing Testing Testing Testing Testing
10 Testing Testing Testing Testing Testing