Skip to main content Blog Drone

books ==> Gamedev

videos ==> Gamedev

  1. I Built a Card Game Very Quickly with AI-Generated Art

    This is a time-lapse of me very quickly demonstrating the entire, end-to-end process, by putting together an 18-card expansion deck in just under 3 hours.

    2024 EDIT: I built this game in 2022, before cheap, low-effort, and morally questionable AI art generation tools became broadly available to all of humanity. I did it using python scripts and legitimate, public data-sets of verifiable provenance, and put a lot of additional effort into the output and layout of the cards - and I’ve made the output available for free. Please do not come at me with “AI is prima facie immoral” unless you’re willing to engage with this project on these terms.

    2023 EDIT: GOOD THING THAT THE WHOLE AI ART INDUSTRY DIDN’T CHANGE OVERNIGHT AND BECOME DRAMATICALLY EASIER FOR NON-TECHNICAL USERS TO INTERFACE WITH EXACTLY FIFTEEN MINUTES AFTER I FINISHED THIS PROJECT, OR I’D HAVE FELT LIKE A REAL SCHMUCK


  2. A Terrible Concert from a Confused, Glitchy AI

    This is an early build of a game engine was working on in 2020, designed to produce a procgen roguelike world.

    If you watch how badly the chess games go you can see that the distributed gameplay logic engine didn’t work so good. Distributed consistency is really hard you guys.

    Honestly the procgen music engine wasn’t… terrible. As procgen music engines go it’s… on the verge of listenable. If this were playing while I were wandering around in a forest for a long period of time I wouldn’t be TOO MAD.

    The goal was to create music that just ran forever in the background and never really drew attention to itself, which is kind of where it’s at.

    I put a lot of effort into this “taking model-generated MIDI, using heuristic rules to sort it and apply structure to it, then running it through a javascript in-browser synth” project, but not a year later models like Suno could generate full pop songs so this was basically obsolete before it ever launched.

    Honestly, watching it go and listening to it is kinda charming.

    Here’s another, later concert from a slightly later build:

    There’s a little special song at 13:50 that is one of the worst things the engine has ever composed.

    Whenever I played this for anybody who was at all interested in music they were actively mad at me for doing this to music.


articles ==> Gamedev


  1. Arrays With More than 18 Elements In Them are Dumb

    A decade ago, when I was working on, you know, procedural generation stuff, fresh out of University, I definitely felt like I’d need to spend some time putting together some serious tools for generating selections from a variety of probability distributions.

    At the time, I was building a “Mohammed Chang” generator - a random name generator that used census data to try to generate mathematically probable names. If I’m pulling names out of a hat, and I want to pick “Smith” more often than I pick “Schwarzchild’ - well, that’s a job for a weighted probability distribution.


