Disk Game

I just bought a condo. It's about as stressful as you've heard. If you haven't heard: very. Also I cope with stress by making games so let's find out what I've been up to.

Try it.

I had this idea some years ago while waiting for my opponent's turn in Hearthstone and thinking that I want to bounce things off the sides of the arena more than I want to be actually playing Hearthstone. It really is an interesting shape! Also I'd finally got my hands on a copy of Catacombs at that point, so bouncy disks were on my mind.

I've tried to get off the ground in writing something like this before, using Box2D for the physics, but it turns out that linking game objects to physics objects, linking fixtures to shapes, and inspecting contact points is boring. I already know how to write a game and it's a whole lot easier than this. So eventually I broke down and wrote my own from scratch, and that was much easier to work with. I wouldn't recommend writing your own physics for every project, but now that I've done it I think I would for wider variety of projects than I previously thought. Writing physics from scratch lets you solve problems at the physics level in ways that someone writing a library who doesn't know about your game can't. Some of the ways collisions and friction are handled here are completely non-standard and also really helpful.

From the start, I knew this was going to be following the customizable card game format, just with disks instead of rules about attacking and targeting creatures. I also realized pretty early on, way before I'd committed anything to code, that when you summon stuff it'd make the most sense if the spawn location was determined on its location in your hand, so the hand became this thing that wrapped around half the board (I'm picturing the sort of wire ramp that's used to bring the ball above the board in pinball). Because hand positions matter, I needed to set rules for where things go in your hand, which I was planning on doing as a stack (everything slides as far to the side as there's room) originally but as I was writing it I came up with the current approach, which is super slick. Then after all this thought, once it was coded up and given nice animations, it completely faded into the background. I expect that if this gets to the point where people are playing it competitively, all the serious players will independently discover that these rules exist.

The music references theme was stolen from a different more traditional CCG design thought experiment. Class disks use more obscure references (literally just lyrics from songs I like) and the neutrals use more obvious ones (usually titles and more popular or memeier artists). The current demo is mostly class disks and not neutrals so it's pretty heavy on references to Hop Along and Regina Spektor and thus all over the place. I'll probably have to re-theme everything before a proper launch, because even though all of this obviously falls under fair use, the music industry is incredibly litigious.

At some point in the next few weeks I'll be writing a server so people can play this against random strangers on the internet. That should be an interesting experience. Other than that, I just need deck building, art, and a whole lot of content. Which is to say, an awful lot of work.

Published 2018/08/17