A competitive Pokemon battle simulator playable in the browser.
git clone git://github.com/sarenji/pokebattle-sim.git cd pokebattle-sim npm install
Next, you need to install two dependencies: redis and PostgreSQL 9.1.
On Mac OS X with homebrew, you can do:
brew install redis
On Windows, there is a Redis port that works fairly well: https://github.com/rgl/redis/downloads
PostgreSQL has installable versions for every major OS. In particular, for Mac OS X, there is Postgres.app.
When you install PostgreSQL, you should create a database for pokebattle, called
pokebattle_sim. You can do this two ways:
# command-line: $ createdb pokebattle_sim # or via SQL client: CREATE DATABASE pokebattle_sim;
Next, you must migrate the database. Simply run:
npm install -g knex knex migrate:latest
If you get an error complaining that the
postgres role doesn't exist, run this:
createuser -s -r postgres.
We use Grunt to handle our development. First, you must
npm install -g grunt-cli to get the grunt runner. Then you can type
to automatically compile all client-side files and run
nodemon for you.
We also support Vagrant if you are on a Windows machine and so desire.
npm test # or npm install -g mocha mocha
Or if you're in the Vagrant VM, you can just run
First, you must get SSH access to the server. Then, to deploy:
cap staging deploy # test on staging cap production deploy
pokebattle-sim is a one-page app. The server serves the client.
api/ Hosts the code for the API that we host. client/ Main client code. Contains JS and CSS. config/ For Capistrano and deployment. public/ Public-facing dir. Generated files, fonts, images. server/ Server, battle, move, Pokemon logic, etc. shared/ Files shared between server and client. test/ Automated tests for server and client. views/ All views that are rendered server-side go here. Gruntfile.coffee Contains all tasks for pokebattle-sim, like compiling. start.js The main entry point of pokebattle-sim.
All contributions to the simulator logic must come with tests. If a contribution does not come with a test that fails before your contribution and passes after, your contribution will be rejected.
Other contributions (e.g. to the client) are much less strict!
Report issues in GitHub's issue tracker.