One thing that’s becoming clear to me is that there’s a divide between “click things to advance the game state” software and “drag stuff around” software. Everything in the former category is an implementation of a particular game with total rules enforcement. The latter category are the virtual tabletops—not all of which are general systems (some are for particular games), but typically have incomplete to no rules enforcement. What seems not to exist are systems where you can drag around pieces that also have total rules enforcement.
I am not quite sure if you implying that VASSAL 4 can safely steer clear of trying to support both “dragging around” and “total rules enforcement”, or that the combination is a particular niche it could profitably move into.
What seems clear to me is that the more comprehensive a system is, the more likely it is to overlap with other systems that are cherished. It follows that if VASSAL 4 will provide a trusted dice rolling server and trusted deck management, then it should also be willing to integrate with third party servers and leave the choice upto the user.
Also since VASSAL 4 seems to be heading towards providing a “Total Gaming Solution”, I should ask about:
- Email notifications
- File storage.
I have actual constructive thoughts on this too. Obviously actually attempting to provide file storage would be insanity, but as far as I know: google drive, dropbox and discord are all used as file stores for online games. So you could have the ability to integrate with them.
For notification I believe email and discord are used. So I could see a possibility that when you set up a game in VASSAL 4:
- you optionally specify email addresses for the players
- you optionally specify a file storage location.
The flow has the option to play through the latest vlogs from a given game from the storage solution. Then when the player saves a vlog, VASSAL could automatically upload the .vlog file to the storage location and notify the other players.
This would help mitigate an issue I am having in a game where one player keeps forgetting to hit “reply all” and simply replies to the last player. Why should the last player notice there is an issue? The next player has no way of knowing it is their turn.
I wasn’t suggesting either one, only observing that one of the combinations seems to have no examples. My guess as to the cause is that to do it correctly, you have to be able to check if arbitrary input can be applied legally to the current state, which is going to involve something in the direction of model checking or theorem proving, and those are things your average developer will have zero experience with.
I don’t follow the inference here. I’d think that providing a trusted dice server would be reason not to integrate with other dice servers—otherwise what’s the point of it?
Note also that the code for integrating with other dice servers has existed for… a decade maybe? … but we haven’t been able to get anyone interested in writing a connector for a single one.
Notification is a good idea. (Many of the asynchronous turn-by-turn sites do notification that it’s your turn by email.)
As for file storage: Despite what you might think from V3, game data isn’t all that large and also ought to compress extremely well. (The V3 file format defeats both of those by being poorly designed.) I remember doing a back-of-the-envelope estimate once of how much there is in terms of saves and logs worldwide and concluded that the answer was Not As Much As I Though. It might actually be feasible to provide cloud log storage.
Integrating with other storage is going to be a pain, for the reason that integrating with anything is: You don’t control it. APIs change, new services come and old ones go. If you integrate with X, some people will show up wanting to integrate with Y, which is completely different in terms of integration… That’s not to say that I wouldn’t consider it, but someone would have to make a case for it.
Possibly cherished, but completely inaccessible. In 20 years of looking I have never once found a third party server providing a comprehensive, usable, externally accessible service for either of those tasks.
@slimy I’d like to have some examples of those systems so we know concretely what we’re talking about.
Not quite sure which systems you are referring to. I seem to have lost the thread since I was presented with evidence confounding my views.
However if you are intending to store vlog files, that does create an opportunity for preventing user errors I struggle with on a daily basis. (I would say with newer VASSAL players but at least one is famous for how many VASSAL games he has on the go!)
- They don’t step all the way through a .vlog.
- They don’t load the last .vlog at all and base off an earlier one.
- They present a .vsav when we require a .vlog so we can check the move.
- They do present a .vlog but they save it as a .vsav (having started from one), which causes confusion.
I try to mitigate this by requiring players to name their .vlog files with starting with a 3 digit index number. I am sure this saves a lot of issues but if VASSAL is going to own more of the flow there is an opportunity to have higher level actions such as:
- step through the .vlogs since my last move
- step through the latest .vlog
- step through the .vlogs starting with one I specify
Would the players even need to select a file name in this case? (Though I am sure you would want a fallback to the old ways.)
Speaking of fallbacks to the old ways, what if someone wants their files to hang around for a long time so they can analyze the game?
You said:
That’s what I was hoping you’d expand on.
This won’t be an issue in V4, but it’s out of scope for this thread. I’ll be presenting some design work in the next few weeks.
I was thinking of ACTS and dropbox and so on.
I probably have changed my mind. ACTS and dropbox suck. If you can come up with something better then good riddance.
I do contend however that probably VASSAL 4 will have issues at times and you should be able to fall back to the current way of doing things.
Also one thing ACTS (and discord, whatsapp etc) do is provide a one place log of the conversation around the game. Email is worse than anything at this and VASSAL chat is split between vlog files so is no good either.
This is a very recent one, a site for playing the Lord of the Rings LCG
Tech stack (copied from the github): Multiplayer online card game platform written in Elixir, Phoenix, and React. Drag and Drop provided by React-Beautiful-DND.
It’s not a generic tabletop! But I thought the drag and drop (React-Beautiful-DND) library might be of use. It works fairly well on tablets (I use it on iPad). He went to some trouble to offer a touch mode which is also a mouse mode, in that it adds a suite of explicit buttons that replicate the many keyboard commands.
The game state is serialized as JSON.
PS - Saying “TableTop Simulator has annoying 3d features” made my day. And it runs at 100% CPU for me, feels totally overpowered.
PPS - Dragncards was created out of dissatisfaction with OCTGN, by the fellow who maintained the Lord of the Rings LCG plugin for OCTGN for years.