3 ms·
I will! I even have a video: http://jeffrey.io/AdamaPlatformInTenMinutes.mp4 http://jeffrey.io/AdamaPlatformInTenMinutes.mp4 And I'm building it as a SaaS whi
by mathgladiator 5y ago
I will!
I even have a video: http://jeffrey.io/AdamaPlatformInTenMinutes.mp4 http://jeffrey.io/AdamaPlatformInTenMinutes.mp4
And I'm building it as a SaaS which I've made available: https://www.adama-platform.com/ https://www.adama-platform.com/ for "early access".
I'm still trying to figure out how to explain it. Basically, take an IDL like proto/thrift. Then add in the ability to transform the data. Then add in a sense of privacy of who can see what. And boom, the foundation is laid for a document transform language.
The reason to do all of that is because the state of the board game requires a great deal of care. For instance, wouldn't it be great to offer Undo? What if you hook a socket directly up the document and then differentiate state changes after privacy checking?
Right now, it's a mess, and I'm forking efforts to work on a board game web ide where people can build board games online. Adama is the foundation for the IDE such that it starts collaborative from the get-go.
- ramses0 5y agoWith 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.
- Supermancho 5y agohttp://book.adama-platform.com/tour.html http://book.adama-platform.com/tour.html - The architecture diagram is broken =(