Design Document

Project Description

  • What kind of game are you planning to build?
    • We are going to build a team-based, shooter capture the flag. It will have a horror theme with a procedurally generated forest where the game will take place.
  • What are the goals of the game, how do players win, how do they lose?
    • Each team will try to get the flag back to their own base before the other team can steal theirs. Each round will run for a certain time limit, and the team with the most points at the end will win.
  • What are the interesting or unique aspects to your game?
    • We will have a procedural map and multiple character classes with different abilities, so each match is never the same.
  • What are the list of features of your game? Prioritize them into at least three categories: “Must Have”, “Would Be Really Nice”, and “Cool But Only If Ahead Of Schedule”.
    • Must have:
      • 2v2 or 3v3 PVP shooter mechanics: players must be able to attack others and have a health point mechanic.
      • Different looks for character classes: as an MVP, we will have different character skins which behave the same.
      • Procedurally generated spooky forest map: we will use a maze generation algorithm to combine square tiles to create a larger map. These tiles will have different props and landmarks.
      • A timer and point system to determine the winning team.
    • Would be really nice:
      • Multiple (2 or 3) classes, such as a sniper, ninja, or brawler.
      • Fog/ambient occlusion effects.
      • A minimap which would show your teammate’s locations.
    • Cool but only if ahead of schedule:
      • NPC AI, such as monsters which could attack both teams.
      • Additional visual effects, such as motion blur.

Group Management

  • What are the major roles in your group’s management?
    • Gameplay development, Networking/Engine development, and Graphics/Art
  • How will decision be made? By leader, consensus?
    • consensus
  • How will you communicate and collaborate online?
    • We will primarily host communicate and hold meetings over Discord.
    • Code will be shared in a GitHub repository, assets and documentation will be in a shared Google Drive folder.
  • How will you know when you’re off schedule, and how will you deal with schedule slips?
    • We will be flexible with group roles, so if one subteam is getting behind we will pull in help from another group.
    • Throughout the quarter, we will be assessing progress compared to our calendar below, and make updates to the calendar and scope of the project as we move forward. If we run short on time, we’ll prioritize our “Must have” items before the “would be nice” ones.
  • Who will produce the weekly group status report?
    • Everyone will contribute to their own subteam’s section, but we will collaborate on the full group’s progress during meetings.

Project Development

  • What are the developmental roles and who will handle them?
    • Graphics/Art: Thomas Lauer, Sheila Pham
    • Networking: Aneesh Jalan, Shane Li
    • Gameplay: James Cor, Sam Huang
    • We are all flexible and willing to work on other sections, so this may slightly shift as the quarter progresses.
  • What tools will you use?
    • General Code: Visual Studio, C++
    • Graphics: OpenGL and Open Asset Importer, lodepng
    • Networking: Boost’s Asio
    • Physics/Hit detection: Bullet
    • Art: Blender, Clip Studio, Gimp
  • How will you do testing?
    • Unit tests for networking and basic gameplay components.
    • Manually playing during meetings when we merge changes from different groups for testing graphics and general gameplay.
  • How will you do documentation (both internal group documentation as well as external player documentation)?
    • We will document the interfaces for each component in Drive.
    • Each subteam will have more detailed documentation in Drive and inline comments.
    • For the player, we will follow standard FPS conventions such as the placement of the health and ammo meters, game timer, and other UI elements to make it as intuitive as possible.

Project Schedule

WeekGraphicsNetworkGameplay/ClientArt/Level DesignMajor Milestones
2 Modular framework setup, mesh loading, basic shadersResearch methods- WinSock or Boost
Game State
Research/get comfortable with BulletRough sketches of character models,
environment/foliage
3Textures and material systemMessage passing for simple statesPlayer movement/camera controlWeapons designVery basic barebones prototype
4Deferred shadingSet up states for bullets, flags, and other non-player entitiesFlag capturing, point systemInitial level design (basic map)Finish server updating client states
5Animation loading and skinningTest for multiple playersShooting, health, dyingFinalized models for charactersFeature freeze
6Shadow mappingProcedurally generated mapFinalized models for environment
7SSAODifferent charactersDevelopment freeze
8Integration/TestingIntegration/TestingIntegration/TestingIntegration/TestingIntegration/Testing
9Integration/TestingIntegration/TestingIntegration/TestingIntegration/TestingIntegration/Testing
10Integration/TestingIntegration/TestingIntegration/TestingIntegration/TestingIntegration/Testing