Category Archives: Javin – X-Wing Simulator

Here we’ll describe progress with the Javin tactical display for the Fantasy Flight Star Wars X-Wing Miniatures Game

Javin: An update and possibly a name change

This project has been on the back burner for several months, but is picking up now that three MComp post-grads have been brought in to help 🙂 but the previous experience of these masters students suggests C++ is the most likely future platform. So, my own progress with Java (looking at an extension to VASSAL v3) is probably moot, but the C++ based 4th version of VASSAL (when it eventually arrives) might be better suited to this new approach. However, this might require a name change for the project; the J in Javin stood for Java after all.

Opinion on the UK X-Wing FaceBook Group about resurrecting this idea has been varied: One commenter, Allan, asked why we’d want to computerise a social, physical game when plenty of Star Wars video games existed already. That wasn’t an unreasonable question, but adding meaningful “single player” to any board/card/miniature game is a time honoured activity. Other responses showed support for the idea of being able to play/practice solo. Also, most Star Wars video games have been FPSs or Ship Sims, 3rd person combat MMOs and RPGs, or RTS games, and nothing like the X-Wing we know and love. That, in itself, is interesting, and leads me to think that a video game version of X-Wing turn-based dogfight style play is an underdeveloped concept; A.I. would make a big difference to the success of such a title, and creating a testbed for researching X-Wing bots would be a useful deliverable.

So, the aim of the project is now a C++ simulation (based upon the VASSAL implementation of X-Wing) that allows you to “play” X-Wing against a variety of bot opponents. Like VASSAL, it couldn’t have any copyright material, and wouldn’t be able to automate everything, such as special pilot abilities, etc, but might provide a simple opponent that goes a little beyond the web applet or the look up table for a basic A.I. that is available on BGG. However, augmenting the physical game, such as using VASSAL to reproduce “blow-by-blow” graphics to represent real games – here is one excellent example posted on FFG – should be considered. So, the ultimate aim of the simulator is threefold:
1) provide enough of a simulation of X-Wing to be at the level of VASSAL, but with rudimentary A.I. that goes beyond that provided by the current web applet. It would also be a testbed for further A.I. research.
2) Use AR to map a real tabletop game into the computer, by way of special tags on the base of each ship. This would initially just allow two human players to have their physical game tracked by the computer.
3) The two above combined for rudimentary single play, or the possibility of a computer aided/augmented game. This would use a projector underneath a translucent play surface to provide a projected HUD-style overlay for effects – e.g. damage, range, etc – similar to what is possible with VASSAL.

The obstacles are mostly the complexity of choice: Do I take a Focus or an Evade, or Barrel Roll? Knowing the opponent has a “Fat Han”, how would a bot guess where that YT1300 is going in order to block him with a TIE? This is why Jay Little was sceptical, when I talked to him about it a couple of years ago, and it has been slow progress working alone, or recruiting suitable students. However, I’d like the UK Nationals, one day, to have the top table be this interactive X-Wing thing, if only to have the game live-captured by the computer. Entering an artificial player in the tournament IS a pipe dream – Jay is right on that, for now at least! – because of its complexity. However, having the chance to play an Automated TIE Drone Swarm is a bit like Kasparov vs Deep Blue; likely for the droids to lose, but interesting to see how well they do. This is even canon; droids were fought against pre-New Hope and in the EU (The N64’s TIE/d anyone?), even though in Star Wars they weren’t as good as human pilots according to Wookipedia. The current students will start by investigating the first stage of simulating the same basic game play that VASSAL provides. Other features, such as the AR functionality will come later.

AR – Augmented Reality, which in this case uses a web cam to identify tags in order to ‘digitise’ the location of ships. Other applications involve overlaying data onto the real world; an example would be Google Glass(tm).
FFG – Fantasy Flight Games, producer of the Star Wars X-Wing Miniatures Game.
FPS – First Person Shooter, like Star Wars:Dark Forces.
MMO – Massively Multiplayer Online, such as Star Wars: The Old Republic.
RPGS – Role Playing Game, like Star Wars: Knights of the Old Republic.
RTS – Real-Time Strategy, such as Star Wars: Galactic Battlegrounds.

Javin: Reviving my desire for an A.I. Player for X-Wing

Originally posted on Team Covenant

I’ve been interested for a while now in Javin a projector-based visualisation tool for X-Wing, which would have several components ultimately:

1) A projector table to show off visualisation software, such as Vassal or a bespoke coded program.

2) Interactive table features to allow AR tags on ship bases to be recognised on the table as a hybrid computer/physical game interface.

3) Artificial intelligence opponents that could play either a virtual opponent or a physical opponent.

Sadly, the two students I put on this over 2013 were rather poor in delivering results, so the project was sort of shelved for a while. Anyway, I am now looking at Vassal as the main visualisation software, rather than creating our own testbed, because it has become ubiquitous in online play; the exceptional work in appearance and functionality of Vassal is well above anything that I could do in the short term. So, I am now looking at ways to modify/extend Vassal and/or the X-Wing module to allow asteroid and ship positions (x,y,ø) to be transmitted to an outside process for A.I. planning of ship movements. These would then need to be passed back to the settings for the AI. movement dials, ideally, but we need to be realistic. Many rulings and interpretations of pilot abilities and general implementation of movement would still require a human to apply.

Anyway, when (if!) I make any progress on Javin I will, of course, post it here.



