The Master and His Vassal (in English)

Since the time I first connected to the VASSAL game engine – a Java-based open source program that gamers have used to play hundreds of different games online – I daydreamed about interviewing Rodney Kinney, designer and administrator of VASSAL, and jotted down a list of questions. New questions kept being added as I spoke with friends and colleagues, and I was finally forced to summarize them into the following short list. This interview was conducted by myself, Roberto Flaibani and edited by Aaron Bell, and also published in ItalianFrench, Spanish, and Japanese.

Introduction (by Bill Bennett)

The Vassal Game Engine is a software tool for playing board games and card games over the Internet. And, because it is Java-based, it will run on any platform. The program is a framework, upon which designers build modules that reproduce the experience of playing a particular game. There is no Artificial Intelligenge in Vassal; it is intended for people to play each other, not against the computer. It supports real time play over the Internet with an incorporated chat window or play-by-email by using the logging feature which records chat window messages, moves and other actions.

Maps, boards, counters, tokens and cards can all be shown graphically and manipulated by mouse or keystrokes. Modules can be designed to report various actions in the chat window. The control panel can be customized with player trays, dice rollers, charts, notation windows, line of sight threads, and many other features.

There are currently more than 400 games represented by their own modules and new ones are being created all the time. Of course, reproducing games in this way requires the permission of the game’s publisher, but many do give permission as it provides another way to promote their games. There is a wide variety of games available: classical games like Risk, Axis&Allies, Talisman, Formule Dé, Heroquest, Warhammer 40K; several recent bestsellers: Memoir 44, Twilight Imperium, Euphrat & Tigris, Carcassonne; card-driven games Battle Cry, Commands & Colors Ancients, Twilight Struggle; the Avalon Hill’s evergreens Flat Top, Squad Leader, Hannibal, Britannia, Third Reich, several card games, miniature games, and dozens new games are added every month.

Designing a module takes no programming experience, as there is a built-in module editor interface for creating and editing modules. There are support documents that are provided with the Vassal program download package that describe how to use Vassal, how to do play-by-email turns and the basics of creating modules. The Vassal program and the modules can be downloaded for free from the website. The module pages also provide a place to register as a player of a game, which allows you to contact other Vassal users who play that game.

A vibrant, international online community has developed around Vassal. The Vassal website provides forums where the program’s creator, Rodney Kinney, answers questions and participates in discussions. There are people with Java programming skills that assist him with fixing bugs and implementing new features on Vassal, as it is open-source software. And in addition to the players and module designers, there are folks who organize online campaigns and tournaments.

While playing a board game with Vassal isn’t exactly the same as playing face-to-face with friends, it is certainly the next best thing. And you have the opportunity to get to know people from all around the world who share your interests in gaming.  There are other board game-playing utility programs out there, but none are as quite as stable, easy to use, and widely supported as the Vassal game engine.

Interview (published in January 2009 by Boardgame News)

Roberto Flaibani: Before we start with the questions, I’d like to know something about you, some biographical information like your age and job, and a little about your journey in the world of games.

Rodney Kinney: I was born in 1963, which means that when I was in high school, I was both playing the original Squad Leader and using my father’s account on the University mainframes to play text adventure games – a perfect setup for eventually writing VASSAL! I passed a lot of my teen years playing classic titles from Avalon Hill, SPI, and Metagaming. Early on, I favored fantasy/science-fiction titles, so I enjoyed Starship Troopers, Sorcerer, Outreach, War of the Ring, Car Wars, Melee. Now I don’t care about the setting so long as the game mechanics are good.

I’ve been an Advanced Squad Leader (ASL) devotee since it was first published. The only game I’ve logged anywhere near as many hours with has been Cosmic Encounter, which was the focus of many all-night sessions. But I’ll appreciate any well-designed game and I love to learn new ones. I used to administer all of the board game events at a mostly role-playing convention in Austin, where I wore the name tag “Mr. Boardgame” and I still think of that as my persona. Actually, I still have that name tag!

