Most of the slides from past presentations can be accessed from here.
JaHOVA OS is an open-source online platform that was designed from the ground up to be flexible and modular. The goal was to have on demand multithreading capability. The OS allowed for any method to be serialized and sent over to a WebWorker so it could be executed in parallel of the main application You could also load external scripts and connect up to the main OS via a "Thread Controller" (more on this later). To demonstrate this functionality I built a 2 player Networked 3D Game (really just a tech demo) utilizing WebGL, WebSockets, WebWorkers and Node.js called Omega Resistance v0.1
The results were great!
As you can see from the chart, when using the multithreaded environment my FPS never fell below 35FPS, but without the browser was not able to keep up with over 55% of all frames rendering below the required 30FPS. The full writeup of the results can accessed here.
With results that good, I figured lets push my design and just see how far we can go. Sadly, not much further.
JaHOVA OS was built to allow single or multi-threaded operation for basic web applications to complex distributed applications severed from the cloud. So once I started adding more complex code to the mix (i.e. Higher Graphics Demands, Full 3D Rigid Body Physics and Collision Detection/Resolution, Higher Level Artificial Intelligence, Gamepads, etc), the FPS dropped. Version 0.2 of Omega Resistance fell below 30 FPS on lower end machines which hindered gameplay. The video to the right shows off the upgrades made to Omega Resistance and is online and playable at or.gametheorylabs.com.
After some profiling and debugging the problem became apparent. JaHOVA OS could not meet the needs for a high performance real-time application such as Omega Resistance, due to its design to be both single and multithreaded. I need to build a custom platform that was designed from the group up to handle real-time 3D graphics as well as run complex optimization and simulations applications.
From this problem, GEn3CIS was born.
Part 2 of this series will go into various multi-threaded architectures and specifically show the proposed architecture for GEn3CIS.
All code demos can be found in code repos located at git.gametheorylabs.com