Hacker News new | past | comments | ask | show | jobs | submit login
Open-source tabletop board game simulator (github.com/drwhut)
286 points by notpushkin on Nov 28, 2022 | hide | past | favorite | 77 comments



I made the logo for that!

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.


Interesting! I am tech literate and TTS frustrated me and my group of friends so much we abandoned it.

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’m not a fan of Zombiecide or TTS. I think TTS would suit the Descent type games pretty well though since it be better for the minis.

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.


I've played similar looking games (Zombies!!) and while it wasn't terribly ergonomic it was definitely playable. It's important to use a good grid, and to lock things like tiles in places if you're going to be putting stuff on top of 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 was using the official Zombicide module, mind you, not some fanmade mod. We found it terrible to play.


Having played TTS and some official DLC, I can say that a well-made fan creation will beat the usability/scripting of official DLC almost every time.

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.


Odd, all I can say is that that hasn't been the experience of my friend-group, or my 50 year-old tech-phobic cousin. I haven't played the official Zombicide module mind you, I'm mostly sticking to games that are free in the steam workshop.


I tried one of the 3d tabletop programs during lockdown, it was terrible trying to use a 2d mouse and a 2d screen to interact with a 3d enviromment, I really don't get how people can prefer it to boardgamearena.com


It's nice in a SteamVR environment


Tabletop Simulator in VR is a terrible experience IMO, interacting with cards and scripting is much, much easier with a mouse and keyboard than with VR. And it is really helpful in a lot of games to zoom out or zoom in on various things which is more inconvenient in VR.

I love Tabletop Simulator, but not in VR.


An open source board game simulator is nice and this project looks quite far along, but I wonder if it makes sense to make it physics based, by far this is the worst aspect of Tabletop simulator (the paid game) and it makes it really hard to play if you have any kind of impairment (visual, motor, etc).

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.


If you are interested in non physics-based game simulators, the open source VASSAL predates tabletop simulator by many years and has support for many games.

https://vassalengine.org/


This is really interesting, never saw that before. I've long been thinking of starting a hobby project for a general purpose board gaming rules engine. Guess it's already there!


If you are more interested in the rules/logic side of things there’s also https://boardgame.io/


As a person who has used VASSAL, there is a lot of possible improvements that could be made.


TTS is pretty solid IMHO. I rather like it. But this is interesting to me. Thank you. Have you used it to playtest a novel game?


I've made a couple of Vassal modules over the years, but of existing games, but yes, I could see it being useful for playtesting.


Wow, I had never heard of it, thank you so much for the link!


is there a android version? Because some years ago I played it with jobmates and it was great.


I don't use TTS because it is physics based... which makes it awkward.

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.


I'm pretty sure you could do a 2D one without all the checks you mentioned. All you need really is the ability to move things and change the z-index.


As a matter of fact, I am struggling to think of any boardgames which have a 3d component. I am sure they exist, but a robust 2d representation feels easier and would still be applicable to 99% of existing games.


Checkers traditionally does... but that's not a good example.

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


Ha, Axiom is certainly the perfect rebuttal.


Stacking mechanics happen a lot.


Stacking mechanics are typically where you want the engine to defy physics, though. For example picking up a stack of cards, the stack is typically treated as a single object rather than 52 individual objects that can fall apart.

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.


I was hoping to slide by with 2d + zordering, but by any other name, that is 3d.


Are you confusing "physics-based" with "non-turn-based"?

I don't really understand how the physics factors in anything you've described.


In implementing a physics based board game system, I don't need to program the rules of the board game, "just" the rules of physics. Fortunately, the rules of physics are fairly consistent.

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.


Are you confusing free-form 3D with physics? Why does tic-tac-toe require physic simulation? I am so confused by what you are trying to say.

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?


By having a physics simulation and models of the pieces for a game, two humans can play the game. The physics simulation requires no understanding of the game rules itself.

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... ).


> In order to implement a game without a physics simulation, it requires that the game state (rather than the physical state) be modeled.

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?


My apologies for any misunderstandings - I was using a the physics to mean a physics sandbox.

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.


If you think getting used to TTS is a pain imagine playing by moving stuff around in GMod or Blender.

Physics is helpful because it limits possible positions to those you would actually be able to produce in real life.


Go to Board Game Arena or https://www.boiteajeux.net

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.


What does any of this have to do with physics?


Imagine you + friends are wearing a VR headset/matrix/meta verse/whatever. You are in a simulated room with stack of board game pieces. The physics stimulates how the pieces interact with proscribing any particular rules.


I don’t think you need to worry about VR. I’m no game developer, but I wager to some degree, it’s probably easier to create your pieces in an existing 3D engine. And allow yourself to move them. Bit of code to randomise cards and you don’t need to worry about rules.


Is physics simulation required for you to enjoy the game? That is what auveair was asking 6 posts up.


