About Hume (twitter: @justinbowes)

Full time indie. Lolwut?


Ludum Dare 27
Ludum Dare 26
Ludum Dare 25
Ludum Dare 23
Ludum Dare 23 Warmup

Hume's Trophies

Hume's Archive

Code Base

Posted by (twitter: @justinbowes)
Friday, April 25th, 2014 7:06 pm

Here’s my Git repo. It contains a bunch of framework code and a “game” that just bounces the words “DVD Video” off the sides of the screen.

I haven’t started yet, so this is still ok, right? I still have no idea what I’m doing with this theme.

Good luck to everybody.



Posted by (twitter: @justinbowes)
Monday, April 29th, 2013 9:01 pm




Here’s the idea: 

  • Up to 128 players chase and shoot each other. IN SPACE.
  • Weapon upgrades are per-shot.

Here’s the point:

  • Leave a multiplayer server running for the duration of the judging.
  • Have the server spit out logs and give out pointless awesome LD trophies.

Here’s how it was done:

  • Forget about fancy lag compensation and cheat detection
  • Three thousand lines of C
  • Two original songs
  • One person jam team
  • “Minimal” scale testing.

Best moments:

  • It works!
  • No it doesn’t! But it’s broken in awesome ways!
  • Particles!


This was probably my favourite LD since my first. Once again I spent all of my time on a technical prototype instead of polishing, but you know what? That’s okay! I think Ludum Dare is the perfect place to take risks and try something new. And judging by the other entries, lots of my comrade contestants agree.

I had a blast. I’ll try to rate as many entries as I can, and I’ll also try to stay on the UltraPew server as much as I can so everybody has somebody to play against.

Thanks everybody! See you in the comments sections of your entries, and I can’t wait for LD27!

P.S.: OpenGL coder looking for artist for next Ludum Dare or earlier. @justinbowes on Twitter.

A.R.M.: Alien Research Mission (A Post-Mortem)

Posted by (twitter: @justinbowes)
Monday, December 17th, 2012 9:51 am

Sometimes, games are as fun to write as they are to play.Source code includes Goats

What follows is an hour by hour breakdown of why writing this game was awesome.

[stextbox id=”warning” caption=”TL;DR”]


Go play the game. Do a lot of barrel rolls.



Hume Speaks

Posted by (twitter: @justinbowes)
Friday, December 14th, 2012 5:34 pm

Hi. I’m Hume. You may remember me from such Ludum Dares as the one before last.


My screen really isn’t pink. I don’t know what’s going on in that photo.

Last time, I was well prepared with a complete Java/LWJGL project skeleton containing automatic compile and upload scripts, and I wrote my game in OS X. Since it seemed to work out so well, I’ll be doing none of that; instead, I’ll go with C and MinGW on Windows and cry over makefiles. I will try to build for other platforms at the end, but I’m pretty sure how that’s going to turn out.

That link in the last paragraph points to my framework, which is still available for download. I’d be using it if I were clever, which I’m not. If you’re looking for an entity system based framework with font, mesh, sound and shader loaders ready to go that builds an applet and the page to host it, have at it.

Actually, I may have just convinced myself to use that framework. Uh oh.

Conqueror: Making Of

Posted by (twitter: @justinbowes)
Monday, April 23rd, 2012 6:13 am

You guys! I had so much fun, you guys!

Sorry about the low res. Being able to read the code would only make you cry anyway.

obligatory game link

Well, THAT was awesome.

Posted by (twitter: @justinbowes)
Monday, April 23rd, 2012 6:07 am

I’m blown away.

So many people working hard. So many people finishing or with a clear idea of exactly what to avoid next time. 1100 finishers for LD48?! Some awesome artistic talent. Some really surreal code wizardry.

For a first time, I’m actually really pleased to have finished at all. And I’ve learned something important about making sure people can play through your whole game — hard is fine, but for the compo, people should be able to continue from where they lose, so that can see the whole game.

Thanks everybody for your help and your enthusiasm.

And you Jam people, hurry hard! Only 12 hours left. Good luck!


Workstation Action Shot!

Posted by (twitter: @justinbowes)
Friday, April 20th, 2012 4:09 pm

Workstation action shot!

Ready to go. All we need is a theme.

Good luck,


Hume’s Libraries

Posted by (twitter: @justinbowes)
Thursday, April 19th, 2012 8:54 pm

WALL OF TEXT! Sorry about that.

