Live data from Hacker News

Show HN: Unity like game editor running in pure WASM

raverie-us.github.io

1–10 of 166 posts

Show HN: Unity like game editor running in pure WASM

#1
In the wake of all the Unity nonsense, just wanted to toss the Raverie engine into this mix :)

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/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!)

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: https://github.com/raverie-us/raverie-engine/blob/main/Code/...

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/loading from a database instead of browser local storage.

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.

https://github.com/raverie-us/raverie-engine

Show HN: Unity like game editor running in pure WASM
raverie-us.github.io

Re: Show HN: Unity like game editor running in pure WASM

#3

Holy wow, opened this on my phone and it was like unity editor was running on mobile with a smooth 3D viewport! Gotta give this a shot on desktop later.

The mobile version needs a lot of work! But we'd love to support the full editor on phones eventually :P

Re: Show HN: Unity like game editor running in pure WASM

#8
post #4

So I take it that this would be the highest performing + most customizable engine for web deployment due to its deep WASM nature? What about rendering, does it use WebGPU?

Poking the code it looks like it's based on an OpenGL renderer translating to WebGL2.

Re: Show HN: Unity like game editor running in pure WASM

#9
post #4

So I take it that this would be the highest performing + most customizable engine for web deployment due to its deep WASM nature? What about rendering, does it use WebGPU?

I'm sure there are higher performing engines out there, but it certainly should be easily deployed to any site. For rendering, this engine currently just uses WebGL. It was built on OpenGL originally (with a swappable renderer backend so we could target other 3d APIs). Eventually we may support WebGPU when support grows among the other browsers.

Re: Show HN: Unity like game editor running in pure WASM

#10
post #7

This looks great! Some feedback - I clicked on the link and tried to find out if it's on GitHub. I looked in Help > About but it didn't seem to have much. Then I clicked on Help > Documentation and it brought me to a 404

Ah sorry about that, this is still a big work in progress. A lot of the old links have died so we're porting over things like documentation still. I'll add a back-link to the github!
Post reply on HN