I'm starting to plan a new "PBEM" game with simultaneous turns resolution, kind of Diplomacy or Dominions 3, but with a fantasy theme, more like Warlords or Age of Wonders. I stress that it is a new game, not a Vassal module, but since I need to resolve some functionality that Vassal already provides, I hope this is not considered too much off topic here. I would be glad to ask this in another more appropriate forum if someones point me to it. Its code will be open source and, even when I'm planning to develop only for desktop, I want it to be easily portable, so I've chosen libGdx framework. I don't want to depend on any of the cloud services offerings like Google Play Services, no matter how free. I mean with respect to APIs, not hosting, I'll have to most likely host some kind of server in some place. I've put PBEM between quotes because it's not strictly by email, but resolving the turn when all players have sent their commands by whichever means. So my question is, how should I provide for connectivity and data sharing between the players, considering both desktop and mobile players in the same game "room" ? Most of what pops up on my searches refers to networking in real time MMOGs, not turn based for a handful of players. So far I've identified three possibilities:
- Central server with rooms: This is what VASSAL does and I guess this would be the easiest to implement.
- One client starts and host the game: This is what Dominions 3 does, but it relies on manually sending and receiving by mail and copying into a specific folder the data files. I don’t know how to connect the players with each other, beside some kludge like connecting by POP3 to one predetermined email account and parsing the messages.
- Peer to peer: This would make it hard to keep the players synchronized, because the game is not meant to be deterministic but provide some randomness, encounters for example, so all clients must process turn orders in exactly the same way, so doing it in a central server is likely a better idea.
So, could somebody share some advice about how to design for such requirements ?
Thanks all !!
PD: In case somebody wonders why such a game, there is about a dozen nostalgic old RPG table top gamers who burned saturday evenings in the early 90’s playing Dragonlance. Today they are scattered in three countries, with full time jobs and children. This game would allow to play small 10 minute turns every 2-3 days, even while commuting, enough to keep the role playing spirit alive.