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

Teaching Blogs

Project Access

Project Overview

We are developing a multiplayer web-based game inspired by Among Us and Together (in Roblox).

Inspiration 1 Inspiration 2
Vision

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.

Resources
Tech Stack
  • Frontend: JavaScript (GameEnginev1), Socket.io Client
  • Backend: Flask-SocketIO (Python)
  • Deployment: GitHub Pages (Frontend) / Flask (Backend Server)
Planned Features
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.
Example Inspiration: Among Us
Inspo 1 Inspo 2 Inspo 3
Gameplay Mechanics
  • [ ] 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."
Data Management
  • 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

  1. A player can host a game and receive a code.
  2. More players can join by using that code.
  3. Both players can see each other move in real-time with synchronized physics.
  4. Teamwork Stacking: Players can interact (stacking characters) to solve levels.
  5. Character Skins: Lobby customization (tints, colors, potential hats).