DEV Community

Cover image for GLAS = WebGL + Assembly Script(WASM);

GLAS = WebGL + Assembly Script(WASM);

Linux girl, gamer, and programmer. <3 Math, Graphics, Art, Techno, & Blackholes. My heroes are Einstein, Hawkin, and Sagan. If i could have any superpower, it would be the ability to control time.
Updated on ・2 min read

The future of game engines is coming soon, and it's in the form of web assembly (wasm). The new assembly script (asc) is the idea that the next logical step with computer graphics is moving away from high level platform dependent frameworks which out perform our existing systems.

This is many ways is regarded as the holy grail of portability, and freedom from close system architecture and api. Which for any open source developer, had to deal with closed source issues and bugs. yuck.

Alt Text

So why create another abstraction level of OpenGl anyways? Well besides becoming completely independent of native architecture, this will allow us to push even more triangles on any system. By closing the distance between the top and bottom abstraction levels we can greatly increase performance and security with the removal of platform dependent frameworks like .NET, .ASP, node, or even things like Python and JavaScript.

The awesome part of this is being able to create and emulate the runtime VM which hosts the code, all without having to use a Just In Time (JIT) interpreter. Super awesome I know!

Could this spell the end for the need to use "browsers"? Probably not for a little bit more time by todays standards and trajectory. I mean who isn't sick of the chrome sandbox yet? I mean really browsers are are just complex containers and sandboxes for your emca scripts?

To quote Daft Punk, "Faster, better, stronger." Portable physics engine anyone? Or how about live streaming 3d objects from your friends private web server? The limits are endless. In the future I foresee a world where we will not need complex native dependencies and frameworks and browsers and runtime libraries and ... and all of the jazz in order to write a simple math program or even maybe a complex API request to the happy clouds

So if making portable graphics or games for 3d rendering, VR, or anything I mentioned above interests you; we are actively looking help for this relatively new graphics engine.

Alt Text

The end goal will being able to provide the world with a top notch AAA rendering engine and editor -- which will be akin to what Blender did for the 3d modeling world but for game engines.

If you are interested in creating an open and free ecosystem alternative to Unity and Unreal be sure to pop on the Assembly Script discord. We need a lot of help!

Thank you so much for reading, and please be sure to give some thanks and love to the countless engineers whom have been working on bring you web assembly. They like kudos and cookies. :)


Discussion (3)

zoedreams profile image
☮️✝️☪️🕉☸️✡️☯️ Author

I forgot to mention that you can seamless convert wasm to run inside of a native VM of your choosing. Still not as fast as building directly with cpp but its super close.

trusktr profile image
Joe Pea

And there are also tools like wasm2c and Lucet that can convert Wasm into native code. To make glas work with those, we'll need to write some OpenGL bindings similar to ASWebGLue for WebGL.

zoedreams profile image
☮️✝️☪️🕉☸️✡️☯️ Author

Funny you mention that. I was actually looking into that today. I figures out how to create the binding classes for webglrenderingcontext. Ran into an issue with how the callback works for the requestanimation where as doesnt really have callbacks like how three handles it. Need to look into a callback system to manage the wasm.table register.