Saturday, April 20, 2019

Thoughts on Emissaries and Chrome/Node Compatibility

So, I wasn't really thinking that the V8 environments in the browser would be truly compatible with node or chrome.  That leads to issues handling something like NPM compatibility.   Though I guess that is just what kinds of compatibility APIs I want to enable.  Some chrome compatibility shouldn't be too hard.

I'm wondering if it might be necessary for Emissaries to have dependency chains, and to have the notion of special Emissaries that simply implement libraries, like underscore.  Marshaling would then handle the import/export issues.    Of course, we don't have a DOM (though we might have a dummy DOM that we could do things with, perhaps even to the point of having a real DOM that could be displayed 2D in the world).   I've thought of doing odd things like porting QT (or even something as simple as TCL) to be able to run simple GUIs.  Really, supporting real web dialogs would probably be better.

I'm really just one person at this point and have to build in such a way that I can actually make progress, so obviously this is way out-of-scope for now, unless there are simple implementations that I can start with which can render into a texture in Unity.  I do need machine dialogs, and am thinking of the concept of an "App", which is a very special entity which is in your Active Inventory, which is something you can have as a HUD, or at least something you can bring up to interact with.

But, once I start writing Emissaries and their 3DOM interactions, I'll likely want a deeper environment than JavaScript, which I so hate -- I'm thinking maybe to do TypeScript instead, though I really would rather do webassembly, which is a bit of a mess right now as far as real Tool-Chains are concerned.  I can do C# (maybe), Go (maybe), and certainly Rust.

I have the hello-world, included in the box worlds and entity servers I wanted to build (A Virtual TARDIS), but still a bit up in-the-air as to what what platform I want to build them on.  They should be sufficiently standardized that I could build in C#, Go, Rust, Python, Java, or whatever.  I'm partial to Python and C# and want to do more with Go.   Rust and Java -- probably no.  APIs for them?  Maybe someday.

No comments:

Post a Comment

Random Thoughts, Some Progress

 Lots of work at work, so not as much time for projects. Smattering of thoughts:   Godot doesn't really seem ready for prime-time with c...