Inspiration

We all hate waiting and it is even worse if you have nothing to do. qGame should help to blow away the boredom and get closer together with the people waiting around you.

What it does

An organizer sets up a game (e.g. vBirds) and all the participants play all together in that game by sharing the control on a slot based schema. As it works as web extension, any browser game with up to 4 input keys can be played.

How I built it

Backend

The backend is written in golang as the fast processing of the web sockets messages is essential for the fun of qGame.

Frontend

Frontend is vanilla JavaScript in two parts: 1) Control app for the players (hackero.uber.space/qGame](http://hackero.uber.space/qGame)) 2) A chrome web extension for the game host

Challenges I ran into

1) This is my first bigger chrome web extension. The logic of the manifest is kinda hard to get. 2) Game interactions being to slow on mobile 3) Keeping information about the open web socket connections in the server for giving certain clients the control over the game

Accomplishments that I'm proud of

My basic idea was only to build a multiplayer flappy birds. After finishing that I did not stop, but tried to think the idea even further. With the chrome web extension there are endless game opportunities for qGame, not only one as in the beginning of my process.

What I learned

1) Use 'touchstart' listener instead of 'click' listener as they trigger a lot faster 2) Animations are nice, but can slow down your app (that's why I removed them again) 3) In-App message queues via golang channels 4) Programmatically triggering keyboard events

What's next for qGame

As I see quite some potential in qGame I want to continue working on it and publish the web extension in the chrome store. For being able to handle different user groups a game session system needs to be added to qGame. And I should get a good designer to work over the frontend :D

Try it!

Come around for the demo and play with cooperative with your friends. As the server currently has only one session, the web extension can not yet be publicly released.

Built With

Share this project:

Updates