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 .
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:
- Is it possible to have a sort of real-time fighting in contested hexes? What I mean is this:
Scenario:
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?
- 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.