About thristhart


Ludum Dare 37
Ludum Dare 35
Ludum Dare 34
Ludum Dare 33
Ludum Dare 32
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29
Ludum Dare 26
Ludum Dare 25
Ludum Dare 23
Ludum Dare 22
Ludum Dare 21
Ludum Dare 20
Ludum Dare 19

thristhart's Trophies

Right... Arms... award
Awarded by Mikhail Rudoy
on May 7, 2011

thristhart's Archive


Posted by
Monday, May 11th, 2015 3:29 pm

The story of WHISTLE COMMAND’s conception is an interesting one — my original idea for the theme “An Unconventional Weapon” had absolutely nothing to do with what I ended up making. I originally wanted to do something with the idea of a robot with infinite lives, whose body sticks around after he dies. The player would then end up using their own corpses as a weapon. I came up with a few animations:

playerchar slide

I built a game engine around a couple JS physics engines – at first PhysicsJS, but when I realized I was working around the way it worked to make it like matterJS, I switched to matterJS which I was more familiar with. Unfortunately, I ran into a showstopper bug with matterJS that I couldn’t figure out — I think it was my fault, but I never found out what the origin of it was. Essentially, if the user went to the right third of the screen, all physics simulation stopped forever. Very frustrating.

Anyway, with an entire day blown and no real gameplay present, I decided it was time to scrap everything and do something else. I went to sleep and when I woke up, I was thinking about unconventional input and remembered the new getUserMedia API, and how it was very recently available in combination with the Audio API across all the major browsers (except mobile Safari – damn you iOS).

At first I wanted to do some ridiculous audio nonsense with voice commands or singing or something. I decided however that limiting scope as much as possible made input accuracy a lot more feasible. I threw together a prototype where it just mapped whistled notes to a point on the screen and I immediately fell in love with the idea. There’s something just incredibly fun about controlling something on the screen with the sounds you’re making.

I decided on a shmup-style creation where you controlled a ship and shot projectiles by altering your pitch. I quickly ran into a balance issue – most shmups are more like bullet hells, but control isn’t nearly accurate enough to require the player to dodge. I settled on a shooting-gallery style thing, but then ran into issues with it being too easy. My solution was to create a charging system, where you have to hold a pitch steady to charge a shot. This is hard and interesting, but I’m not satisfied – I don’t think it’s actually fun.

I also wanted to make it so that you had to whistle a recognizable tune to beat the “levels”. In fact, the levels as they stand right now were created by me whistling a tune and noting down the positions of the pitches. Unfortunately, that doesn’t translate at all to a tune when someone else whistles it.

Still, I’m very happy with what I came up with – it’s weird and interesting and definitely unconventional.

Did anyone else end up scrapping their original idea? How did it go?

Day 1 wrapup

Posted by
Saturday, August 23rd, 2014 2:02 am


I’ve got a ship in infinite space and a planet you can orbit and greet the locals on!

Try out the current build at http://thristhart.github.io/ld48-30/
(Use WASD/Arrow keys to fly around)

CRESS – Like Chess but less fun!

Posted by
Sunday, April 28th, 2013 1:43 pm

Cress is a multiplayer board game with minimalism as its core tenant. I built a whole lobby system around it too, so I hope you’ll try it out with your friends.

How to play
Compo page

Who Got Your Goat? A murder mystery.

Posted by
Saturday, December 15th, 2012 11:58 pm

Which one of these shady characters killed your goat?



Thristhart’s I’m-In

Posted by
Friday, December 14th, 2012 6:12 pm

I’m in! You can see my basic framework (ie, pretty much nothing) here: http://tom.shea.at/ludum_dare/25/

I’ll be streaming here: http://www.justin.tv/thristhart


I’m using:

  • Secure Shell for Chrome
  • vim
  • HTML5/Javascript
  • GIMP for graphics
  • SFXR for sound
  • GreaseMonkey’s Autotracker-bu for music if I decide I need it
  • Keeyai’s Chronolapse for the timelapse


Posted by
Saturday, April 21st, 2012 7:33 am

I’ve created the basic functions of the game! Each “Germ” that spawns follows the instruction set at the bottom endlessly until it dies. There’s some really glitchy collision and the germs are dumb as a rock, but it works! The timer at the top-right represents the time left in the “phase”. After the phase ends the germs move on to the next instruction.


Click to try it!


Posted by
Friday, April 20th, 2012 8:04 pm

Tiny World! YES! This fits in great with something I’ve wanted to work with for a long time: bioengineering!

But I thought I’d take it a step further. You’re bioengineering.,. bioengineers! I’m going to make a base-building game in which you create instruction sets for little bacterium that build your base following your instructions. Hopefully I’m not going over scope with this!

LD 23 – Consider me good and ready!

Posted by
Wednesday, April 18th, 2012 6:17 pm

I’m in, as they say.


  • Javascript/HTML5, as has become standard for me.
  • GIMP
  • sfxr (if needed)
  • Autotracker-C (if needed)
  • Chronolapse for timelapse
  • If I decide to do multiplayer – unlikely, but possible – then I will use node.js


Posted by
Monday, December 19th, 2011 6:37 pm

oh also I made a game you guys

Posted by
Sunday, December 18th, 2011 2:13 pm



and submitted it!

post-mortem forthcoming, after a couple days of getting comments from people (and trying other people’s games)


things I have done since submitting:

– read reddit

– played and tested other people’s games (guys you should go do this they are so grateful for it)

– wrote a bot to keep a log of submission counts every ten minutes, results here: http://dl.dropbox.com/u/5227720/LD22/entry_counts.txt



Check-in #3: Polishin’ time!

Posted by
Saturday, December 17th, 2011 8:33 pm

I’ve done all the levels that I feel are necessary for now. I’m going to spend day two on shine and polish!


Click here to try it out! (15 glorious levels!)

Check-in #2: Zombies, kittens, and landmines, oh my!

Posted by
Saturday, December 17th, 2011 2:14 pm

Check in #1: DEMO VERSION!

Posted by
Saturday, December 17th, 2011 9:33 am

After thinking about it a while, I decided to reverse the expectations a little. Your enemies are alone – and you are the monsters that haunt them.


Click Here to Try the Demo! (only two levels, more of a proof of concept)

Alone completely blindsided me…

Posted by
Saturday, December 17th, 2011 5:08 am

that was the one theme that I thought, “there’s no way anyone is going to vote for such a lame theme.”


well, shit.

LD#22: Declaration of intent

Posted by
Wednesday, December 14th, 2011 2:04 pm

HTML5, I choose you!

I’m going to be using everything referenced in this: http://dl.dropbox.com/u/5227720/LD22/base/grid.html

Feel free to use it yourself, it’s mostly documented properly!

Otherwise, GIMP, Autotracker if music becomes necessary, Soundmanager, Chrome/Firefox. Chronolapse for the timelapse.

Today’s Shirt.woot is now the (un)official LD21 shirt

Posted by
Thursday, August 25th, 2011 2:40 pm

I dare you to disagree:

[cache: storing page]