I made my own Web Assembly based arcade website.
I recently had some downtime and decided to experiment with WebAssembly. I built a custom Single Page Application (SPA) using vanilla JavaScript and compiled several C-based games using Emscripten and Raylib. To house them, I designed a retro-inspired landing page with a neon aesthetic.
I’m particularly impressed by the efficiency of the tech stack—the Raylib binaries compile to roughly 170KB. I'm quite proud of the physics implementation in these games! My long-term goal is to monetize the project with Google Ads once the site is fully indexed. The whole project is 3.8 megabytes big. Find it here
A few software engineering truths I hold to.
- An open-source project has achieved true success when all users are
equally unhappy.
That belongs right on a wall alongside "The Mythical Man-Month" and "Murphy’s Law." It’s the open-source version of Pareto Efficiency, but fueled by GitHub Issues and spite.
- Every new feature is just a future bug report in a trench coat.
Today’s "innovative solution" is tomorrow’s "legacy code" that someone else has to deconstruct at 3:00 AM.
- Early adopters are often just early complainers.
The Lifecycle of the "Early Complainer"
- The Arrival: They download the alpha version of your project within
4 minutes of the first commit.
- The Usage: They don't actually use the software for its intended purpose; they use it to find out where it breaks.
- The Feedback: Within the hour, they’ve opened a GitHub Issue that reads: "Great project! However, it doesn't support my hyper-specific edge case involving a 2004 Blackberry browser. Literally unusable."