Professionally, I’m a software developer, via an indirect career path. I have a Ph.D. in Physics and did computer modeling of plasma turbulence. But during the late 1990s I started fooling around with Java, writing what would eventually evolve into VASSAL. In 1999, I left the university for a software engineering job. Now I’m working at Microsoft in a research group that focuses on Internet-related work. It’s ironic that a sideline interest in Java took me out of my chosen field and landed me at Microsoft. But hey, it’s also ironic to work at writing software all day long, then come home and write software as a hobby. Guess that’s who I am!

RF: Let’s begin with a bit of history. In the 1990s, with the Internet bursting onto the international stage, the narrow circle of play-by-mail players was transformed by the use of email. In the next decade, with the VASSAL engine, a new technological jump was made: Playing board games in real time became possible just when a new wave of board games, called Eurogames, was quickly growing. In this scene, what have been the main steps in the story of VASSAL? When did you have the first idea, and from what did you draw inspiration? What has been your strategy up to this point?

RK: When I was in graduate school, networked gaming was in its infancy. These were the days of MUDs – multi-user dungeons – and X-Trek, but my big inspiration was the Internet Go Server (IGS). I was interested in Go, but it was hard to find players in person, but very easy on IGS. I was playing a lot of ASL, and it’s always been a challenge to find players for that game. I just thought it would be great to have the same thing for ASL as IGS had made for Go.

This is really the seed of every successful open-source project: The author creates something to fulfill a need of his own. I had seen how much effort had gone into maintaining multiple clients for IGS; Mac, Windows and Unix all had to be developed separately by different programmers, and it was a big headache. At work, I used Unix on Sun workstations. I had a Mac at home, but knew that the rest of the world mostly ran Windows. My online ASL dream seemed hopeless until Java debuted in 1995. Java lived up to its promise of write-once-run-anywhere. Once I found that I could write something that worked for everybody, I got excited and really got going.

So I created the tool I wanted to play ASL online: Virtual Advanced Squad Leader, or VASL. It got adopted by the community and I took it to version 3.0. At this point, it was a quite usable piece of software, and I started to get requests from players of other games asking what it would take to make similar tools for their favorite games. A few of those requests convinced me to start VASSAL in 2000. In software, there’s a maxim that you always throw away your first try, and I ended up scrapping all of the code in VASL 3.0, and using the lessons learned to build VASSAL from scratch. I had the aim of making it powerful enough to duplicate the functionality in VASL 3.0. ASL is a complex enough game that I knew if I could make a general-purpose engine that could handle ASL, it could handle any game. That’s another good software principle: Do the hard job first.

The most important lessons learned from developing VASL first were the software design patterns needed to make VASSAL extensible. The VASL 3.0 code was not easy to adapt to other games – I learned this when I tried to do it in response to a couple of early requests. However, VASSAL can be extended even by somebody who doesn’t have access to the original code. It’s extremely cool that a programmer can write specialized code for one particular game and plug it without me even knowing about it, and this has been key to VASSAL’s growth. It meant that even before going open-source, VASSAL drew in a lot of developers. It also means that the cost of adding features is low. The way game pieces are built as a list of traits, for example, means that defining a new trait to support a very specific use case in a specific game doesn’t introduce the risk of bugs for any other pieces. That’s important for the overall stability of the software.

RF: That it is an open-source, collective, and volunteer project is one of the charming aspects of VASSAL. In 2003, when you made the VASSAL engine’s source code public domain, you wrote the following:

Why release the source? VASSAL’s usership is growing. More and more modules are being made, and more feature requests are coming in. I’m getting more messages from programmers asking how they can contribute. Basically, I’m convinced that VASSAL has the potential to become something larger than myself, and I believe this is the way to make it happen. So long as I’m the only one doing the programming, it can only grow in proportion to my spare time and interest level, and it will always be “just another” of the tools available, even if it currently happens to be the best (cough cough)…..

The community of developers was born and one can follow the internal debates on the devoted forums. What are the new targets to meet, both in the short and in the long term? Who are the key men in this process?

RK: Almost immediately after opening the source code, miscellaneous developers started to drop in and contribute features. Most of them contributed a single feature, then went on their way, but even that’s enough to make the whole thing worthwhile because it still makes the engine evolve faster than I could make it improve by myself.

