Hacker News new | ask | show | jobs
by mathgladiator 1471 days ago
If I could only get my priorities straight and stop building the distributed system (I'm close, I swear), I'm building a digital version where people can build online board games.

Since the rules can be exceptionally complicated, I invented a new language and database idiom to deal with the backend aspect. https://www.adama-platform.com

1 comments

Interesting concept. I found the page to be a little confusing. You mean you made a language and db to program board game rules? What does the language and db offer that is uniquely helpful for those tasks? Is the db relational?
The language operates on a document model, so the memory model is a document.

A key language aspect is await/async semantics for asking users questions like "which piece would you like to play". While using async is not unique, the document memory model is transactional such that the async messages can be rewound. This allows a single incoming message to translate into exactly one data differential which means now the entire experience can be done in spite of machine failure.

When I was writing games with JavaScript await/async, it was a giant PITA. First, either the transactional boundary was too large and I had to replay an entire round while testing, or I had a lot of bugs. And bugs were exceptionally common which require building a lot of framework.

The database is basically how to productively work within the document, so the primary collection is a table which has basic integrated SQL. I haven't had a need for joins yet, but I plan on them in the future.

Good but the pictures on your website are not attractive specially if you are trying to promote.
Oh, I know. Let's just say that glad I'm basically retired.