Video games have the potential to act as incredible party games, but this kind of setup has many cost and accessibility barriers, such as needing to buy and set up a video game console, buying and owning enough controllers for all your friends, and buying the games you need. Because of this, games designed to be played in such a way are generally not very successful.
What it does
I tried to make phone party a framework that lets people easily design party games that make your mobile devices into controllers and any household computer or laptop into a viewing screen. Anyone with a mobile phone can connect by simply going to a URL, while screens go to a separate observer URL.
This setup makes it possible and easy to have as many players in a game as a developer wants, and can also display the same game on as many screens as needed so even people in a big room can more easily see a screen closer to them.
As a demo I also designed a simple multiplayer "game" to show off, however theoretically any type of game can be built in such a way. It has no clear objectives but you can jump around with your friends and punch each other.
How I built it
I used NodeJS and socket.io to set up a server that receives inputs from "controller" clients and sends data to "observer" clients.
Challenges I ran into
The biggest issue I ran into was making everything lightweight enough that the experience using the "controller" would be smooth. Data needs to be transmitted from a phone over the internet to a server, and then to a screen. This is a lot of travel that creates latency.
Accomplishments that I'm proud of
I didn't want this project to be a one-off thing designed for one specific game, so I did as much as possible to separate the code that designed the overall system from the demo game logic. The controller-observer system is modular and developer-friendly, and anyone can build a game off of it by simply putting in their own code files.
What I learned
I learned a lot about the logistics behind making a live game and broadcasting it in variable ways. I also learned a lot about how to build the server side not just functionally but efficiently and cleanly. I needed to restructure the core of my code multiple times.
What's next for phone party
In 24 hours it isn't possible to make everything perfect. The system could use a lot of efficiency to make it more lightweight and responsive, so that it can mirror a real console experience as much as possible. Also, I want to experiment with making more complete, different games using this method.
Finally, the controller is ugly. There is definitely a lot of work to be done to make it prettier.