Brent Easton was the first developer to stick around for the long term. He’s responsible for VASSAL’s system of triggers, dynamic properties and property matching. That’s been an incredible innovation because it’s allowed for some very interactive modules that do a lot of bookkeeping. Modules that take advantage of these features save the players a lot of bookkeeping, and you can hardly believe that they were put together without needing any programming knowledge. The dynamic property feature is a great example of the value of having a developer community. It wasn’t an idea that I had had and was waiting for the time to devote to it; it was a game-changer that came out of nowhere. Brent is also responsible for the code that makes it possible to translate VASSAL modules into other languages, another improvement that had a big impact that I probably never would have gotten to on my own.

More recently, Joel Uckelman has stepped up as a leader of the developer’s community. He’s done a lot of work that’s making it easier for developers to contribute: setting up the source code repository, putting together automated incremental builds for testing. You’ll see him leading the current discussions as we iron out bugs in the upcoming release with Tim Franklin and Tim McCaron. Joel has also contributed some very sophisticated code that’s enabled VASSAL to handle much larger maps without running out of memory, and he’s looking at advanced graphical libraries for better visual effects. Michael Kiefte is working on that as well. Thomas Russ has helped get VASSAL working smoothly on Mac systems, and Ben Smith worked to set up the forums site. So it’s a bunch of people pitching in where they can do the most good. Makes you feel good about the human race!

In the near term, our priority with the next release or two is to flatten VASSAL’s fairly steep learning curve. Because it’s so customizable, it will always take a while to become an expert at using VASSAL, but we want to make it easier for people to pick it up and feel oriented. When we ran a feature-request poll, installation/documentation and speed/performance came out on top, so those are getting the attention. Longer term, I’m working on moving the server to an open protocol (based on the Jabber standard), which will allow anybody to host a server, an important step for the platform’s longevity. I also expect we’ll be able to get some traction with the visual effects we’re experimenting with now, such as smooth zooming and 3-d perspectives. We’re also looking at an overhaul of the basic UI to make best possible use of the screen real estate. I’d really love to give module designers the ability to define different skins, so that different games running under VASSAL could have their own individual looks and feels.

RF: Let’s go on with the speech quoted above: “….The board-gaming community deserves a standard, and it deserves a community project. VASSAL can become that, but never so long as a single individual remains in control….” But has VASSAL really become the standard in the world of online board-gaming? What are the weak and the strong points of VASSAL when compared to its competitors such as BrettSpielWelt, ZunTzu, Cyberboard, and Aide De Camp?

RK: First, let me say: Hooray for competition! Utopia would be to have a single tool that satisfies everybody’s needs, but the fact is that a single tool on its own will stagnate, and you need competition to keep everybody moving forward.

Cyberboard and Aide De Camp are the grandfathers in this category. I’ve had some exchanges with [Cyberboard’s] Dale Larsen. I totally respect what he’s done and encouraged him to open-source Cyberboard so that it could continue to improve. When I started VASSAL, both those tools were established, but neither supported live play, so that was the first distinguisher for VASSAL. Now, with VASSAL’s dynamic properties and triggers, you can build these highly-interactive modules, so that even when playing over email, the difference in the functionality of the games is pretty dramatic. ZunTzu has even less in the way of functionality, but it has some very nice visual effects. Being Windows-only, it can take advantage of Microsoft’s latest user-interface libraries. VASSAL, being cross-platform, will probably always lag in the area of spiffy visuals, but we’re definitely working to close that gap.

BrettSpielWelt is in a different category, really, because it doesn’t allow users to create their own game adaptations. It’s more similar to DBA Online, SFB Online, or HexWar, despite the fact that it’s free. The difference is that a programmer has to be involved to create a new game. The advantage of that approach is that the user interface can differ between the different games, whereas the interface to play a VASSAL game always has the same structures. That’s why I’d like to introduce skins, so that individual modules can have their own unique look and feel.

RF: Let’s talk about the VASSAL engine’s numbers. From the stats of your server, is it possible to get the number of users, their place of origin, the frequency and the duration of the connections, per person and per module? Is it possible to quantify these figures over time to show the evolution of the system? Any data of sociological value would be useful in order to better understand the VASSAL phenomenon.

