Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

warcluster logo


Real-time Massive Multiplayer Online Space Strategy Arcade Browser Social Game for Twitter! ヘ(◕。◕ヘ)

⚠️ This project's support is discontinued. Venture forth at your own peril. It's ~3 years old and we had no prior production experience with WebGL MMOs. It's considered as a playground although it's working (we held numerous tournaments with ~100 simultaneous real players and dozens small scale inhouse tests) ;)

Related links:

What can you expect to see in this ~3-year old repo:

  • Some old ThreeJS-Fu, a little GLSL magic for working with WebGL in the browser
  • WebSockets for some real-time mumbo-jumbo with the server (>'.')>=O____l_*__O=<('.'<)
  • Some old node-organic approaches for the bundling pipeline of:
    • BackboneJS for the ingame UI and the long-polling Leaderboard.
    • LESS for some juicy mixins
    • Jade-lang for some fancy markup
    • _.JS [¬º-°]¬
    • TweenLite for some elegant animations
    • bootstrap ¯_(ツ)_/¯
    • hammerjs for some mobile friendliness ... and some other extra spaghetti here and there :)

History of how we got here

long story short: We wanted to learn something new ♪┏(・o・)┛♪┗ ( ・o・) ┓♪, experiment with the unthinkable & foresee the unimaginable. So we decided to make a web-fuckin-browser MMO as a side-project... It must had breathtaking tactics, large scale strategizing, thoughtful meta gameplay & dangerously social diplomacy. This is how WarCluster was born as the first social game for twitter! It was greatly inspired by other games


It has 6 different races. Each race has it's own unique color. six races

Each color corresponds to unique twitter #hashtag used for race wide communication (eg. #WarClusterRed). There're only verbal alliences between players.


The game is time based. Each round is approximately 10 days. The player with the most controlled planets (i.e. biggest empire) at the end of the round is proclaimed winner and therefore Galactic Emperor (here's one of the Beta winners @valexiev)


Each player starts with a solar system consisting of 9 neutral planets. His home planet (the one with the asteroid belt) is impregnable. Typically each colonized planet has owner and generates for him army pilots per minute. The bigger the planet the more it generates.

At some point the army can grow bigger than the allowed population of the planet. So when the numbers get red bad things start to happen and army pilots are beginnig to die by the minute. Different sizes of planets have different population caps. planet infoplanet

A player can send army pilots to attack, spy or support other planets depending on their verbal agreements with its owner. The spaceships travel slow so moves are carefully plotted. Imagine it as a real time game of Go warcluster red armada:

  • Upon attacking a player conquers a planet if his attacking army is > 1 than the other army. Everything is lost otherwise.
  • Upon spying a player gets the number of the army on the targeted planet.
  • Upon supporting a player is donating his army to the planet's owner.

A player should spend extra effort to pick his enemies wiser and his allies patiently. Plot twists are around every hour.

There're different kind of ships indicating the size of the army. From left (smallest army, no more than 500 pilots) to right (biggest army, more than 6000 pilots). This is used to understand what's the expected army power that's approaching you.

xs shipssm shipsmd shipslg shipsxxl ships

Running the app


After you have the prerequisites:

  • git clone ...
  • npm install // in the designated folder
  • node warcluster.js // to run it in development mode

Releasing to staging

  1. Point to your staging server here
  2. Run scripts/release-staging.js for automated release


Fork it and make required changes. After that push your changes in branch, which is named according to the changes you did. Initiate the PR (づ ̄ ³ ̄)づ