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. This online Diplomacy 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. Custom map and ruleset creation should be simple but flexible.
- 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.)
- The project will keep the good, dedicated players in and the lame quitters out.
- Rapid games (< 15 minutes per season) will be possible without page refreshes.
The application as a whole consists of three parts:
- The website. Developed using AngularJS and MongoDB.
- The adjudicator, responsible for taking a set of moves and resolving them. Developed in raw JavaScript.
- The server, responsible for scheduling adjudication events and dispensing the website. Developed with NodeJS/Express.
- Install NodeJS and MongoDB.
- Run
npm install
inside the directory, thengrunt serve
.