So after creating a simplistic (but still meeting our minimal requirements!) single player space arcade shooter using the Phaser3 framework, we have moved on to our next major feature right before the midpoint of our project timeline… Making the game multiplayer.
We chose to have the back-end of our to use the FastAPI framework due to its comparable performance to Node.js and its use of Python. Unfortunately for us, all material provided by Phaser on implementing multiplayer for its games is written using Node.js.
To ensure our project timeline didn’t stray too far off our projections we decided to move forward building a Node.js server using the material we had found during our initial research while also trying to implement a FastAPI server capable of speaking to our Phaser client through websockets. We figured the use of websockets will be the backbone of multiplayer implementation regardless of what we build our server with allowing us to transition whatever progress we have made in Node to FastAPI relatively painlessly (this is the hope and it still lives).
Initial impressions of building a multiplayer server is that its all about communication. What information is critical for all clients to have so that the game can proceed as intended and what information acts a unnecessary fluff that bogs down the whole operation. Once these bits of critical info are determined at what time and how frequently do we need to update/communicate this info with the server/other clients? Questions like this are what I am currently dealing with as I transition our single player experience into a client game that interacts with a server.