Hi HN,
I built this digital version of Tiao, a two-player turn based strategy board game. Think Checkers meets Go. It's free, runs in the browser, has multiplayer, AI, over the board mode and a lot of other neat things. The source is on GitHub (AGPL).
The game was originally designed by my friend Andreas Edmeier. He created the rules and has been playtesting and refining the game design for years. I built the website for it. The core in about 2 weeks using TypeScript, Next.js, Express, Websockets, and MongoDB. Fully dockerized, deployed on a Hetzner VPS with Coolify. Authentication with better-auth. Real-time gameplay, ELO matchmaking, OpenPanel analytics, and a fully functional achievements system.
Play it: https://playtiao.com Source: https://github.com/trebeljahr/tiao
Happy to answer questions about the tech, the game design, or anything else.
My hope is that more people will play this game because I think it is genuinely fun and would be cool to one day see people play this on a Go board or on their phones/computers.
Have a good one.
rytill4 days ago
Hey! I played against a bot and it was pretty fun.
Small suggestion: too many queues can make it very difficult to build up a network of players at first. I'd suggest, for now, lowering the amount of available time control queues so that two players who happen to be on at the same time are more likely to actually find a game.
trebeljahrop4 days ago
That is such a good idea.
I just looked at lichess and copied their time controls queue screen/options. But you're so right! I'm thinking which time control would be best for the beginning... 10 mins maybe?
rytill3 days ago
That’s the most common time control on chess.com according to this article: https://www.chess.com/article/view/time-controls-and-game-re...
It sounds like a good idea to me!
simplify4 days ago
Cool concept! I play Go, and it's extremely unnerving that all the good shapes you play in Go are essentially the worst shapes you can play in Tiao :D
trebeljahrop4 days ago
Haha yeah :D
Rendello4 days ago
Cool! I've tried (and I guess failed) to build two of my favourite combinatorial games: the ancient "Konane" and the modern "Shōbu". At least the latter's project taught me property-based testing in Erlang.
https://en.wikipedia.org/wiki/K%C5%8Dnane
https://boardgamegeek.com/video/482389/shobu/how-to-play-sho...
trebeljahrop4 days ago
I've never heard of either before but they look like a lot of fun :)
I like the video introduction on the board game geek site, maybe I should film something like this with my friend for Tiao and also put a page up there? :D
Rendello3 days ago
Definitely!
tajd3 days ago
I loved this.
A shameless plug for myself and my own investigations into the world of old strategy games - https://tom-dickson.com/blog/trias-game-investigation/ - was where I did an investigation into the game called Trias/ternii lapilli which is like an old version of tic tac toe.
trebeljahropa day ago
hehe shameless plugs are the best. You often get to find new stuff that way and something of the fun of a community like HN is to get to know about all the interesting stuff that other people are doing. Unless you overdo the shameless plugging ofc.
Also it's funny I remember playing this game you solved, but back with friends in high school during Latin classes haha but without knowing it's name.
Also the algorithm you construct for the AI is pretty similar to what Tiao is using as far as I can tell :)
scythmic_waves4 days ago
It's fun! I play some chess but I am not a natural at this game. I think I need an AI easier than easy haha
mrblampo4 days ago
Me too!
misbaua day ago
That's really cool I enjoyed playing that and love the look of it too.
lucy_hnatchuka day ago
A really nice game, just the thing to take your mind off things for a few minutes.
littlekey2 days ago
I thought I was winning and then the bot jumped 5 of my pieces to win D:
Good fun and a great new way to use a Go board to keep things fresh, thanks for making this.
trebeljahropa day ago
yay :)
play it with friends in real life
homeonthemtn4 days ago
I appreciate the tutorial. I thought it was well done. I'd love to see something like that in some board games I've played.
yashwi_3 days ago
Nice implementation. Out of curiosity, how are you handling multiplayer state sync?
For a board game like this I’d imagine sending move events and letting clients recompute the board locally rather than syncing the whole board every turn. Curious what approach you took.
trebeljahropa day ago
You can look at the repo to find out the details.
Essentially sending moves over web socket and the server having authority to accept/reject them to prevent cheating moves. Client updates optimistically and rolls back if server rejects/network times out etc.
smlavine3 days ago
Finally won a game against the Easy bot on the 9x9 board after around 10 tries.
Seems like if you want to force a win, you have to think about how to put your opponent in "Zugzwang" (to borrow a Chess term).
mylifeandtimes3 days ago
would be great to have a 'learner' mode where I could take back a move after the computer jumps 5 of my pieces :)
I'd also appreciate if illegal moves highlighed in a slightly less intense color, so we could see they were illegal. At the moment, when I'm hovering over the board, I don't know if a move is legal or not until I click-- and then it is too late!
gurjeet3 days ago
> ... 'learner' mode where I could take back a move after the computer ...
The 'Undo move' button does exactly that.
trebeljahropa day ago
was about to say that ^^
ymaws4 days ago
I can't beat easy, incredibly addictive game :)
trebeljahrop4 days ago
Yay :)
WillMorr4 days ago
Clever! I really appreciate how well done the tutorial is, it's just about the easiest game intro I've ever experienced.
trebeljahrop4 days ago
Thanks :)
trebeljahrop4 days ago
I put a lot of work trying to make it as smooth as possible. But there's still some rough edges I think, have to play test it more with friends, just the amount of different assumptions that people bring to a tutorial and trying to handle all of them without being overwhelming is such a tricky balance to get right haha
smlavine3 days ago
Very fun game! Has this been released before? This is the only place I can find that mentions it.
trebeljahropa day ago
no, this is new. Still in the process of making pages everywhere + submitting to Boardgames Geek and so on :) also my friend is contacting publishers so maybe this might exist as a real, non-digital thing soon too! (I mean it sorta does already because you can play this with a Go board)
zem3 days ago
great game and very nice implementation!
mock-possum3 days ago
Oh wow I am terrible at this
Nice implementation though, plays pretty well in n my little bitty mobile screen
gammalost3 days ago
Now I am interested in playing a board game that is not turn-based
oniony3 days ago
Yeah, I play a lot of board games and was confused by the explicit statement that it was turned based, as most board games are turned based and realtime boardgames are pretty exceptional.
Anyhow, off the top of my head:
* Galaxy Trucker
* Pendulum
* Captain Sonar
* Sidereal Confluence
* Kitchen Rush
trebeljahrop3 days ago
Oh true haha :)
I guess I just added this "turn based" phrase because it's online and for me felt somehow more descriptive of what it is, but you're absolutely right.
And now I also wonder what would a non-turn based board game look like?
I'll have to try one of those you recommended and find out :)
bdsa3 days ago
Magic Maze
Bananagrams
probably others from my shelves
trebeljahropa day ago
Bananagrams is fun.
I think Dobble is another example :)
ayazumi4 days ago
[dead]