Featured Projects

Xentu Game Engine

A slim, powerful, platform agnostic and easy to learn 2D game engine.

Sutori Framework

A system for building linkable chains of multimedia, created to power branching dialog sequences for computer games.

Latest Article

  • WebAssembly and Xentu

    Woah! yes I am back, and I know it's been a while. The reality is I have a full-time job, and I can't always dedicate wades of time blogging or working on the projects I love, the sporadic couple every year or two posts is probably here to stay. Anyway today I'm back because I have some exciting news to share with those who have been following my quest to build the Xentu Game Engine.

    It's been a wild ride working on something like this, though perhaps a lack of direction has hurt the project over the last year or so. In hindsight this meant after I had managed to get a full working build with an IDE and all the bells and whistles, I wasn't sure where else to take it. Why would you pick Xentu over say GoDot, Löve or Three.JS even? To me there's a fundamental problem that needs solving.

    Originally I believed that having a toolkit that just works out the box, with modern language support, that works on all types of computers is unique. But those other engines can technically do that too. Every argument I make in my head for this finds a logical counter, so maybe I should just drop it and take the fact I made an engine as a win? Honestly that's a big part of why it's taken a while to come back to it.

    So Whats Happened?

    In early June this year I built a new dev machine after my laptop of 7 years decided to conk out. Perhaps by cooincidence I saw a news post that JetBrains were launching a new open-source license for their C++ IDE called CLion, so decided to cease the opportunity. Just as a quick bit of background, one of the most frustrating elements of learning C++ for me was getting through the utter lack of access to information. CLion is like nervana for devs like me, because the amount of infomation it gives through tooltips and hint panels, it has about everything you'd ever want, makes solving problems a hell of a lot more trivial.

    So with CLion setup, I thought I'd dive into the deep end and try and do something with WebAssembly. Most examples you'll see online for WASM are those that make you use the build compiler manually, which is kind of cheating, because it skips any complication a build system may bring.

    A build system is software that you provide a configuration file to, and speaks to the compiler on your behalf. Some example systems include NPM in the NodeJS space, or Meson & CMake in the C++ space.

    It took me about 2 hrs to get fully setup, but thanks to CLion's interface I was able to successfully get a Web Assembly project to compile with CMake, which is massive. Once I had got that far though, my imagination got the better of me, and I thought "I wonder if I can get Xentu and WebGL to compile like this?" well...

    Xentu Game Engine (WASM Edition) running in browser!

    Yea, so after 6 weeks of tinkering it's finally working! Yes this is the actual Xentu game engine (in Lua mode) running within a web browser! All the code in the Xentu documentation still works, frame buffers, animation, the lot. This is massive in my eyes, because it means Xentu can now escape PC hell and run on anything with a modern web browser.

    Xentu Project Direction

    So first the plan is to get a repo opened along side the main engine repo here with the new code I've written so that people can gain access to it. I suspect this will become the new main build of the engine, so will document as much over the next couple of weeks as I can. But back to what's important.

    I believe the big reason why Xentu should be considered, is because soon it will be one of the fastest ways to build a game that works on & off the web. If I get this right, there will be no more need for people to learn how to build the engine, they'll just be able to create a game in-browser, export, then host anywhere. Imagine creating a game, then having it running on a handheld console like the Ambernic rg35xx in under 5 minutes.

    So yea, due to a happy accident, it looks like there is a future for my little game engine :)

    Keep Coding

    Koda