Last year was an interesting and productive year. Mostly I’ve been doing a deep dive into web development and JavaScript, while making ton of games, tools, tiny programs, and animations. The central theme to nearly everything I have been doing is something you might call “Tiny Coding”.

My adventure in tiny coding began on April fools day, strangely enough. For the previous several weeks I had gone perhaps slightly mad, feverishly working on tiny C++ skiing game. Inspired by Andrew Kensler’s Business Card Ray Tracer, I had the urge to make a tiny game to print on the back of on my business card. On April first I published a half joking post about how I would only be making business card sized games now. Little did I know that would not be far from the truth.
I soon discovered the last annual JS1k was already in progress, a competition for making tiny JavaScript programs. At the time I had little experience with JavaScript but I was eager to learn. So I toiled for 2 weeks straight and ended up submitted 6 programs. My favorites are Queen’s Gambit (a robotron chess mashup) and Digit Dilemma (a tough new puzzle game).
Continuing my journey I stumbled across Dwitter, a website where people post tiny JavaScript programs that make art. I was (and still am) blown away by the wonders contained there, and knew that I needed to learn more. Fast forward about six months and over seven hundred dweets I can confident say that I am a master code golfer, though there is always more to discover. In fact I’ve made so many dweets that I created a special tool called The Dweetabase that can be used to quickly browse through them.
I was disappointed that I was unable to find a good tool to capture all the JavaScript animations I was producing, so I decided to make my own! This tool, called CapJS, has received considerable polish with some nice features like a fancy Code Mirror editor, Shadertoy support, beautifier, minifier, centering overlay, watch window, and easy to use drag and drop loading.
I began writing a column called “Dissecting a Dweet” that explains how some of these tiny programs work, which I post right here on my blog. The most popular one by far was “#3 – Mini Black Hole” is a good place to start. So far I’ve released eight of these and I have roughly the first twenty planned out if interest continues.
Towards the end of the year I moved on to building some larger programs, but still sticking with this new “tiny code” philosophy. For JS13k I made “Bounce Back” an action adventure roguelite that won second place! I also made “Bogus Roads” for #LowResJam, one of my most complete game with 3 procedural generated levels and 5 music tracks. A few weeks ago at MAGFest I presented a talk on tiny coding to a packed audience which I will continue refining for submission to GDC.
One of the coolest tools I’ve released is ZzFX, a tiny sound effect generator for people to use in their JavaScript games. This began as JS1k entry but I greatly improved it, added a better interface, cleaned up the code, and put it on GitHub. I felt something like this would be a boon to everyone that makes these kind of tiny games. To my delight, many people have already used it including some really incredible games like “The Wandering Wraith” by Mateusz Tomczyk.
Late in the year I released ZzArt on GitHub, a tool that can evolve abstract art using GLSL shaders. Though the code itself is fairly simple, I have been completely amazed by the results. I now have saved hundreds of amazing images, and ended up getting many of them printed for holiday gifts. I even had a few poster sized prints made and hung them in my living room! I will definitely continue developing this.
I recently had some exciting news recently when one of my videos won “Best Illusion of The Year” and now has over two million views! There are many more amazing things that I’ve left out, so keep reading for a organized list of everything I’ve done in 2019. Follow me on twitter for daily updates on my progress. Here’s to an amazing 2020 for everyone!
My 2019 Accomplishments
8 Games
- Bounce Back – A retro boomerang roguelite adventure for JS13k
- Bogus Roads – Lowrez Retrowave Racing for LowResJam
- Spendotron: 2019 – A Robotron homage made in 48 hours for Ludum Dare
- The Digit Dilemma – A crazy hard original puzzle game with randomly generated levels
- Queen’s Gambit – A mashup of Robotron:2018 and chess for JS1k
- One Thousand Free Cells – Freecell solitaire with generated suit art for JS1k
- Tiny Ski – Business card size skiing game in C++
- Dweety Dweet – A Flappy Bird demake that fits in a single tweet
5 Tools
- CapJS – A live code editor for capturing video
- ZzFX – Zuper Zmall Zeeded Zound Zynth
- ZzArt – Abstract Art Evolution
- JSONCrush – Compress JSON into URL friendly strings
- The Dweetabase – A database and browser of every dwitter program
15 Blog Posts
- Bounce Back – Postmortem
- Spendotron: 2019 – Postmortem
- JS1k Postmortem – How I made 7 1k JavaScript demos in 2 weeks for JS1k
- I’m only making business card sized games now – April fools day post
- Piroot Video Devlog 4 – Bubble blocks, NPCs, and special text effects
- Piroot Devlog – MAGFest Postmortem
- MAGFest Table Top Game Jam Postmortem
- Dissecting A Dweet #1: Spiral JavaScript Quine
- Dissecting A Dweet #2: Spirograph Design Generator
- Dissecting A Dweet #3: Mini Black Hole
- Dissecting A Dweet #4: Ring Weave
- Dissecting A Dweet #5: Strange Attractor
- Dissecting A Dweet #6: Breaking Broke
- Dissecting A Dweet #7: Parallax Mountains
- Dissecting A Dweet #8: Shattered Tunnel
More Stuff
- Dual Axis Rotation Illusion – I won best illusion of the year
- Over 700 dweets – Tiny JavaScript programs that are like programming haikus
- Over 200 Shots on Dribbble – Most shots contain multiple images or are animated
- Piroot – work in progress adventure game
- Infinite Yin Yangs – Fractal yin yang shader for JS1k
- Min Bytes – A minimal bytebeat album with 8 tracks and visualizer in 1024 bytes
- Trio of Byte Beat Tracks – Played by my 140 character JavaScript byte beat player
- Piroot MAGFest Demo Trailer – With improved gameplay
- Business Card Sized FPS in C++ – A tiny ray caster that fits on a business card
Leave A Comment