Title: In the wake of all the Unity nonsense, just wanted to toss the Raverie engine into this mix :)<p>We’re building off a previous engine that we worked on for DigiPen Institute of Technology called the Zero Engine with a similar component based design architecture to Unity. Our engine had a unique feature called Spaces: separate worlds&#x2F;levels that you can instantiate and run at the same time, which became super useful for creating UI overlays using only game objects, running multiple simulations, etc. The lighting and rendering engine is scriptable, and the default deferred rendering implementation is based on the Unreal physically based rendering (PBR) approach. The physics engine was built from the ground up to handle both 2D and 3D physics together. The scripting language was also built in house to be a type safe language that binds to C++ objects and facilitates auto-complete (try it in editor!)<p>This particular fork by Raverie builds both the engine and editor to WebAssembly using only clang without Emscripten. We love Emscripten and in fact borrowed a tiny bit of exception code that we’d love to see up-streamed into LLVM, however we wanted to create a pure WASM binary without Emscripten bindings. We also love WASI too though we already had our own in memory virtual file system, hence we don’t use the WASI imports. All WASM imports and exports needed to run the engine are defined here:
<a href="https:&#x2F;&#x2F;github.com&#x2F;raverie-us&#x2F;raverie-engine&#x2F;blob&#x2F;main&#x2F;Code&#x2F;Foundation&#x2F;Platform&#x2F;PlatformCommunication.hpp">https:&#x2F;&#x2F;github.com&#x2F;raverie-us&#x2F;raverie-engine&#x2F;blob&#x2F;main&#x2F;Code&#x2F;...</a><p>The abstraction means that in the future, porting to other platforms that can support a WASM runtime should be trivial. It’s our dream to be able to export a build of your game to any platform, all from inside the browser. Our near term road-map includes getting the sound engine integrated with WebAudio, getting the script debugger working (currently freezes), porting our networking engine to WebRTC and WebSockets, and getting saving&#x2F;loading from a database instead of browser local storage.<p>Our end goal is to use this engine to create an online Flash-like hub for games that people can share and remix, akin to Scratch or Tinkercad.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;raverie-us&#x2F;raverie-engine">https:&#x2F;&#x2F;github.com&#x2F;raverie-us&#x2F;raverie-engine</a>
Upvote: