The Famous Snake Tron For the Win - cs428TAs/w2023 GitHub Wiki

It's a pretty simple idea: we code snake, but make it a two-player version that functions like Tron, where if one player runs into another player, they die. The player that collects the most apples before dying wins. The tricky part will be getting two devices to talk to each other.

Members:

  • Kevin Hilton: Project Manager
  • Alexander Zaugg: Chief Architect
  • Bryson Fenn: Assistant to the Chief Architect
  • Ammon Quackenbush: Back-End Programmer
  • Jacob Ballard: Back-End Programmer
  • Jacob Noorda: Front-End Programmer
  • Tanner Pearson: Front-End Programmer

Minimum Requirements for The Famous Snake Tron FTW (1st demo):

  • Client runs in browser
  • Node js server on the cloud - Azure
  • Cloud-based two-player connectivity.
  • Stationary blank map
  • 1 fruit at a time, randomly generated
  • Snakes do not yet grow
  • Basic graphics (circle for fruit, block for snake, etc.)

Requirements for The Famous Snake Tron FTW (2nd demo):

  • Support for multiple players at once
  • Snakes grow as they eat apples
  • Players "die" when they hit the border or another snake.

Requirements for The Famous Snake Tron FTW (3nd demo):

  • Multiple apples and/or "powerups" available
  • Team-based or free-for-all modes
  • Enhanced graphics

Cool Stuff To Add/Stretch Goals:

  • 3-4 players
  • Movable map, barriers
  • Multiple fruits and/or power-ups
  • Lighting bolt makes you go faster
  • Different Backgrounds
  • AI opponent (If we really need extra stuff)
  • Additional 2-player game modes (solving puzzles. Call it fire snake and water.. snake)
  • Enhanced Graphics for snakes, fruit, and barriers

ORG CHART

Architecture

Deliverable 5: Architecture & Design document

Purpose of Product

  • To deliver a mildly entertaining multiplayer game which takes inspiration from the classic games Snake and Tron

High-Level Architecture Diagram:

image

Choices and Trade-offs

  • We chose to use Javascript for streamlined Server/Client communication. As JS is object-based and not object-oriented, this comes at the cost of object-oriented tools available in other languages like true inheritance

Putting it Together

  • This Architecture will keep core front and backend processes separate and distinct, allowing us to create our first modular demo and build the game from there.
  • Javascript libraries will allow us to easily handle communication and focus on improved gameplay and graphics.

PERT Chart

https://media.discordapp.net/attachments/1071145980134694932/1074923980743516170/image.png

GANT Chart

https://media.discordapp.net/attachments/1071145980134694932/1074855616360747028/image.png?width=1410&height=802

Test Plan

https://docs.google.com/document/d/1_FgIa0YKDdfWg3q8QDsmFrtS5r-4xSwjgWnsw9HfxvU/edit?usp=sharing

Status Reports

Status Report Week 1

image

Status Report Week 2

image

Status Report Week 3

image

Status Report Week 4

image

Status Report Week 5

image

Status Report Week 6

image

Status Report Week 7

image

Status Report Week 8

image

Status Report Week 9

image

Status Report Week 10

image