Real-time Massive Multiplayer Online Space Strategy Arcade Browser Social Game for Twitter! ヘ(◕。◕ヘ)
- The Go backend repo: https://github.com/WarCluster/warcluster-server
- Amazingly strong AI player with fuzzy logic (written at 2 day hackathon) here: https://github.com/lepovica/WarCluster-AI ლ(ಠ益ಠლ)
- The awesome UI designer @Denitsa that also made the art of the game: https://www.behance.net/gallery/26279733/War-Cluster
- The team behind this project: humans.txt
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:
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
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.
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 :
- Upon attacking a player conquers a planet if his attacking army is
> 1than 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.
Running the app
~0.8installed via nvm (https://github.com/creationix/nvm) or other suitable node package manager
- you need the warcluster-server to be up & runnning ;)
- update the twitter credentials with your consumer key/secret in order to have a social twitter login.
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
- Point to your staging server here
scripts/release-staging.jsfor 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 (づ￣ ³￣)づ