A new portal for the best WASM OpenSource Games (and emus)
Within the last two years the Rust community created over 10 web framworks that could be used to build web frontends with WASM. Most of them are proof-of-concepts but a few are serious projects.
We want to do a reality check of how far we could get using Rust as a frontend language. To do so we have choosen Seed as one of the more mature framworks.
Moreover we want to demonstrate a real-world usecase instead of implementing just one more TODO list app. This is why we're going to port the complete frontend of kartevonmorgen.org to Rust. The Karte von morgen is an open source project for mapping sustainable initiatives and organisations.
Let's get started
In a project I’ve been playing around with recently, we’ve encountered the dilemma where you want to make it easy for users to write their own application logic using the system but at the same time want to keep that logic decoupled from the implementation details of whatever platform the application is running on.
If you’ve been programming for any amount of time your immediate reaction is probably “why bother mentioning this, doesn’t it just fall out of good library design?”, and normally I would totally agree with you, except I forgot to mention a couple of important details…
People need to be able to upload new code while the system is still running
This application will be interacting with the real world (think robots and automation), and we really don’t want a crash in user-provided code to make the entire system stop responding
The normal solution for the first point is to use some sort of plugin architecture, however using something like Dynamic Loading doesn’t solve the second point and the large amounts of unsafe code needed can arguably make the situation worse. For that we’ll need some sort of sandboxing mechanism.
Web Assembly has gained a lot of traction over the last couple of years as a way to write code in any language and run it in the browser, but it can be used for so much more.
Read the full article http://adventures.michaelfbryan.com/posts/wasm-as-a-platform-for-abstraction/
In The Cube is a platform/puzzle game.
Indeed, you will have to solve a multitude of challenges. Your agility and reflection vill be put to the test.
The key to saving the world lies in a 1cm long cube, which is why an even smaller cube that you will embody is sent inside.
Through more than thirty levels, you will discover a multitude of mechanisms (laser, mirrors,…). Manipulate them with talent to go through the cube.
Strange machines are found in the most advanced levels.
This game is made in C++ from scratch (OpenGL, OpenAL, ...). It is using the SMK library from the same author.
In the days of Geocities and Angelfire, a quirky HTML tag called <bgsound> enabled sound files to play in the background of webpages. Usually, these files were in the MIDI format. What a glorious era that was!
Sadly, <bgsound> has been removed from browsers and MIDI is obscure and hard to play back. But using the power of WebAssembly, Emscripten, Web Audio, and Web Components, I was able to bring MIDI and <bgsound> back from the dead!
BitMidi is a website that plays back MIDI files directly in the browser and has a collection of over 100,000 MIDIs to browse and choose from.
You can check out the slides “The Lost Art of MIDI – Bringing <bgsound> Back to the Web” from a talk I gave at JSConf Colombia 2018 to learn more about how BitMidi uses WebAssembly to play back MIDI files.