I’ve been playing with Vassal basic editing, and come up with a ‘canon’ extra fighter, the TIE/d (Note, not the TIE/D which is the Defender. In this case the ‘d’ stands for ‘drone’). If you would like to run these, the important thing to do as ‘human’ players is to simulate a basic A.I. and have craft engaging in swarm (as in bot) behaviour; keeping apart, but pursuing the nearest enemy, regardless of ‘who’ is tactically best to attack. NOTE: This player should be immune to ‘Biggs’ despite the fact that this is not specifically mentioned on the card I created, as it only just occurred to me; this depends upon ‘how’ the Biggs Effect works of course. Also, on considering the weak A.I. of the lookup table (Part 1, Part 2, and Part 3) / Web Applet as a suitable model for the first version of an inbuilt A.I. that system ignores assigning Stress Tokens, because it would occasionally produce illegal moves otherwise; when a Red move came up and the ship was already stressed. There are two solutions to this:

  1. Allow the move, but stack up the stress counters, which would represent increasing confusion on the part of the bot brain and prevent actions until all had been cleared off.
  2. Update/extend the lookup table to account for occasional restrictions on movements, which would complicate the basic A.I. table quite a bit.

Pilot Card

Ship Token (with stats)

I’ll include a download link here once I’ve finished the Vassal extension and tested it.

Javin – Java Battle of Yavin Tactical Computer

Repost from the Fantasy Flight forum

Shh, don’t tell anyone, but one of my Games and A.I. students and I are working on a Star Wars Targeting Computer bot to play/suggest moves for X-Wing. We feel that this is both canon – “Luke, you switched off your targeting computer! What’s wrong?” – and we’d like to honour this amazing game by creating an A.I. bot competition in the style of Robocode by providing a testbed to allow bots to play in the X-Wing Universe. We hope that making a computer version of the board game, as the first step towards opening this up for artificial intelligence would be both acceptable and of interest to Fantasy Flight and the X-Wing community.

If we get far enough along, we hope to “enter” our own attempt at a bot in the UK X-Wing Championships to be hosted at the UK Games Expo, assuming that this would be allowed. Here is a timeline of what we hope to develop, all of which (possibly apart from the A.I. module itself) will be open source:

1) Visualisation of pieces and board state, movements, etc, in the style of theStar wars tactical displays:

Star Wars Display

with inspiration from the following:

Star Wars Display 2


and the more recent Battlestar Galactica tabletop tactical displays:

battlestar Disp01

battlestar Display 2

The aim here to provide the ability for tournaments to have an abstract projected top down display of the game at hand with some automation in moving ships on screen to match the current board state. We would need some “nudging” to be able to make sure the display matched the board; e.g. If the ref says the X-Wing can attach the TIE, but the computer’s (never inaccurate) digital movement says no, then the physical game would have to take priority. Think Vassal module, but customised to enable the later stages. Clearly, at this stage the intent is to provide a way for a computer program to have access to a relatively accurate board position for ships, and have encoded their ability to move, etc. Fantasy Flight, I am hopeful that if you allow the Vassal mod then this is acceptable.

2) Automation of the movement and action phases of each ship type, subject to the previous “nudging”, including a representation of ship and pilot capabilities and game related stats to enable them to be represented on the display; e.g. TIE 3 has Focus, TIE chose Evade, Y-Wing has sustained 2 shield damage. Clearly, the Vassal mod has attempted to not breach copyright, and we would want to avoid similar infringements, but we would need to be able to simulate the complete state of the game, including pilot stats, in order to allow a bot half a chance to be able to “play” in the proper environment.

3) Library functions to fully automate a game of X-Wing in emulation, so that A.I. (that is Tactical Computer) bots – or should I call them ‘droids? – can play simulated games. Many artificial intelligence techniques require sped up automated games in order to evolve suitable strategies of play.

4) An A.I. of our own to test the testbed, which we would then play against humans to see how well it would perform. This bit, I think, we’d need to keep closed source. In the event that we actually get to (4), an ambitious and ridiculous dream, then Fantasy Flight would have to rule on whether bots would be allowed in tournaments. I’m hoping, at least as a special occasion, this might be allowed, if not in a regular competition.

5) Requesting from Fantasy Flight a bespoke ‘droid pilot card to be allowed official recognition. For example, a tactical computer, no matter how well programmed should (in the spirit of the franchise) not have Focus as an option, but should be very cheap (if not free) to buy; working on the assumption that the human player fielding it MUST abide by the program’s choices in battle for the ships controlled by it. The skill then comes in how well you have actually programmed your Tactical Computers. It would be assumed that TCs would be ship specific – hence the need for unique pilot cards for each ship type – but that the basic stats would be those of the ship’s reference card. The rating of the pilot would need FF to decide, but (for example) a bot would be very fast to react, but slow to target, which would suggest a low rating. Other balance issues, should the idea of a TC be one that FF like as an extension to the rules (even without a “real” A.I. playing, but rather a human pretending), might be extra evades, better target locks, etc, at the expense of the loss of focus.

Of course, (5) is pure speculation, but fun to consider. I thoroughly expect any bot to be much, much worse than an average human. However, the idea is one that (despite probably meaning a lot of work) really interests me. Please do comment, to tell me what you think. Would you be willing/scared to play against a ‘droid (” We don’t serve their kind here! … Your droids. They’ll have to wait outside.”) or should they never be allowed to play in tournaments?

One alternative to a low rating could be an average (middle range) or user selectable pilot rating, which would allow the programmer to decide between move first shoot last and move last shoot first strategies.

Some more reference images (DRADIS from Battlestar Galactica):





Clearly, we would be looking to get one of the art students to do a suitably Star Wars styled representation of the X-Wing ships, but you can see how a Viper (above) is similar to an A-Wing. This is to provide a “mood board” for conceptualising what the display would look like.

Got another canon precedent:

“TIE Automated Starfighter (TIE Droid Starfighter) produced by World Devastators in the comic mini-series Dark Empire I.”