Thursday, February 7, 2013

Mongoose + VOS Controller = Win

Hey, I know I am supposed to be working 100% on getting the demo of my game out so what follows is probably wrong ... I got up early this morning unable to get back to sleep and I ripped the Vault-OS controller code out of my previous build and was able to compile it in with Mongoose. It was just an experiment to see if it would work and it did. Around 212 K (!), I could likely get it to compile under DOS if I wanted to using my cross-platform sockets library. There is so much power packed into that 212 kilobytes executable that it is hard to put it all into words.

Mongoose comes with SSL, Lua Server Pages integrated and SQLite so it is a complete web server in it's own right. If you add my little piece of code to grab incoming hardware data in JSON form and make it available to any web page for sensor control you have a system that is already much more sophisticated than my last working version of VOS code. Once you are using Lua successfully you can attach any other .DLLs you need to your Lua scripting functions and make them available. This is already much further along than I was able to get VOS as of last October when I quit working on it and went full-time on my game.

I have written tons of little scraps to display real-time embedded controls using Javascript that port right over into this setup so my idea of using this as a portable format for controller graphics was a good idea.

I had considered Mongoose in the past as the foundation for VOS but my existing web server code was tighter and more integrated. Once I saw the guy had compiled in LSP pages along with SQLite I knew I was going to chuck the VOS web HTTP server when I got around to it and replace them with this. I did it this morning just to see if it worked and am looking at a VOS page right now on my development machine measuring CANBUS data.

My IndieGoGo campaign for VOS will have to wait at least a few months until after I get the demo of my game out and have finished all remaining scenario work.


samhuih said...

I was formally posting here as "Sam". I don't care much for organizational I.D. but I like your site so I bit the bullet and got an I.D.
I wonder if you're not sacrificing a usable Vault-os to some near unobtainable perfect Vault-os?
I notice you mention that it would fit on a floppy. That's nice but couldn't a boot floppy be used to redirect to a usb drive or CD? Not perfect but usable.
You can't put much of anything on a floppy. Well maybe you can but it might take until the heat death of the Universe to optimize it to be useful.
What happened to using the PVBROWSER library? It seems really impressive. With it's interface and drivers should make things easier.
I guess what I'm trying to ask, in my round about way, is could you release a non-perfect something as opposed to a perfect nothing? Thanks for all the great work you. Hope you take this the way It's meant as being constructive criticism.

Texas Arcane said...

Yes, I have wasted a lot of time trying to make it perfect before I release it. I seem to have this problem with everything I do.

I have tried to make it so simple, so generic and so universal that fixing it, installing it, replacing it is not a hassle. I have wanted it to be so vanilla it runs on thin clients tasked as PCs, under DOS, on Linux minimal installations, in Windows lite, from a USB, a floppy or whatever storage medium you can find to put it on.

The hardware I have tried to make something that can be rigged off a serial port/LPT/USB from commonly available parts you could get anywhere for CANBus, I2c and simple relay control.

PVBROWSER is brilliant, but it is 100 times more complex than it is convenient for a post-apocalyptic survivor to install, configure and use. It is massive overkill for a problem than can actually be solved in 212K as a single executable chunk. I got a ton of good ideas by compiling and studying the PVBROWSER code but what is really required is just 1% of that paradigm they are using for it.

I would really like to release what I was just blogging about, throw it out there and let others fix it up. As soon as I get some time I want to organize this. I think my paradigm is now perfect but the code (and Lua script) could use lots of work.

I am hoping that if I run an IndieGoGo campaign I could get sufficient interest for me to work several months on it to bring it up to release version. Most of this time would be spent on building real world examples and sample setups in Lua scripting.