Would love to see a multiplayer version of this game!
[0] https://prezi.com/p/p6evz0gdy5dr/ux-design-tips-for-product-...
First, let me start with the biggest drawback of using OCaml: it might prevent potential contributors from making contributions. That is very sad!
However, OCaml is the language I know the most. I use it at work and I'm very very satisfied with it. It's main strengths for me are its type system for maintainability, the tools around it (the lsp server, the build system dune, the autoformatter ocamlformat, ...) and the fact that it can compiles to Javascript! It also has some libraries of very high quality.
With a "single" codebase, leveraging the javascript ecosystem, I could make the compiler work as a statically linked binary, as a node script published on npm, inside a Tauri app, and inside a VSCode plugin. ("single" codebase in quote since I needed some specific code for each application, but the core logic is shared.)
For sure, the same could have been made with another language, but I knew OCaml, and knew I would have a pleasant experience using it for that.
(I even plan to rewrite the engine in OCaml. The engine was written in javascript quite quickly, at a time when I had no experience with largish projects. It is now very difficult to maintain and extend.)
Be sure to view page source.
Having modifiable source inside the html is a great idea. I'll still need to have a compile workflow to add image while keeping a standalone produced html file (and some other feature such as live-preview), but I'll definitely add this as a possible workflow.
This is one important thing for me: the produced file must be self contained. Even if images are included, they are embedded in the html file.
Does it replace identical expressions in the same scope? Like:
becomes ?EDIT: Or even crazier with function:
becomes (I ask this just out of curiosity. Even the "simpler" version is very impressive!)