Home Specifications Weekly Status Reports Media

Hi! We're team ThreeForged

CSE 125 Spring 2020


Project Description


Overview

The game that we plan to build is going to be a multiplayer third-person tower defense game with resources and crafting elements. Player are split into teams with the goal destroying the enemy base while defending their own. Players can craft turrets and game units that help them intrude into the enemy base. The team that destroys the enemy's base first wins. Our game will combine aspects of sandbox survival, tower defense, and moba styles of gameplay into one competitive game.

Features

Must have

  • Main menu while in game that allows player to change settings or quit
  • Map
  • player controls (mouse and keyboard)
  • towers
  • units that fight for you
  • team bases
  • currency in absence of resources
  • Be able to run on Windows

Should have

  • Resource collection & crafting system
  • game lobby to be able to select teams and start match

Could have

  • player combat, health, respawn
  • procedural map generation
  • map skins
  • player classes
  • cross-platform

Group Management


Members

  • Kevin Huang
  • Charles Li
  • Jiajian Fu
  • Hao Luo
  • Aditi Guar
  • Esther Zhao

Roles in group management

We decided not to have a single project manager and instead we will all keep eachother accountable. We believe that this will be manageable given the small team size of 6 members. Instead, we have sub-team "leaders" such that they specialize in a certain area of development.

Communication & Collaboration

Our decisions will be decided through democracy (majority consensus). We will communicate mainly through Discord, where we have different channels set up for the four sectors of game development. We decided to use Discord because it has the organization of Slack and the voice and video call capabilities like Zoom all in one central place. For collaboration, we will use Github for vesion control, and VSCode for pair programming sessions through the live share feature.

Dealing with schedule-slips

To stay on schedule, we plan to follow our proposed schedule closely. If we are not meeting deadlines, we will set up a team meeting to discuss the next steps and determine what is blocking us from meeting specific deadlines. Then, we can revise the schedule to better reflect the current realistic state of progress. If anyone has blockers, they will notify the entire team to see if others can help out.

Weekly group status reports

We plan to have a round-robin system where we rotate the person or pair responsible for the deliverables that week.

Project Development


Sub-teams

Design/Art/3-D Modeling Client Graphics Network Server-side Game Logic
Esther Zhao, Kevin Huang Kevin Huang, Charles Li, Esther Zhao Hao Luo, Jiajian Fu, Aditi Guar, Charles Li Aditi Guar, Jiajian Fu, Charles Li, Hao Luo

Given the time constraint of 10 weeks, our group thought that it would be best to specialize without compartmentalization. This means that we will divide roles based on initial expertise in one of the 4 main areas of development, but we will all work cross functionally and help each other out. The roles set are not fixed, and everyone can jump in to help out the other areas so that everyone has a chance to learn something new! (i.e. working on graphics with no prior graphics experience).

Tools

We will be using VSCode live share, Visual Studio to develop in C++. We plan to use either Trello or Jira for task tracking. For concept art and design, we will use ProCreate and Adobe Creative Cloud. For generating 3-D models and assets, we plan to use Blender, which is a free 3-D modeling software. For graphics, we plan to use OpenGL or the Forge.

Testing

For testing, we plan to do gameplay testing through running the game.

Documentation

For internal documentation, we will thoroughly comment code such that someone who did not write the code could easily understand it. If inline comments alone do not convey the necessary information to understand the code and set-up, then we will use our designated Google Drive or Hackmd.io workspace to write out longer explanations. For external player documentation, we will write out a tutorial guide on our website, and implement a help menu in game.

Schedule


Design/Art Graphics/Client Network Game Logic/Server Key Milestones
Week 2 General concept art & style research Pick graphics backbone. Setup client, create menu Establish simple connection between clients and server Refine and flesh out initial ideas Decide on game genre and basic ideas
Week 3 Concept art, Start modeling basic MVP units Input handling and integrating with server Packet design, integrate with graphics client Implement player controls and movement server/client communication
Week 4 Preliminary UI Design, more basic modeling Graphics pipeline and asset integration, optimization Optimize protocol Set up gameplay, towers, units, state management MVP mostly fleshed out
Week 5 Final UI draft, Basic environment modeling, Finish up unit modeling Animation, particles, optimization Continue optimizing protocol Diversify the variety of units and towers, embellish resources, crafting system MVP should be playable
Week 6 Environment modeling animation/UI Add player combat
Week 7 Environment modelling polish, music, sound effects Cool shaders, UI Map generation, testing Functional with UI
Week 8 Music/sound Cool shaders testing
Week 9 Spec freeze/alpha testing Spec freeze/alpha testing Spec freeze/alpha testing Spec freeze/alpha testing Have game be deliverable, test and fix bugs
Week 10 beta testing beta testing beta testing beta testing Create external documentation