So, to go with this post there’s a webtoy you can play around with: https://ambiguous.name/wasm-webtoy/

Check it out! It’ll be fun, I promise.

Burnout

I really enjoyed doing this for one reason: I am in the middle of actual demanding, taxing work. I’m making a game with 14 other people, and we’re aiming to release sometime in the Spring. That puts all my other projects on hold, and it means that I can’t do exciting things. My favorite part of programming is getting sidetracked and exploring any and all interesting side routes. Automating builds? Documentation? Asynchronous loading? Cool editing gizmos?

I’ve done what’s within the limits of what I can argue to keep in the project. It’s all been very cool and a great experience to learn, but there’s only so far you can do the things you want to do in a job while still keeping your product on track to ship. That means more boring work for me, and it brings me to my biggest thinking point of the last few weeks: Burnout.

I’m told every software engineer experiences it. I usually don’t spend too long on any dedicated project with enough consistency to experience it; now that there’s a team involved and we’re all working towards a common goal, and if I let up in my work it means I’m failing my team.

So, I’ve been experimenting with ways that I can avoid burnout myself. Taking regular breaks is something I’ve found to be key. Once I can find my bluetooth controller, I’m going back to playing nothing but games. Until I find it though (mostly because I’m too lazy to search), I’ve been taking breaks on the web, goofing off, etc. This is all classic stuff.

There’s something to be said for a change of pace in work as well. Not just recreationally, but I think your brain needs to stay active and engaged throughout work. It’s really boring to spend my time bug hunting, as vital as it is. But that doesn’t really stimulate or challenge my brain. I’ve been really into learning more low-level stuff lately.

Web Assembly

Web assembly is fairly new, and something I have a lot of background with. I once tried to use emscripten to create a version of Nethack in Google Sheets. That may have been shooting a little too far, but it’s absolutely 100% more doable (at least when porting to web form) with web assembly. So why not learn more about web assembly?

My big inspiration for this project was Codecademy Labs. I don’t know if anyone remembers Codecademy Labs, but I did buckets of Javascript learning through just that interface.

Codecademy Labs screenshot. I didn't realize that there were even Ruby and Python options back then. Codecademy Labs screenshot of code

I also remember messing a bit with an atari emulator1. You can track a lot of my interest in game design to these little web toys. So with that inspiration mind, I made the WASM Webtoy.

Web Assembly Webtoy

As you can probably tell, I cribbed a lot of the style for the webtoy from Codecademy Labs2. I got really excited about the potential of someone looking over this to learn a little bit more about programming like when I was young. It was very nice just to set small manageable goals for myself that I didn’t really have to spend all that much time improving. I’d forgotten how much fun web dev can be if you’re working with pure JS, CSS, and HTML. It’s a big sandbox, really.

From that sandbox, the full project was put together in 3 days, but 2 of those were for CSS improvements. The real core functionality was put together in a night, and I could have left it there if I chose. But I didn’t, since the CSS was teeeeeerrrible. I wanted something for hopefully everyone to enjoy.

Hobbies

You should always have a hobby. If your job is programming, and your hobby is still programming, I think that’s okay. I also believe that it should involve activating different parts of your brain, though. I doubt I even will stay committed to programming as a hobby. There’s a reason I do blender stuff, why I write, why I just indulge myself in different things. It’s good to shift your brain and think differently; firing all the same neurons over and over again is exhausting.

This is a reminder to myself to do different things. Someone told me to try some hiking spots, I think that’s a pretty good idea for the future. I’ll see y’all around.

Epilogue

To cap all of this off, there’s the game I made, because of course you have to make something to accompany the toy. Which isn’t much of a game, but it implements some velocity stuff which is cool.

You can “play” it on itch.io: https://ambiguousname.itch.io/bouncy-ball

Source is here: https://gist.github.com/ambiguousname/1d55e77a1d3b742cfcbcdf0cce89d6b1

  1. I didn’t realize it did NES stuff as well, I would have done a little more than screw around with assembly I didn’t understand if I had known. 

  2. I could only find those two screenshots, by the way (although I only did some brief searching). This one techcrunch article and this pinterest post. Some of it is archived on the Wayback Machine at the very least. It’s just not super functional.