Skip to content

[Feature] Multiplayer Support#87

Open
AttAditya wants to merge 9 commits into
Glowstick0017:masterfrom
AttAditya:feat/multiplayer
Open

[Feature] Multiplayer Support#87
AttAditya wants to merge 9 commits into
Glowstick0017:masterfrom
AttAditya:feat/multiplayer

Conversation

@AttAditya
Copy link
Copy Markdown
Contributor

@AttAditya AttAditya commented Mar 23, 2026

Multiplayer Support

Check Out

Glimpse of this PR

  • Refactored Modules for Multiplayer Support
  • Added Support for Multiple Planes to be Rendered at once
  • Converted Plane.js file to Plane Module which can be extensible for adding new Plane Models in future
  • Layering of Planes and Canvases for better and easier understanding of depth while gameplay
  • Multiplayer Module to handle multiplayer support
  • Created Socket Server
  • Hosted Socket Server and connected in the game

Previews

New Commands

  • MULTIPLAYER CONNECT: Connects to the multiplayer server, and brings you to room lobby.
  • MULTIPLAYER DISCONNECT: Disconnects from the multiplayer server.
  • JOINROOM <ROOM_ID>: Joins the multiplayer room with id ROOM_ID.

Tasks

  • Refactor modules to allow multiplayer support
  • Planes module for spawning multiple planes at once
  • Manage proper moving and altitude changes for each plane
  • Create Socket Server to allow multiplayer
  • Connect Socket Server with Game
  • Update player environment on joining room
    • Terrain (Room Seed Based)
    • Clouds (Room Seed Based)
    • Time Cycle (Room Timestamp Based)
  • Allow multiplayer to be accessed on and only on player's control
  • Socket Server Optimization

Testing

  • Local Testing
    • Game
    • Socket Server
  • Tunnel Testing
    • Game
    • Socket Server
  • Production Testing
    • Game (GitHub Pages)
    • Socket Server (Render)

Notes

  • On testing (2 players), it turns out:
    • Local environment has the best experience (expected)
    • Val.Town deployment does really good and provides a smooth experience
    • Railway deploment is laggy, playable to good extent but should be really good with optimized
    • Cloudflare tunnel is very laggy but still playable to minimum standards of latency, and it will require heavy optimizations in coming future
  • Testing has been done:
    • 1 system 2 players
    • 2 system 2 players

Future Scoping

  • Customization
    • Player name
    • Plane colors
  • Show user logs of some events (like Player Joined, Player Left, etc)
  • Socket Server
    • Optimize the Socket Server for reducing send events for all parties
    • Persistent Data Management of Rooms and Players
    • Convert Socket Server to stateless server for better scaling in future
  • Gameplay
    • Mini Games
    • Plane Collisions
    • More Aircrafts
  • Multiplayer Chats
  • Location Indicators for Players

@AttAditya AttAditya marked this pull request as ready for review March 30, 2026 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant