4 ms·
With a little experience in this area, I think that a replay-log is the best way to go, possibly with some data "encrypted until revealed". eg: chess has algeb
by ramses0 5y ago
With a little experience in this area, I think that a replay-log is the best way to go, possibly with some data "encrypted until revealed".
eg: chess has algebraic notation and that allows replay, undo/redo, save/load, etc.
If you were to come up with some notation for chinese checkers... blammo, same concept.
The "replay log" doubles as a relatively expensive save-game format (re-run the steps).
If you're doing something like texas hold'em, you might do:
Deal @ 1 => "XX, YY"; Deal @ 2 => "AA, BB"; Flop "AH, 2H, 3S" ; Bet @ 1 => $12.34 ; etc...
...and then "materialize" the XX,YY things at the end, while maybe keeping individual + central records.
eg: 1.json => (XX==4S, YY==5H) // 2.json => (AA==6H, BB==7H) // central.json == union(*.json)
...multiplayer is hard, but some sort of replay-log of the messages is my current thinking of the only rational outcome. If you're looking to make an online boardgame IDE, then focusing on devising a game notation (which may include privacy) would be helpful.
- mathgladiator 5y agoMy language generates document changes that go inside of a replay log. I basically translate document layout + transformation logic into JSON changes which can be joined under JSON merge. The neat thing about basing everyone on JSON merge is that I have a way to deal with buffer bloat very easily with flow control.