Thursday, August 9, 2012

Diplomacy Resources on the Web


Here is a list of some of the sites available online related to Diplomacy, with a brief description of their contents. I've divided the content up between playing and AI development.

Playing the Game

I've been playing Diplomacy online for three years now...  its' an on again / off again relationship. Up until recently I had played exclusively on http://webdiplomacy.net/, which runs an open-source implementation (called webDiplomacy!) that is written in PHP. Its a clean, simple and well laid out interface - I really like it! Its easy to keep track of multiple games and see which ones require your attention. Creating new games and searching for a game to join is also easy - the search engine is comprehensive.

Through the integrated forum on webdiplomacy.net, I recently discovered the excellent http://vdiplomacy.net/ site. This site also runs the webDiplomacy software, but contains numerous improvements, not least of which is the implementation of over 70 variant maps. I love these maps because they really change things up. Many of them also have additional rules, like fog of war, multiple moves per turn, being able to choose your starting units - even new units like cavalry! The site also has a simpler way of entering convoy moves and communicating with moderators.

There are two other sites I could find where you can play Diplomacy online against human opponents. They were the similarly named but unrelated http://www.playdiplomacy.com/ and http://www.playdiplomacyonline.com/. I haven't tried either but having glanced at them I imagine they would struggle to equal the slick useability of the webdiplomacy implementations. And as neither is open source they can't be co-opted to use to visualise games played by AIs.

Lastly I have to mention The Diplomatic Pouch. It has a couple of great resources. The first is a database of opening moves which is well written and full of expert knowledge.  The second is a huge listing of Diplomacy variants, over 400 apparently!

AI Development

Now its time to dig into the exciting stuff from my perspective. I made the decision to start this AI project purely because it seemed like a fun challenge, but lo and behold there is actually a community of people out there building bots just like I want to!

At the centre of it all is the Diplomacy AI Development Environment (DAIDE). They provide a development environment specifically designed for building Diplomacy AIs. You can play Diplomacy against them, or pit AIs against each other in mortal combat. This environment was created 10 years ago but is version 8 was released this year, so it is being updated.

What is most impressive about this endeavour is that they have created a tiered language that can be used to codify communication about diplomacy games. Each level of the language introduces new concepts to be communicated, such as alliances, synchronised movement and no-go zones. Even though this language has been specified up to about level 20 or so, it seems that most bots only implement level 0 or 1 if at all.

Obviously there is still a lot of challenges to overcome in this space, which I like. It will be fun to try and overcome the problems of managing communication. Realistically though I imagine that, like everyone else, my first efforts will be concentrated on just getting the bot to play the game at the base level without efforts at communication.

A second bot development is DipGame, provided by the chaps at the Artificial Intelligence Research Institute (IIIA) in Barcelona. Similar to DIADE this provides an environment for playing Diplomacy against AIs as well a preconfigured set of libraries for bot development. I'll have to have a look at each and see which is the best for my needs.

John Newburym who is involved in DAIDE, provides some interesting links and notes about bot development on his Diplomacy AI page. Also there is Albert's page. This bot, written by Jason val Hal, is apparently the best diplomacy playing bot in the world. You can download the source code here and peruse it at your leisure.

Finally, there are several academic papers published on the internet discussing AI algorithms for Diplomacy. Here are three of them:

Monday, July 9, 2012

Trivial and Simple Diplomacy Bots


Before I get stuck in to building the next world Diplomacy champion, it seems like a good idea to have a think about some of the more trivial bots that can be written to play diplomacy. The following notes cover the basic bots listed on the DIADE Clients page.

From there I couldn't resist extrapolating to variants on these bots that should be easy to knock out. Probably once I start coding on this project, my first goal will be to write a bot that can copy all the behaviours in this article.


Friday, July 6, 2012

Basic Negotiation


Diplomacy is a game of negotiation; agreements, alliances, strategic plans and trade-offs. In this post I want to describe and consider the more common types of agreements made during play. Some of these will be honest offers made with the full intent of being honoured. Others will be clever lies crafted to gain some kind of advantage.

As all the players are your opponents, you might think that the game could be played going it alone. Avoiding the snakes and ladders of international politics might sound simple, the game system encourages players to work together for mutual benefit. Although Diplomacy as a whole is a zero-sum game (more on Game Theory in another post) there are many scenarios within the game where discussing a move with the opponent will allow you to ensure that both of you are better off. The negotiations below should benefit all participants - if they are adhered to.


Saturday, June 23, 2012

Diplomacy Rules Summary

I want to do this thing methodically, so the logical place to start would seem to me to be the game rules. So in this post I will go over the rules of Diplomacy in my own words. I'll follow it up soon with a post covering the basic types of negotiations that occur in a typical game.

The Board


Friday, June 22, 2012

Whats Going On Here?


Hi all, and welcome to my little corner of the interweb. My name is Marcus Lund, and I live in the city of Melbourne in Australia. I'm an experienced software developer who specialises in agile management and loves refactoring. I also have two young daughters who keep me very busy outside of work.

I have always had a strong amateur interest in artificial intelligence and game theory, which I guess started in earnest after studying a Cognitive Science unit at university and spending lots of my time playing MUDs (multi-player online virtual worlds). I peruse the occasional academic article online, and have read a book or three on the subject too. My particular interests tend towards intelligent agents, emergent behaviour and generic algorithms.