Diplomacy is a Risk-like board game with a strong Internet fan base. Many browser-based clients exist, but none have quite the flexibility of the play-by-email servers they intended to replace. The dipl.io project seeks to be as full-featured as possible and take full advantage of the modern web browser's abilities.
- The development process will be fully transparent. Improvements and new variants are welcome from the community.
- The user interface will be responsive and fun.
- The project will bring together the best characteristics of previous Diplomacy implementations.
- The project will be fully unit-tested. (This is for my own good and reparations against many years of crimes against testability.)
- Integrate fully with the zond/diplicity backend.
- Rapid games (< 15 minutes per phase) will be possible without page refreshes.
The original project aimed to be an end-to-end solution using PostgreSQL + nginx + Redis + AngularJS. That's a lot of stuff to manage.
This project retains the front-end of the original and discards the back-end. By collaborating with the diplicity project, I can focus on delivering a quality user interface.
The application as a whole consists of two parts:
- The website. Developed using AngularJS.
- The backend, responsible for scheduling adjudication events and processing data. Sent to zond/diplicity through its API.
This assumes you have npm and bower working.
- Clone this repository.
- Clone the diplicity repository. Follow its setup and startup instructions.
npm install -g grunt-clianywhere.
bower installin dipl.io's directory.
npm installin dipl.io's directory.
- OPTIONAL: Run
grunt test(same thing).
If you have a web server on your machine already, set it up to serve the
/client directory in this repository.
If you don't, nginx is recommended, though it takes some work. This will be touched upon in a wiki article.