$15.00
$30.00
$5.00
$20.00
Recommend
16 
 Thumb up
 Hide
5 Posts

A Distant Plain» Forums » General

Subject: Automated Bot in VASSAL for ADP rss

Your Tags: Add tags
Popular Tags: [View All]
Bart de Groot
United Kingdom
Oxfordshire
flag msg tools
mbmbmbmbmb
I have been working on an implementation to run the bots as a script from VASSAL using the VASSAL module instead of a command line. It can be used for solitaire play, multiplayer play, or when a player drops out of a game.

My ADPBot currently has Operations and Special Activities (no event awareness) implemented for Warlords (yes, I started with the easiest faction), but with very little testing so far.

If you want to try it out, help testing it, report issues, have suggestions, you can find it here:
https://github.com/bdgza/ADPBot

I want to continue with implementing the other factions, and possibly adding event awareness, so the bot knows when to play an event and how.

First I am going to be working on FS with Michael on his Falling Sky bot script. I am implementing the same VASSAL extension for FS as I made for ADP, and updated it to run both JavaScript (which I use) and Python (which Michael uses). See: Beginnings of an app for FS - bot.

13 
 Thumb up
6.01
 tip
 Hide
  • [+] Dice rolls
Vez A
Germany
Kiel
Germany
flag msg tools
mbmbmb
Wow, Bart, great stuff!

I know the advanced basics about creating modules in Vassal. How technically difficult is it to programme the bots in your Vassal extension?

Would be cool to create an extension for the upcoming ADP alt bots ...

Edit: It occurred me to view the code on Github. I've got some familiarity with programming so it wasn't complete gibberish to me. Still, it would take a good while for me to get comfortable with the expressions used in the language.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Bart de Groot
United Kingdom
Oxfordshire
flag msg tools
mbmbmbmbmb
masil wrote:
I know the advanced basics about creating modules in Vassal. How technically difficult is it to programme the bots in your Vassal extension?

Would be cool to create an extension for the upcoming ADP alt bots ...


The VASSAL extension just provides the interface between the VASSAL module and the bot script. The bot itself is written in the JavaScript files inside the VASSAL extension. If you want to write a different bot implementation (or do something completely different) you can simply copy the .vmdx and swap out the .js files inside for your own code.

Of course this is still in early development, so some of the foundation could still change. Especially with changes I have to make for FS.

You would have to open the copy of the extension and change the id, so multiple AIs don't conflict.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Bart de Groot
United Kingdom
Oxfordshire
flag msg tools
mbmbmbmbmb
masil wrote:
I know the advanced basics about creating modules in Vassal. How technically difficult is it to programme the bots in your Vassal extension?

Edit: It occurred me to view the code on Github.


I also posted the Java code that provides the interface to the bot script:
https://github.com/bdgza/coin
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Craig M
msg tools
mbmb
I would be interested in doing something similar, or joining this existing project, but I am not familiar with js or python.

It might just reflect my ignorance of the scripting approach, but I would have thought the whole exercise could be conducted in Java, to avoid the need for switching languages and writing files during the bot's calculations of what to do next. Java could also provide easier access for moving the pieces around within Vassal - maybe the bridging code you have written already achieves this? I glanced at your code, but I am yet to analyse it in any detail. My understanding is that your code currently reads the game state from Vassal - does it also know how to modify that game state?

The main issue I see with a project of this nature is that GMT and the game designers would have to give the go ahead before the code could be shared. On the other hand, a good automated AI system could make the solo game much more appealing and ultimately lift the profile of the COIN system. The extension could be configured to run as an aid to a physical solo game - the only real difference I see is that card draws and die rolls would have to be entered into Vassal, based on what the physical draws and rolls produced, whereas a purely digital version would use the built-in Vassal randomiser.

I also commented on the FS thread, but I am yet to get a response.

If the designers wanted automated testing of bots for Pendragon, prior to finalising the flow charts, that could also be an interesting project.

 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Front Page | Welcome | Contact | Privacy Policy | Terms of Service | Advertise | Support BGG | Feeds RSS
Geekdo, BoardGameGeek, the Geekdo logo, and the BoardGameGeek logo are trademarks of BoardGameGeek, LLC.