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
grunt
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
mocha
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.