Open-source tabletop board game simulator
github.com
github.com
I play tabletop simulator (a steam game) with friends at least once a week. Especially during covid it was a great solution (with some rough edges and a somewhat prohibitive cost if you're trying to get 6+ people involved). I found that it worked surprisingly well with my tech-illiterate family. We could help people out when they got confused by grabbing their pieces, or pointing at the board, and if someone made a mistake the game doesn't lock you into it you can just move the pieces however you need to. That last part is something that's sorely missing in digital editions of board games.
I think the world really needs an open source tabletop-simulator, and while tabletop-club isn't quite there yet I'm really hopeful it will eventually surpass the "tabletop-simulator" game on steam. If you know your way around Godot or game-engines I highly encourage you to contribute to this project! I think it's legitimately important, as even my tech-illiterate family can grasp the concepts quickly. Much quicker than they grasp normal desktop metaphors.
It's also has a lot of potential as a tool to experiment with skeuomorphic interfaces and concepts like the ones in dynamicland.
Also personally I think that this has some interesting VR applications, as "desk scale" VR/cooperative-environments have a lot of potential for bridging the divide between full scale VR and regular computers.
We tried playing Zombicide, and we kept grabbing the wrong minis, or knocking stuff over, and the UNDO feature occasionally destroyed the state of the game. We spent more time battling the UI than playing the game. This was more than a year ago, so maybe these rough edges have been solved now, but they were bad enough to drive me nuts and so I ditched it.
I doubt the UI has improved very much honestly. Maybe the pieces you were dealing with were just too small, or you were zoomed out too far? While things can occasionally be a bit finicky to grab we've honestly never had those kinds of major problems with it, although we mostly stick to simpler games like catan and dungeons-and-dragons.
I found it best to search the Steam Workshop for the most popular version of the game I wanted to play. I also personally prefer "Scripted setup" games which automate a lot of the setup, though I know some people prefer the more tactile setup.
I love Tabletop Simulator, but not in VR.
But for most other games, there are much better web based implementations that work async too. BGA is probably the largest collection overall. But there are quite a few others if you are more interested in heavier games like 18xx, Splotter games. VASSAL works pretty well if you are into GMT. Some free to play sites specialise in Euros.
The 3D is great if you have cool minis but otherwise most board games are better off with 2D implementations. It’s also more accessible.
Which is kinda sad, because turn by turn board games are the best for those kind of players, but there are no open source 2D board game software that I know of.
I'm not disabled, but it was just as painful for me to play on TTS anyway so I don't really understand the appeal.
For example in TTS there's a Catan one that's particularly good. It randomizes and sets up the board for you at the start of the game with a single click. It will do stuff like automatically distributing resources to players based on the dice roll, which drastically reduces the amount of fiddling around with cards. I actually prefer playing Catan in TTS to the official PC port!
Definitely. Tabletop Simulator is (or at least, was about a year ago) so bad at this it was deemed unusable for my gaming group. Everyone kept knocking things over, which hilariously happened way more often than with an actual boardgame with physical pieces! It felt like playing drunk, but without the alcoholic fun.
In my opinion, if something like TTS doesn't work "out of the box" (no tweaking, no fiddling with settings) it's not a different enough experience from a clunky computer game, precisely the kind of thing I'm trying to get away from when playing board games...
I always recommend TTS as exactly what you say it's not - no tweaking, no fiddling.
Interesting that our experiences with our respective groups differ so much! I wonder what the difference is - maybe the types of board games you played?
That said... having it be "physics based" means that you don't need as much game rules implemented in computer logic compared to human logic.
Consider the code for writing tic tac toe without a physics model. You've got valid position checks, win condition checks and so on. It's not bad (its tic tac toe), but its something that needs to be written by someone.
In a physics based tic tac toe, you've got X and O and a # board. If someone plays a wrong move you say "dude, you can't do that." When you win, you say "tic tac toe, three in a row, I win."
This allows a physics based model to implement a lot of game logic in meat space rather than in game code which in turn means that it can be made available more rapidly and doesn't need a programmer to convert game rules into business logic into code.
---
I'd also suggest checking out https://www.yucata.de/en (and other similar online systems). No, its not open source - its server hosted... but its really well done.
Playing virtual poker, you probably don't want to have to manually manipulate individual poker chips or move around wobbly stacks of chips (yes that can be fun in itself, but there will be someone who struggles to move their chips around intuitively and inevitably delay the actual game at hand).
Having said that for games like virtual Jenga, you absolutely DO want to keep those wobbly blocks of wood.
The entire Icehouse set of games. https://www.looneylabs.com/rules/icehouse (see especially Zendo - https://www.icehousegames.org/wiki/index.php?title=Zendo )
There's a genera of games that I'm quite fond of. Pueblo https://boardgamegeek.com/boardgame/3228/pueblo and Aztec https://boardgamegeek.com/boardgame/1071/aztec are two of the ones that I'm most fond of in that because of the abstractness. I've also got a first edition Santorini somewhere ( https://boardgamegeek.com/boardgame/194655/santorini ). Cityscape is another one that I'm quite fond of ( https://boardgamegeek.com/boardgame/4980/cityscape ).
https://boardgamegeek.com/boardgamefamily/5607/components-3-...
These aren't necessarily games that "everyone knows" - but it is a very rich subset of games with a lot of interesting entries.
And if you really want a head scratcher... https://boardgamegeek.com/boardgame/820/axiom
I don't really understand how the physics factors in anything you've described.
These are 2D web based implementations with some remote server to sync moves between players. All the rules are written as code that gets validated. So you don’t know how to play a game before hand. You can skim the rules and use the game to learn.
TTS sometimes requires you to sometimes know how to play. So you can move some 3D widget to the right place. They get around having to coffee the roles by forcing the players to know how to play.
The same physics based system to play horse world, tic tac toe, or chess would work - its just about managing different models of objects in the world.
This implementation of chess ( https://youtu.be/XwHOH-C-4vA ) doesn't understand chess - its up to the human players to play it.
That it is a 3d physics simulator it allows humans to interact with it in the same way we would interact with the real world pieces.
There is no rules management / engine in the physics model preventing an invalid game move or determining when someone has won the game.
This is why its "easy" in that you just implement the physics engine, introduce the models into it and let the humans play the game.
If, however, you wanted to implement a game without the physics model, you would need a more complete model of the game state because you aren't using the 3d placement of the pieces and the humans to model it for you.
If you were to implement Ponte del Diavolo ( https://www.yucata.de/en/Rules/PonteDelDiavolo ) without physical pieces to place, how would you do that in a non physics system? Using that same game system could you implement Tally Ho! ( https://www.yucata.de/en/GameInfo/Halali ) or Sudoku Moyo ( https://www.yucata.de/en/GameInfo/SudokuMoyo )?
With table top simulator working off a physics model, ponte del diavolo is a board and two different types of pieces in two different colors. Tally Ho! is seven tiles (of various counts of each) and Sudoku Moyo is a board with nine sets of pieces with the numbers 1 through 9 on them (one in one color, and four sets in two different colors each).
The physics version of the game doesn't require a model of the game state, just the game pieces for two humans to play the game against each other.
Putting objects in a location in 3D space is not physics.
The only physics I see in your video is to make pieces bounce off of each other once taken off the board. Is that really required to play the game?
In order to implement a game without a physics simulation, it requires that the game state (rather than the physical state) be modeled. It is that modeling of the game state and the permissible moves that requires much more work.
An implementation of Blood Bowl in Vassal ( http://www.garykrockover.com/BB/ ) requires more modeling of the game and its rules than the corresponding physics simulation in TTS ( https://steamcommunity.com/sharedfiles/filedetails/?id=23365... ).
This is obviously wrong, unless you mean "sandbox" every time you say "physics".
For example, playingcards.io is a sandbox. It allows everyone to move cards around at any time, and players can use whatever rules they want. It has no physics simulation. Is this what you mean?
https://en.wikipedia.org/wiki/Tabletop_Simulator
> Tabletop Simulator is an independent video game that allows players to play and create tabletop games in a multiplayer physics sandbox.
> ...
> Tabletop Simulator is a player-driven physics sandbox, without set victory or failure conditions. After selecting a table to play on, players interact with the game by spawning and moving virtual pieces, which are subject to a physics simulation. Online multiplayer is supported with a maximum of ten players. Aside from spawning and moving pieces, the game includes mechanics to assist with common styles of board game play, such as automatic dice rolling and hiding players' pieces from one another; other mechanics aid in administrating a game, for example saving the state of the board or undoing moves.
Physics is helpful because it limits possible positions to those you would actually be able to produce in real life.
For virtual demo game prototypes the table top simulator was used a fair amount.
But then again my use case is mainly RPGs rather than board games.
It's still some pretty early software though, consider this more of an alpha I think.
Good news is it's open source and Godot based so it shouldn't be hard to add this to the codebase.
I really don't understand people who want rules-enforcing in their board game engine. Rules-assist sure, tell me where I can put those pieces according to the rules, deal out cards automatically, all that stuff.
Why do you want rules enforcement?
In plenty of cases this can make for a smother experience. Preventing players from accidentally moving out-of-turn, ensuring that easily forgotten triggered actions actually trigger, ensuring people don't accidentally play a card face up when it should be face down due to clunky or unfamiliar simulator controls, and automatically updating any form of counters (hit points, victory points, round marker, etc) generally just help the game flow smoothly.
This is not without some potential downsides. Being able to temporarily not enforce the rules can be very useful in teaching, or to allow fixing some dumb mistake by consensus. I don't see a problem with allowing rule enforcement to be disabled, and actions taken that would normally not be allowed.
But there is no need for allowing illegal actions to be the normal mode. Those situations are uncommon enough that toggling some setting to allow them to take place is not unreasonable. The main case where it would be fairly inconvenient is if one wants house rules, in which case having to mode switch every time the house rules diverge from normal ones. But in that case the better option might just be to edit the game definition anyway.
I will admit that for many stand alone software versions of games, one of the major reasons allowing for rule violation actions is uncommon is because it would be difficult to enable it. The game just wont have UI for such actions, and coding one up can potentially be a ton of work. At best you might get some form of limited state editing that is a slightly polished version of the developers debugging tools. But when running in TTS or similar, these concerns are much less of an issue.
If my family plays a physical game (such as Ticket To Ride) with a crazy house-rule, I would have every expectation to play a Tabletop Simulator version of ticket to ride with my own house-rule, but I’d have no expectation that the Ticket to Ride app would allow that.
That’s why I generally prefer the generic board game engine with rules assistance built in, over the custom app (even though the custom app often has a nicer, more polished UX). I’d prefer to be able to draw outside the lines if I want to.
It certainly would not be shocking to see some (scripted) Ticket to Ride implementations on TTS-like platforms to have say aggressive auto-snapping when trying to place trains (to help keep things neat and legible, as fine placement control in game is far more difficult than IRL), which may hamper a house rule that adds a new route not marked on the board (as pieces could snap to a different nearby route).
Alternatively it may instead have some feature to automatically place trains of your color (from your designated stash area)) along a selected route, without otherwise restricting placement, but that might still make certain house rules rather inconvenient in comparison.
Or on the cards side, it would not be at all shocking for some scripted implementations to automatically handle some aspects of the face up drawing pool. But of course, this won't necessarily mesh well with house rules that vary the size of the pool.
Unscripted versions may still be slightly inconvenient if pre-provided zones are used that don't match up with what your house rules want, but pure parts only implementations with no helpful pre-setup can also be obnoxious even if they are the most flexible. (And even then I'm not convinced that say someone's insane house rules involving train piece Jenga will necessarily work as desired!)
I love board games and I'm member of Megajuegos Argentina (megagames)
We host games for more than 35/50 people and we needed something after the pandemic and to gather people from inner country.
I will be in touch!!
https://www.youtube.com/@jeriellsworth/videos
https://www.youtube.com/watch?v=fZ9a78USRIk (skip to 2:30)
Tabletop sim is developed very slowly (it seems to be mostly abandoned) and honestly has a lot of pain points, so this seems like an obvious place where an open source project can "embrace, extend, extinguish".
I think currently tabletop-club is missing the ability to download generic assets from the web though. The instant they do they can take advantage of all the existing tabletop-simulator online assets, which would be very exciting even if most of them are questionable from a copyright perspective.
EDIT: there's some screenshots on https://drwhut.itch.io/tabletop-club
Now, if I had the time (& game engine skills) to implement a multitouch table mode, with the hands residing on a per-user device (phone/tablet)...