RK: All the numbers I have represent lower limits. For instance, in 2005, I switched to a more dynamic website in which users could upload content. About 300 new people have registered with the website each month since it was introduced, but of course people can download modules and play them without registering, and I don’t have estimates for how many people are doing that. There are about 350 different modules hosted on the site, and a new one is uploaded every couple of days, but of course some people create modules without hosting them on the web site. Last month on the live server, 3700 different players played over 4000 games of 350 different modules, but many people play only via email, and I can’t count them either. If you poke around for games on the Internet, you come across VASSAL pretty quickly, so I suspect most people who might use it have at least heard of it. It’s just a matter of making it work painlessly and getting a module for the game they’re interested in.

RF: I’m a direct witness of the existence of a lively players’ community gathered around the game Commands & Colors: Ancients. The community manages its own website hosted on Yahoo, with more than 300 registrations, runs many tournaments, and every day fills up VASSAL’s cyberspace with its players. Do other player communities exist on VASSAL? Among the users and the developers, have groups been formed devoted to designing new games rather than those already made?

RK: There are quite a few communities like that, and it’s great. I would say they tend to organize around the game, rather than VASSAL per se, which is really just a tool. VASSAL ends up being one aspect of how the fans interact with each other. Some of the largest user groups are the ones around miniatures systems. I didn’t anticipate that, but it makes a lot of sense because those games lend themselves well to the system in that it’s easy to pick up a game online and finish it in one setting. For new games, it’s becoming common to use VASSAL as a playtesting tool. Using VASSAL, a game designer can easily push revisions out to playtesters, and it’s a great format for playtesters to send in their reports because, for example, you can capture a snapshot of the game at the point where something interesting happened.

RF: How much does VASSAL cost, and who pays the bill? The game publishers would have several reasons to support you: You provide a lot of free advertising for them, and the most experienced players subject the games to a severe playtest, providing invaluable advice for the improvement of the products. How has the game industry behaved towards VASSAL? Has the attitude of game companies changed over time? Real names would be welcome!

RK: The finances are pretty uncomplicated. I pay for hosting services with money raised in the semi-annual “Pledge month” events. To run the central chat server, which would be significantly more expensive than web hosting, I’ve relied on a succession of benevolent volunteers, in other words, fans with access to reliable hardware and network connections. Of course, the donations don’t bring in nearly enough to cover the time that all the contributors put into VASSAL if you had to actually pay them for it, so the most significant “bill” is the time put in by all the contributors.

VASSAL’s relationship with game publishers is varied. That’s to be expected: Different publishers have different priorities, and each has the right to manage its copyrights as it sees fit. We will always cooperate with any restrictions that a publisher wants to impose on the distribution of VASSAL modules based on that publisher’s games. Some, such as SPI and Games Workshop, have explicitly requested that we not make modules publicly available, and users uploading files to the VASSAL site must agree to those terms. Others have been overtly cooperative. GMT hosts VASSAL modules on its own website and has even sponsored online tournaments. The majority of publishers have a live-and-let-live attitude in which VASSAL is neither endorsed nor censured. I wouldn’t say that there’s been a change in attitude of the publishers over time, but VASSAL has perhaps grown to the point where it’s harder to ignore, and more have had to make a decision one way or another.

RF: Even in observance of the open-source principles, I’m sure that VASSAL could become a valuable business tool. Would you like to give us some details on Dan Verssen’s initiative, and how it is going? Also, would you like to offer some advice to possible entrepreneurs?

RK: Commercial VASSAL modules work on a classic open-source business model: the premium add-on of protecting the images and asking the user for a password is not a requirement for the free version, but is available for a price to anybody wanting to make money from the software. Dan Verssen Games has been selling VASSAL modules of its games for about $15 for a couple of years now. Many buy the print-it-yourself PDF game and VASSAL module as a combined package.