I’m going with my own custom Java framework. I’m also sharing it with everybody here, because you’re awesome and because those are the rules. Mostly because you’re awesome.

  • It targets Java 1.6.
  • It uses the latest LWJGL release; 2.8.2 I think.
  • It provides an Apache Ant-based build system where the default target builds and uploads your applet, including all required support files. Change the logo image :)
  • It uses Proguard to slim down your JAR for faster loading times. It also builds your source code ZIP, including resources/ and the build system but excluding sensitive properties files and assets/.
  • It will sign your JAR if you provide a keystore. If not, you can go unsigned with a tiny documented change to /build.xml.
  • The auto-uploading system uses FTP. You give it a path, and it will create deploy all needed files and an index.html at that path. The page is nothing fancy; personally, I wrap it in an iframe. For the purposes of LD, the page contains a link to your automatically-generated source code archive.
  • I promise it doesn’t steal your keystore password or FTP account (not this version anyway ;), but you should probably not trust me on that. Read and understand /build.xml.  It’s not too complicated.
  • It provides a basic wrapper around the Paulscode.com 3D sound system (in fact, so basic that you probably don’t want the wrapper), including ogg, wave and xm support.
  • It includes Kenji Hiranabe’s awesome replacement for javax.vecmath, which I’ve repackaged to kenji.vecmath to avoid conflicts.
  • Basic logging, of the Log.debug(“I can log’, any, number, of, values, “variety”);

The resource library is pretty basic but also pretty forgiving. Here’s the basic outline:

  • Basic shader support with a parser that adds #include preprocessing
  • PNG texture loading only, using Matthias Mann’s standalone PNGDecoder.jar
  • Basic Wavefront OBJ support derived from Kev Glass’ Slick stuff (you rule, guy). No materials support. Due to a last minute change, it may handle quads now.
  • Basic TrueTypeFont loading support, modified from a modified TrueTypeFont class that was originally from Slick, I’m sure.
  • A resource loader that handles JARs and local filesystems correctly. Again with the Slick stuff because it’s good stuff. I just repackaged it to rip out his dependencies and insert my own.
  • Resource queue based reclamation of OpenGL objects. When you’re done with a resource, you can just let it be garbage collected. The resource loaders have a reference queue that will automatically release textures, deallocate shaders, etc. when the object they’re attached to is garbage collected.

The resource library is the way it is to allow you to reload a resource (like a shader program) every frame if you want, for live debugging. This is important for me on OS X because I don’t have a good live GLSL shader editor. If you want to cache loaded resources, you’ll have to do that yourself.

So those are the features. After that, it’s pretty much just you and LWJGL. Mano-a-mano.

I figure it’s a longshot that anybody else will use it, but I’m not posting this just to obey the letter of the law; I’ve spent a little time cleaning this up before posting.  I think it will save me time on menial tasks this weekend and let me be more creative. If somebody else decides to take the risk, that’s awesome and I’d love to hear how it went.

Get the library here.

Good luck everybody. And if you’re curious about what kind of game you can build with this in slightly more than 48 hours, here’s a shameless plug for a much larger work in progress…in space.

Go forth and kick butt,


Warmup Epic Fail!

Posted by (twitter: @justinbowes)
Sunday, April 15th, 2012 10:50 pm

Hi everybody,

Well, as I expected, the warmup was pretty instructive. I spent too much time on my tools and libraries — I switched math libraries. Why?! — and not enough time on the game.

"Design" "document"

My "design" "document" for the warm up weekend.

The theme I rolled for the warmup was “relentless,” so what I was aiming for was infinite mech combat. What I got was a lot less than that:

  • Enemies that don’t move and don’t shoot back (well, the jets did fly at one point, but into the ground, so they needed better AI which was not done);
  • Pickups that aren’t pick-up-able
  • Infinite everything instead of attributes topped up by pickups
What did work:
  • Gun works okay
  • Infinite terrain works fine
  • Loot drops work
  • I’m pretty happy with the camera

Missiles are so bad. Hilariously bad.

Check it out if you want; have a laugh. I’ll try to do better next weekend. No promises :)

Dry run, uh, game: “Relentless”

Hume Speaks

Posted by (twitter: @justinbowes)
Friday, April 13th, 2012 9:07 am

Tenth anniversary. First LD. Why not?

I’m Hume. I’ve been working on a space game since before it was cool, and I’m currently at a little bit of a loss because lots of other high-profile projects are using a lot of good ideas I wanted to use.

I figured this would be the perfect way to clear my head, meet some cool people, and hone the under-appreciated art of cowboy coding.

Since this is my first time, I expect to crash and burn, but I’m really looking forward to seeing what everybody can create during brief interval of mass insanity.

  • Language: Java. I like typing a lot.
  • Framework: LWJGL. I’ll likely use a small resource library I cooked up, but I need to replace the borrowed PNG loader, so I’ll have to post the library later on.
  • Graphics: Wings3d, Photoshop CS5 and maybe a little Fireworks for that authentic late ’90s feel.
  • Music: Modplug Tracker, played back with JMonkeyEngine code. Yep. My sample library is probably tainted, so I’ll use SFXR/CFXR to make instruments. Quickly.

Of course, all of the above assumes that the theme merits some kind of graphical treatment. Or maybe I’ll do a text adventure.

You enter the Ludum Dare.
It is dark. You are likely to be eaten by a grue.

Good luck, everyone!

[cache: storing page]