(Newbie asks) Is my idea possible with Vassal?

This is my first post and I’m not certain if I’m posting this in the right place, so please move it to where it is appropriate.

First of all, I have just started trying things with VASSAL and kept trying for 3 days (read: messing about, getting to know it better). I have a game in my mind, I have already made the map and pieces, dicerolling works, I have done planning phase (a.k.a written everything in my notebook and planned time and resources).Of course, the game is not finished, yet. Not even close.

There are a few things I would like to know, if someone tried them before, could they be done etc. I have searched the forums already, but I guess my Search-fu is not on the level :slight_smile: .

Anyway, the background first, then the questions.

The module/game description

Hexgrid map. Turn based game, two or more players. The players don’t see enemy pieces unless they “scout” the hex or send their own pieces there.

There are certain hexes on the map which are “Towns”. Towns spawn tokens/units every turn- units are spawned only in towns. Towns also produce certain amount of gold each turn and fill their player’s treasury. Player can choose which pieces each of his towns will spawn but cannot choose to stop spawning units. Each unit has an upkeep cost which gets taken from the treasury at the start of the turn. If you don’t have enough gold to pay upkeep for all units, then you have to choose which units on your side to discard and they’re gone forever. If the player captures enemy Town, they get some amount of gold for capture.

The tokens/pieces can stack on the same hex. If other player’s piece moves to already occupied hex, then that hex becomes contested and the fight starts. Right now, that is done by rolling dice and certain modifiers (total hitpoints, agility etc) add to dice rolls. Think Risk with adding and subtraction. I want to do it the other way. Please see the questions under number 1.

Every unit has move variable and thus limited movement range. When the player moves the unit to another hex, move gets smaller until it goes to 0. Move refreshes each turn. As far as I could find. That is doable, people have already done it before(I’m looking at you Warhammer40k mod).
There’s also a special unit on the board, called Queen. If the Queen dies, game over for that player. His all towns go neutral or to the player which killed the Queen. If the player loses all Towns and his Queen is still alive, it’s not over yet. That player can still take one of opposing player’s towns and keep generating money. Otherwise, a few turns later, the player without towns won’t be able to pay for queen’s upkeep and puf, the townless player loses. See questions under number 2.

There are two possible victory conditions. One is to capture all the towns and kill everyone, the other is via diplomacy, to be in alliance with everyone (think Civ series of games). Now, finally, for my questions:

  1. Is it possible to have a sort of real-time fighting in contested hexes? What I mean is this:
    Player A sends 20 units of type abc and 10 units of type xyz on the hex of Player B. Player B has 2 xyz units on the hex. Truth is, unless player B has extremely lucky rolls, player B is losing that fight. But B might also win, not by skill, but by pure dumb luck.
    What I want to do is this: Player A’s units come to contested hex, Player B gets the message (off-turn, because it’s player A’s turn):
    “Hex is contested. Do you want to fight?” If B says no, game rolls dice behind scenes and that’s it.

If B says yes, a new browser window opens. And in that window is completely different, RTS-like game (maybe java applet or a flash game, I don’t know. Or maybe another turn based game, only with squads?). After the fight, vassal gets the results from that external page. Can I do that? Have VASSAL read from an external data repository? Would it go against cross-site scripting? Could I publish a VASSAL module and the “fighting mini-game” on the same site and have data in the shared place?

  1. AI players. Do I make an AI player who reads other players’ logs and reacts appropriately and how would I go about it? Read all known data about player(s) from the board which is known only to the “GM” who sees everything from every player and shows what is appropriate to each human or? How else? In which VASSAL part would I put victory conditions and how to regulate if the player gets the turn?
    Should I just add check, player’s Queen is dead, you don’t get turn this time? Where would I put that piece of logic in VASSAL?

P.S. Java programming is not going to be problem in a few months. Just need to find out more about VASSAL’s classes and objects and how they work.

Thanks for your help.

I can’t answer your questions regarding Vassal, but there probably have been numerous computer games made that follow the general outline of what you describe. What you describe is typically referred to as the “4X” genre of computer strategy games, which stands for “eXplore, eXpand, eXploit, and eXterminate”.

The most obvious one I can think of is an older game that was very popular about 20 years ago, called Empire, or Empire Deluxe. The newest iteration of this game can be found here: killerbeesoftware.com/
Take a good look at this one, because it seems to come very close to what you’re describing. Although I’ve only ever played older versions of this game, this newer version seems to be almost infinitely customizable.

There are others, from the popular Civilization series, to the Master of Orion series, and probably many others that fit the 4X description to some degree.

One thing I can tell you about Vassal is that it does not have any AI options. You cannot make Vassal perform any player moves. Other respondents will have to answer your questions in more detail.

Thanks for the quick answer and the link to killerbee software you gave me. I’m a fan of Dungeon Keeper and I didn’t know about Empire Deluxe, so I appreciate it :slight_smile:. In fact, Dungeon Keeper 2 was one of the inspirations for “second window”, the ability to take over one of your minions and get into battle in 3D shooter environment is the one I haven’t seen used in RTS since. And there’s even a map editor for Empire Deluxe! I’ll check it out.

As for AI options, I saw that there are not default AI options in VASSAL but I thought that I might be able to make an AI of my own by using scripts, MoveTokenToPosition() commands etc. On these forums, I saw some mods which use scripts for setting up the board automatically on pressing start button/ “gluing” the pieces onto the center of the hex if a player leaves it hanging on the edge etc. I thought that a certain scripts could be called when it’s “AI player’s” turn, but there are better than even odds that I’m wrong and it is impossible. :slight_smile:

Anyway, I’m not giving up on VASSAL yet. I’ll see if there are more answers or what I imagined is just a fevre dream. Thanks again.