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:
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
Test Plan
https://docs.google.com/document/d/1_FgIa0YKDdfWg3q8QDsmFrtS5r-4xSwjgWnsw9HfxvU/edit?usp=sharing