notes ==> Gamedev

  1. you can just make stuff up

    one thing that IRL board games have that digital board games can never have is that after six or seven plays with friends, you unlock a new mode where you’re just allowed to change game rules if you think it’ll make the game more fun


  2. I Can Even Sing the Pancake Wall Song

    I’ve watched a fair bit of content where a deeply reverential fan and the original creator of a piece of art talk, and it always goes exactly like this:

    Fan: Oh my god, the PANCAKE WALL, this was my FAVORITE PART, how did you come up with something as genius as the PANCAKE WALL

    Creator: uh, there was a deadline and I panicked and I had pancakes for breakfast

    Fan: I can even sing the PANCAKE WALL song, it’s my favorite

    Creator: I don’t recall the PANCAKE WALL song, is that… is that a thing?

    Fan: Oh, yeah, a bunch of fans came together and made up lyrics to the background music that was playing during the PANCAKE WALL scene, it’s a huge deal, we all sing it at cons.

    Creator: Huh. You know Burt McSoundsman wrote that. I always thought Burt was a weird guy.

    Fan: You don’t know the PANCAKE WALL song?

    Creator: I do not.



  3. the enduring utility of journals

    I would sometimes make fun of video games for just leaving expository diaries all over the place but now that I’ve been running a Dungeons and Dragons campaign of my own for a while my players are just ass-deep in found journals.

    look, I’m not going to lie, I will fully admit that it is not in character for the Big Bad to just chronicle his evil plans in big bold letters in a little book that he keeps on his person and frequently misplaces but sometimes I’m just at a loss for how to continue

    (you need to unambiguously point players to the next major location in the story)

    uh,

    uh

    okay, so, uh… on the goblin chieftain’s dead body you find a tattered journal written in a childish hand

    if y’all have great ways to deliver clear, diegetic exposition in the context of dungeons and also dragons, please

    “as you stab the gelatinous cube a partially digested adventurer’s journal pops out”


  4. the raffle

    Let’s imagine that in order to participate in a raffle, you needed to construct an entire 3-story house from the ground up including plumbing, electrical, and finishing work, entirely in your spare time.

    If you did a pretty good job on the house, that’s not good enough: lots of people are out there building houses with whole crews, in order to stand out your house has to be somehow exceptional.

    Then, once you finished, you got one raffle ticket, and when you look to see who else got a ticket, there is one for every person in the entire city of Tsawwassen, British Columbia.

    They’re going to do maybe 10 draws, so good luck!

    Now, you see this system and you decide to devote both your entire life and large amounts of your emotional state to not just participating in this draw, but winning.

    anyways, just wanted to say good luck with that solo gamedev project you’re working on, buddy, I’m rooting for you


  5. on refunds

    add a detail to your steam game that forces its runtime to just a hair over 2 hours, put an episode of “Ted Lasso” in there if you have to, thank me later


  6. animated text in godot

    Godot’s default text system doesn’t allow for very complex text animations, so I’ve been working on my own thing, which is … well, coming along, gradually.

    I’ve got some basic 2D rigging working, too:


  7. economy

    To be honest, I’ve always thought that the open marketplace “economy” monetization model in metaverse spaces is actually a huge anti-feature.

    It’s why so many of them feel like abandoned malls. People don’t like being sold to and giving your creators tools to try to nickel and dime people for every interaction with their products creates a bad and unpleasant experience for your users, so they leave, then there’s nobody to sell to so your creators leave.

    Your creators would have stuck around to create art for the sake of creating art, but now that their art could theoretically be profitable and isn’t they don’t want to stay any more.

    It’s one of the things I actually love about Second Life, you boot it up and it’s this eternal haunted mall, just emptiness and the hull of commerce around you as far as the eye can see. Nobody was enjoying this, they all just thought they could make some money.

    A vibrant VR platform lets you play with the bowling balls and drink the beer and you don’t have to pay some idiot $1.75 to do that.

    A dead VR platform gives you nothing to do without productizing it, and most real human beings go “fuck this” and bail, because that’s the kind of platform that appeals to speculators and capital and not, y’know, people.

    On the other hand, Roblox is printing money right now and Second Life made enough money on a virtual speculative land rush bubble that they created that they could sit on their hands for a decade, so maybe I should shut the hell up.


  8. project killer

    So, I had a neat idea of something I could do with a game I was working on: take the 2D plane the game was running on and stack it on a 3D plane, so that the game would visibly take place on a screen in a different, 3D world.

    I whipped up a quick demo:

    2025 Editor’s Note:

    In retrospect, this neat idea was actually the worst kind of idea: a total project killer.

    It sucked up a bunch of time and air, and obviously I lack the experience and chops to build a viable full 3D game: so chasing this idea would be impractical.

    Something about the mere existence of this 2D/3D divide ended up drawing a lot of focus and thought, but it was so obviously impractical that the project couldn’t continue. Rather than rolling it back and continuing with an earlier build, I simply moved on to the next idea.

    This was the last time I ever posted about this project.


  9. li'l rpg

    (editor’s note: For a while I was working on this project in Godot, a little RPG thing.)


    This is turning out to be super interesting pixel art experiment:

    The level’s geometry is very basic and I’m encoding the texture information on a normal layer rather than by painting it.

    When combined with light sources, the level’s texture information looks very naturalistic.

    basic geo:

    2D normals:

    final:



  10. pixel art

    if you’re looking at it on any screen it’s technically pixel art


  11. roguelike

    it’s a roguelike

    in that

    it’s a game that you can play on a computer

    like rogue

    which was also that