Sprint 5 Assessments
Team Briefing // Sprint 5
Welcome to the multiplayer development hub. We are currently architecting a real-time synchronized environment inspired by Among Us and Together.
SYSTEM STATUS:
Network Socket.io Integration (Pending)
Backend Flask Authoritative Server
Logic Velocity-based Gravity Stacking
SYSTEM STATUS:
Network Socket.io Integration (Pending)
Backend Flask Authoritative Server
Logic Velocity-based Gravity Stacking
Teaching Blogs
Project Access
Project Overview
Vision
Tech Stack
Lobby and Matchmaking
Gameplay Mechanics
We are developing a multiplayer web-based game inspired by Among Us and Together (in Roblox).
We plan to combine fun, multiplayer game levels that implement lobbies while simultaneously implementing the teamwork aspect of our multiplayer game! The core gameplay involves players navigating levels as customizable cubes, featuring gravity-based movement and real-time synchronization.
ResourcesTech Stack
- Frontend: JavaScript (GameEnginev1), Socket.io Client
- Backend: Flask-SocketIO (Python)
- Deployment: GitHub Pages (Frontend) / Flask (Backend Server)
Lobby and Matchmaking
- [ ] Join Codes: Implementation of a 6-letter room code system for private/public lobbies.
- [ ] Player Limits: Logic to enforce a minimum of 2 players and a maximum of 4 per session.
- [ ] The Waiting Room: A pre-game scene where players can chat and customize their "Cube."
- [ ] Customization: UI for changing cube colors/skins before the game starts.
- [ ] Movement Logic: Jump physics with velocity and gravity-based stacking mechanics.
- [ ] Level Design: At least two distinct levels with varying platform configurations.
- [ ] Game State Transition: Implementing the "Page between lobby and game" transition.
- [ ] Social: In-game player messaging system (chat box).
- [ ] Pause Menu: Options for rules, music toggles, and game settings.
Technical Requirements
Networking and Sync- WebSocket Integration: Establish bi-directional communication using `socket.io`.
- Authoritative Server: The Flask server will maintain the "Truth" (positions, scores, and health).
- JSON Serialization: Efficient transmission of GameObject data (velocity, coordinates).
- The Game Loop: Modify client-side loops to interpolate server updates to prevent "teleporting."
- Player Identification: Assign unique IDs to each socket connection.
- State Tracking: Server-side tracking of Positions, Velocities, Game Clock, and Level Gravity.
- Error Handling: Implementation of "reconnect" logic for network stability.
Our Success Plans
- A player can host a game and receive a code.
- More players can join by using that code.
- Both players can see each other move in real-time with synchronized physics.
- Teamwork Stacking: Players can interact (stacking characters) to solve levels.
- Character Skins: Lobby customization (tints, colors, potential hats).