Play Link: http://superbrawl.herokuapp.com/
SuperBrawl is a project that I've been working on during my spare time for quite a while. It is a real-time online multiplayer brawler based on Glitchbuster (even though the code base has evolved quite a bit to allow for multiplayer).
There are currently two game modes included:
Deathmatch: win the round by shooting anything that moves. 20 points for every hit, and 100 points for every frag.
King of the Hill: points are only awarded to whoever is wearing the crown. You need to find the crown and keep it on your head. But be careful, all the other players will focus on stealing it from you.
At the end of a round, a player will win and the best action of will be played.
Of course, the game features several weapons that will help you dominate your opponents:
The shotgun is your default weapon. It deals very little damage and requires accuracy. It can however be useful when your opponent is low on health
The plasma gun fires plasma bullets straight at a high rate. It can be used to spray and prevent an enemy from moving
The grenade launcher fires grenades that explode as soon as they come in contact with another player
The machine gun fires three bullet bursts, allowing for quick sprays
The rocket launcher obviously fires rockets that deal a lot of damage when used wisely
The flamethrower is useful for setting things on fire for a few seconds. It is a great defensive weapon
A shield is also available for pickup, allowing you to take 3 additional hits.
You can play the game at http://superbrawl.herokuapp.com/ (the server is hosted in America, so if you're located in Europe, you may experience a bit of lag)
If the server is empty, you can add/remove bots from the pause menu (press ESC)
Any feedback is welcome. The game is still a work in progress that I really enjoy developing, so I'm always happy to include more weapons, tweak the difficulty, improve the bots AI, add game modes, add more public servers, fix bugs... anything!
You can find gameplay videos on my Twitter feed here, here , here or here (I'm not sure how to include videos in a post, so these will have to do for now)
Now on the technical side, there are also quite a few things that are pretty cool:
Public brawl: the brawl is always running on the central server, meaning you can join it and invite your friends, or wait for anyone to join, or even add bots while waiting
Self-hosted WebRTC game rooms: if the central server is too laggy for you, you can always host a game on your laptop and let people join (assuming they can establish a WebRTC session with you)
Bots: no friends to play with? Just add a few bots to any game room! The AI is smart enough to make informed decisions (attack a player with less health or a bad weapon, retreat and get health or a shield, pick up a weapon before attacking, focus on the crown...)
Death cams: when you get fragged by another player, the action will be replayed to you can see how things went wrong (press ENTER to skip)
Ingame chat: if you feel like bragging about your latest frag, press Y and type a message for the chat
Procedurally-generated maps: every time a round starts, a new map is generated by the server, so you can't just learn a map by heart
Ingame video chat: turned off by default, if two players have the setting turned on, their webcam will be
Mobile friendly: the game has mobile-specific controls, so if your phone can handle HTML5, you should be able to join the brawl
The game relies on socket.io for client-to-server communication, unless you're hosting a game room over WebRTC, in which case socket.io is only used for signaling.
Other libraries I'm using are browserify, Howler.js, PIXI.js, Mustache.js, chance.js and probably many others that I've forgottten
I also intend on writing a series of articles about the things I've learnt while developing this game. Topics should include architecture, networking, synchronization, WebRTC, AI. Let me know if you think you'd be interested in such articles.