Mattermost is a popular free software Slack alternative. Slack can get really expensive really quickly for organizations of any sufficient size, so you either bare with the extremely limited free plan (which holds your data "hostage"), or you switch over to a free alternative like Mattermost. With this, instead of...
Read »

Over this weekend I jumped back into music production, working on some sounds for my current game project. I decided to switch around my work-flow and learn Ardour. Ardour is a totally free software Digital Audio Workstation (DAW) with a professional feature-set for macOS, Windows, and Linux. It has the...
Read »

Thinking of porting a legacy JavaScript library to be a re-usable React component? In this post I describe the process I used to release a React version of JSC3D. Rational I needed a simple, fast 3D mesh ray-tracer in a React 16 project, and none of the few available seemed...
Read »

I made a cool thing: Whiteboard is slideshow application for teaching programming. It embeds a code editor, terminal, and web browser into a slide-show like interface to eliminate context-switches and dead-space, while enabling more content content to be set-up ahead of time. It's great for guiding code-heavy classroom lectures, tutorials,...
Read »

Already a front-end (or back-end) web developer, and curious about writing your own video games? Maybe want to try a new hobby in indie game dev for PC or console, or publish some mobile games? I made the transition, and so can you! I hope this 10 minute read will...
Read »

Perhaps you are working on an action game or action RPG where different abilities need different cooldowns, but here's a tiny snippet that can be a re-usable Cooldown utility to check for when abilities can be re-used. Also useful for "rate-limiting" in general, e.g. adding a maximum rate of...
Read »

Earlier this year I realized that there aren't any good cheat-sheets for students new to JavaScript and coding in general to learn the (relatively dense!) syntax of JavaScript. Today I decided to make my own! In the past I've really like printing up cheat-sheets as I learned new technologies. It's...
Read »

When writing tasks for asynchronous functions in Python 3 I realized I needed a way to run through all tasks that were queued up with asyncio.ensure_future and similar functions. I wrote an async function to do this. The result is a little hacky, as it needs to catch...
Read »

I'm writing this post since there were a lot of guides online on how to set up NPM so you can do npm install -g (that is, a global NPM install) on macOS or Linux without superuser privileges, but all those guides recommended a rather strange directory structure, such as...
Read »

As I was configuring my new system (using dotfiles configuration app I wrote for this purpose: stowage), I was exploring the current options for minimalist terminal emulators, and I realized a common pattern I wanted was for new terminals to pop up in the same working directory that I was...
Read »

In this post I will describe my my process to port JSC3D, an unmaintained 3D library that uses the browser's <canvas> 2D context, to run entirely in node.js. This allows a quite fast, easy-to-use CLI-based 3D model renderer. It looks quite good, without the need for GPU,...
Read »

Drag and drop blocks onto the board to rack up points and advance to the next level in this addictive new spin on the classic game of tangrams. Two different modes cater to both casual and hardcore-puzzler game styles: Zen mode allows you to take your time to use the...
Read »

A couple months ago I wrote about realizing "enough was enough" with my feature-creeped game. Along with working on other projects, I spent some time in the next couple months cutting out features and polishing existing ones, all working under a "late-May" deadline. Now, my new (much smaller) vision for...
Read »

I had a blast with my Ludum Dare 38 Compo entry! It's a short (but complete!) puzzle game with 9 levels, something of a cross between Lemmings and Minecraft. Check it out here: Pretty rough in spots, and programmer art galore, but I'm happy with how it turned out. I'll...
Read »

As it turns out, writing gesture detection is not an easy task. I gave it a shot anyway, and wrote a re-usable scene for the awesome free software Godot Game Engine. It all started when I decided to switch the focus of my work-in-progress game Sawdust to "mobile-first". To provide...
Read »

It's been nearly 6 months now that I jumped head-first into game development, I've had a fantastic time so far. During these 6 months, in addition to teaching a program on web development, I've been working primarily two game concepts: One ambitious 3D game that is still top-secret , and another,...
Read »

I've noticed I've written a total of 9 open source packages for the Godot engine! I'm pretty pleased with this number, nothing makes me happier than giving back to the world of free software. I created a page that I'll keep updated with links to all of the repos: http:...
Read »

I put together a little camera script that should be useful for RPGs, platformers, and RTS games in the free software Godot Game Engine. It has a top-down (or angled) camera that has built in key-bindings for panning around using WASD keys. I wrote it to quickly prototype things like...
Read »

I'm about the opposite of a graphics expert, but I have discovered that by using Inkscape's built-in filters you can very quickly make some basic, initial assets for puzzle games, or UI elements for games of other genres. This is less a tutorial, more just to inspire other artistically-challenged people...
Read »