> I wonder if it makes sense to make it physics based, by far this is the worst aspect of Tabletop simulator

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.


How do you even knock stuff over? Like the default lift height when you click on something raises it well above the other pieces or where it could really interfere with anything...


I don't remember the details because this more than one year ago or maybe even two, closer to when the pandemic started. I do remember things getting knocked over, moving all over the place, shifting in unexpected ways, etc.

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 don't think I've ever knocked anything over in TTS, nor do I know how that would really happen. I've never changed any settings.

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?


I experienced these problems with Zombicide. It left such a bad taste I never bothered to try any other module. Maybe it's just Zombicide?


The nice thing about having a physics sandbox is that you can implement better interfaces on top of it using scripts, while still having the full flexibility to go outside the rules if your group feels like it. It's possible to implement a more accessible interface for pretty much any game you like.

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!


But taking the resource cards is the best part of the game (especially on a good roll). Why would you want to remove that?!


I went to the Boston festival of independent games virtually the last couple years. You meet with independent game designers who show you/demo their games. It’s fun.

For virtual demo game prototypes the table top simulator was used a fair amount.

https://www.bostonfig.com/fest-homepage/


Its interesting you say this, since personally the physics are the reason I prefer TTS lol. Everything sorta moving like it would in a table makes playing so much easier once you get over the hump of manipulating the controls.

But then again my use case is mainly RPGs rather than board games.


Not a single screenshot on GitHub or on their website...


There are some on itch.io

https://drwhut.itch.io/tabletop-club


https://imgur.com/a/a9Ssvrx

It's still some pretty early software though, consider this more of an alpha I think.


Kind of crazy I can't find a single screenshot on the GitHub or docs pages…


Klick on the itch.io link within the readme on the GitHub Repository.


I would love to see this built for the web so that if I wanted to invite friends I could just send them a URL and they wouldn't have to install anything.


I recal that being among the authors goals. Godot does support compiling for the web, and they're being careful to use networking that can work from inside a browser.



Is this like roll20 but better?


Not quite there yet features-wise, but that's the goal!


Would be extra interesting if it could incorporate a rules engine, something like a Prolog to implementation rules for different games.


https://playingcards.io/ is a good tabletop simulator for card games. Can make custom decks and use their pre-made widgets.


It's got the same issue as tabletop simulator in that it's using the physics engine to sim everything. This would work well except you're using a mouse to interact with the game pieces and this feels clunky and you end up hitting other game pieces. This needs a way to set it so game pieces can set the collision group they belong to. That way for chess you can just move the chess piece without knocking over everything.

Good news is it's open source and Godot based so it shouldn't be hard to add this to the codebase.


Some of the audience here might be interested in https://www.yucata.de/en


Nice project, but I prefer to interact with boardgames using simple 2d interfaces and (most important) rules-enforcing.


Rules-enforcing is, in my experience, pretty awful. One person mis-clicks and it creates a bad experience. Being able to grab someone's pieces and show them how something works is very valuable.

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 my experience, most stand-alone software board games is rule enforcing. Not many versions of chess software will let you make illegal moves. Most card game software enforces the rules. Software that corresponds to a single specific board game frequently enforce its rules.

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.


To me, it’s the fundamental difference between a board game engine and a specific board game app.

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.


But it depends on how crazy your house rules are.

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!)


Mis-clicks can be handled with an "undo" function. I like to have the "undo" option available until my turn ends. But imho the system should allow only available and permitted moves at each turn.


Love it, I want to stop working today to test it!

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!!


Tilt5 is just about the most exciting thing in in the entire gaming industry to me and that holds doubly true for anything tabletop. They took the Auggie Award for "Best Game / Toy" at AWE (Augmented World Expo) this year and everyone was raving about the experience. The founder is a great person with a great story and I can't wait for them to get out of the Kickstarter phase and see t5 bords everywhere.

[1] https://www.tiltfive.com/


Care to comment a little more about what it is and why it relates to this post? The link you provided is super ad-talk filled and very low-content, turned me off immediately. And your comment sounds suspiciously like an ad, though I hope that's accidental.


This is the work of Jeri Ellsworth who's a fairly well known experimenter, tinkerer and inventor in hacker circles:

https://www.youtube.com/@jeriellsworth/videos

https://www.youtube.com/watch?v=fZ9a78USRIk (skip to 2:30)


Looks like a good alternative to Tabletop Simulator. Just needs LUA scripting or something comparable and it could completely replace it


All the tabletop-simulator LUA calls are pretty well documented, so I don't think it would be too much of a stretch for someone to literally implement tabletop-simulator compatibility (aside from it being a bunch of work).

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.


Any video to see how it looks like?

EDIT: there's some screenshots on https://drwhut.itch.io/tabletop-club


Oh, nice to see things like these as open source.

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)...





Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: