BlakWurm

We Breathe Entertainment

The journey of a thousand keystrokes starts with a single sigh

2019-01-12

A few months ago, I decided to make a game. It would be a simple game. Something small, and hopefully enjoyable to play. Of course, it would be pleasant to make. I decided to make this game in JavaScript, because what could be simpler and easier to make and access then a web page you just load up. No complicated build process, no invasive tooling. Just ES6, and a library between my code and the browser.

I'm okay with being wrong, but... not like this.

To say I was disappointed would be an understatement.

The Absolute State of this Place

Sincere kudos to the folks who have come before me in this place. Its been a hard road. JavaScript is in a good place right now, but that's a very recent thing. For years, the web has been a quagmire of compatability issues and framework hell. Performance was terrible. The language was terrible. The tools you had to use to make the language less terrible were also terrible! ES2015, the spec that came in and made everything not quite as a terrible, is only just over three years old (in January 2019). Four-year-olds aren't known for their engineering skills, so I think its safe to say that everyone alive who can possible write code with the new spec was alive well before it hit browsers.

It makes sense, then, that many existing tools would use older idioms. "If it ain't broke don't fix it", and it would be absurd to ask everyone to update their old, working, tested, battle-hardened code just so that newbies could fiddle around with some new language features.

What boggled my mind was that I couldn't find a single engine that was written with ES6 modules natively. Plenty were written using parts of ES6 syntax, and several would certainly be compatable with my code out-of-the-box, but none relied on what I feel is the most exciting new feature of newer JavaScript. Either there were no new systems, or the ones that people are making are still targeting IE. I mean, that's fine, but... seriously? No-one's taking advantage of the cool new stuff?

Y'know, that might have been okay. Maybe. Except all the engines that I did find were either so huge that they'd be bigger then my graphic assets, or they were unmaintaned, or they were designed with such a limited scope that I'd have to write most of the engine myself anyways.

What to do?

There's something demented in the hearts of Software Developers. Something sick. Something that must be reigned in at all costs. Something for which we must grow discipline.

We cannot see a hole without aching to fill it. Worse, we cannot see someone else's hole-filler without exploding with hubris! "I can do it better" has been the cause of millions of sleepless nights amongst us who code.

It is this innate and insane drive that immediately brought me to my next step.

I'd make the game engine that I wish existed.

And thus the journey begins...