The VASSAL modules fill a nice niche. From the customer’s point of view, the cost is low, but it’s also attractive from the company’s point of view. Selling a VASSAL module can generate about as much profit as selling a $50 printed game, with no distribution problems and no financial risk whatsoever. There’s a lot of space for designers to operate while staying below the level of shipping printed boards or CDs to bricks-and-mortar stores. Desktop publishing and print-on-demand has changed the printed game industry, allowing publishers to distribute their games without spending a lot of capital.

For computer games, it’s still too expensive for your average game designer to hire a team of programmers to create a standalone computer version of his game. In fact, I’ve been contacted a few times to build specific games by extending the VASSAL engine. It hasn’t worked out simply because I don’t have the time to both develop an individual game and to support the engine. I’d rather put effort into increasing the functionality that VASSAL can provide at zero programming cost, and to decrease the programming effort necessary to produce a program that meets people’s expectations for a commercial desktop game. I’d like to get to the point where a game designer with no programming experience can put together a high-functioning computer game with individualized look and feel, inline documentation and a multi-platform installer. The designer should then be able to visit a web page to produce a commercial version of the module, offer it for sale, and let it go viral. It may take a few years before that vision come together, but the pieces are all in place. Stay tuned!

RF: VASSAL’s main users are wargamers and that is reflected in the modules available. Do you have any strategies for attracting more Eurogamers and Eurogame modules to VASSAL, or is that something you will let take care of itself?

RK: The way to attract more modules from a specific genre is to be sure that VASSAL provides an interface that’s natural for those games. Eurogames are generally close to wargames in the way players interact with the game, which is to say that most things are done by moving tokens around in a physical playing area.

Collectible card games are a bigger challenge. In a card game, the player’s hand or deck is the central concept, and the physical placement of cards isn’t always important. There have been some successful adaptations but it could be made to feel more natural. For example, the only way to hide your hand from other players in VASSAL now is to put it in a separate window, but it would be convenient to be able to have your hand be in the same window so you could easily switch back and forth. Miniatures offer another challenge in the way pieces often attach together and move as a unit, but don’t stack as in wargames. Actually, a new developer has recently written a solution for that, so that will be coming out soon.

RF: For a short period of time, a section devoted to the tournaments was working on, but at present it’s closed for reorganization. This initiative sounds interesting to me, and I’d like to know anything more you could tell us about it. How did the idea come about, and what will the next developments be?

RK: Unfortunately, the set of scripts for managing tournaments (which was a commercial product) had a security vulnerability and the sub-site had to be taken down. Producing the desktop software will always be the primary focus of VASSAL development, but it does make sense for to host a community that encourages people to discover new games. We’ve got some very cool ideas for integrating the desktop software with the website so that people can start the VASSAL client, see what games are being played, and download the module for a new game directly from within the client. If you collect more information, such as who’s playing what, then you can expose similarities between games and even give Amazon-style recommendations. This could become very useful for players and do a lot towards keeping them involved in the hobby.

I had no more questions for Mr. Kinney, but as usually happens in such circumstances, his answers switched on my mind with new ideas and curiosities.

I like to think of VASSAL as an unknown planet, populated by thousands of players who congregate in communities around specific games or projects, always marking out different gaming paths, creating new games, improving old ones, and more. Mapping all that sounded terribly interesting to me, so I designed a questionnaire to collect information about the socio-demographic features of the users (age, gender, nationality, occupation, etc) and their behaviour patterns in the VASSAL cyberspace. It would be interesting to verify whether continuity exists in the bonds between players, and whether this could be understood as a new way to create sociability on the Internet.

With such a survey it would be possible to take a census of the game communities, find out more about the services offered to the members of these communities, and verify the production of original contribution. How often, for example, are entirely new games and modules created? How often are older games updated? As some excellent examples of these VASSAL communities, we have the Frenchmen of the VASSAL Forge, with their original games; the Commands & Colors VASSAL Players League, with its ranking system and tournaments; and of course VASL.

This survey project met at once with the interest and co-operation of Mr. Kinney, who agreed to host it on the VASSAL website. Therefore, I would like to invite all readers to participate in this survey, filling in the questionnaire when it is posted online. Let us map the VASSAL planet!

© 2009 R.Flaibani