I Do In Fact Need Your Authority (Server)

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.

And so it begins….

So my last class at OSU comes down to making a multiplayer space arcade game, if only this would’ve been the pitch for college when I was in junior high.

Diving into this project, the thoughts and emotions ive had are eerily similar to almost all projects. At first completely overwhelmed with new concepts and an endless list of paths/solutions (none of which stand-out) and then a calming realization that its not due within the next 15 minutes and I start breaking off chunks piece by piece until I have a plan written out in my handy dandy notebook (shout out to blue’s clues).

For starters, the actual game will be handled using the Phaser framework. This was decided after talking to my one and only teammate (note like a soulmate or anything, literally the only teammate since were a team of 2), we decided the best option for the front-end is to use the JavaScript framework Phaser due to the large number of resources available with it.

The back-end will be handled using the Python framework FastAPI, which can be summarized as easy to use as Flask with the performance of Node.js. Unfortunately, all resources I’ve found involving Phaser multiplayer development use Node.js but at the very least that will help give us a start to find equivalent methods/functions/strategies to implement FastAPI. It’s the Capstone Project, we cant have everything be simple.

The next few weeks will be a blur but the plan is to have a fully-functional game in the short-term so that we can go nuts and throw whatever features we want into the game to help it stand out from the crowd. What that entails is a complete mystery at this point and in no-way is that a bad thing because these early brainstorms have only produced ideas, not roadblocks.