Vision for future development

Atlantik is one of my oldest and most mature software projects, with the the largest amount of features, users, bug reports and fixes, downloads, attention, praise and criticism. This page lists a brief history of the project and my vision for future development.

History of Atlantik

To play Monopoly® with my friends on-line, that's what I wanted to do when I started the project in 1998. A year earlier I had played a computer version of the board game while on holiday in the United States, but I was not able to continue playing back home because I had made already made a complete switch of my desktop to Linux.

With some friends I started the KMonop project for KDE, but eventually they lost interest so the project did not go anywhere. I picked it up again in 2001 and the server component monopd matured quickly while working together with Erik Bourget, in the meanwhile putting effort in a decent KDE client by myself. To avoid copyright issues with Hasbro and Parker Brothers, I removed all hardcoded references to Monopoly® from the server and renamed the KDE client to Atlantik while Erik worked on GtkAtlantic.

Atlantik was included into the kdegames package with the release of KDE 3.1 and for the first time in the history of UNIX it became possible to play Monopoly-like games on-line using Free Software (unless one counts sharing a tty to play feature incomplete monop).

Current status

The original goal of the project has long been furfilled: every day several users log on to one of the public servers and find opponents to play with. They roll dice, purchase properties, chat, trade, mortgage, build improvements and eventually realise they have spent hours gaining and losing virtual money.

Many of the game features have been implemented with generic code and during the process towards a generic engine, I have started to wonder how hard it would be to add diffent board games. I will admit: harded than I initially thought it would be, but not because of severe limitations in the engine. I am currently waiting for underlying technologies to mature as it seems like they will finally let me to take Atlantik to another level.

Required technologies

The following technologies will make it possible to implement more board games:

KSVG2

A severe limitation in Atlantik is how board layouts are defined and rendered. I could have developed a proprietary format, but instead I wanted to utilise SVG and had to wait for a SVG library for KDE that would let me manipulate the DOM directly to update properties such as colours of fields on the board and locations of tokens. KSVG2 will let me do just that. Path relations and meta data can easily be stored in XML and clients could virtually every board layout with a single render engine.

Qt4

Another desired change is the consolidation of base classes such as players, tokens, properties and fields on the board into a single library to be used by both the server component and client. Qt has always provided excellent core functionality with a very useful API and event model, but unfortunately a dependency on X libraries prevented me from using it for the server component. With its fourth major release, this will no longer be a concern. On top of that, using QServerSocket will allow me to remove my home-made network library for the server component.

KDE4

With Qt4 comes KDE4. Improved functionality in classes such as KIMProxy will allow me to further integrate Atlantik with instant messaging features, providing advanced presence notification and invitation capabilities to play with on-line friends.

Future board games

Unfortunately many popular board games have various copyright and trademark owners who will probably want to keep tight control of their assets, ruling out favourites of mine such as Hotel®, The London Game® and Game of Life®. I have therefore not yet decided what board games might appear in the future, but it is likely I will just develop my own.

But all board games are based on the same principles, so other than free time I foresee no huge obstacles for supporting a wide range of games. All board games are based on common concepts such as players, assets (money, cards, special objects) and all boards have defined fields on the with some actions involved, be it acquisition, improvement or simply landing a token. In limited ways, most of these actions are already supported. The goal is to add flexibility and allowing other moves than rolling dice, such as moving a token based on predefined routes, for example what happens during a game of Chess.

With the current framework, it looks like a Trivial Pursuit®-clone might actually be the most likely candidate as first new game type: it would require a rewrite to allow for a large trivia card database, but the actions on the card aren't that different from what happens on Income Tax in Monopoly®: you get a number of choices, and based on your choice, a code path is executed. Most actions would do nothing and end your turn, but one of them allows you to roll again and keep your turn and some squares have a bonus for a good answer: you get an object as reward, bringing you closer towards completing the game.

Software

Monopoly®

© Copyright 1995-2007 Robert John Kaper. All rights reserved.

Tom has more friends but mine are prettier! (#1/1)