Archive for the 'Uncategorized' Category

Lesbian Spider Mars Queens

Sunday, April 14th, 2013

Run Hello is proud to present a piece of video game history: an unlicensed port of Midway’s arcade hit “Lesbian Spider Queens of Mars”, released for the Atari XL in 1992 by Latvian developer Sveiki Atvyke. “Lesbian Spider Mars Queens” is noteworthy for, unusually, abandoning the arcade version’s top-down gameplay in favor of a “first person shooter” format that pushed the XL to its limits; this arguably makes it one of the first person shooters ever commercially released, predating Wolfenstein 3D by several months.


This is an FPS version of Anna Anthropy‘s game Lesbian Spider Queens of Mars that I made for Anna for her birthday. She said what she wanted for her birthday was fanart, so I made this. My high score is 2100; see if you can beat that.

Every game I’ve ever made

Thursday, April 4th, 2013

Here’s a Vine video fitting every game I’ve made for this site (30 games made over five years), including games I never released, into six seconds.

“Kicked Out Of NASA” Game Jam

Monday, March 11th, 2013

This weekend I was really excited because NASA was going to host a game jam (on my birthday!) right by where I live. But then it turned out they were sold out of tickets. So instead I set up a “Kicked Out Of Nasa” Game Jam on Glorious Trainwrecks with the suggested theme of “games about being denied access to space”. A bunch of my friends met up at Anna Anthropy’s place to make stuff and it was awesome.

Here are the games that wound up getting submitted:


I made this one! You can download it here:

This was originally going to be something wildly different, but I got so distracted messing with the video-feedback shader effect I was going to use that I just added music to that and made it the whole game. It basically just fills your screen with rainbows. The music is by Liz Ryerson who also did the music for Anna’s game below.

I posted some 6-second demo videos on Vine: Vine 1, Vine 2

Dirty Dishes

This was made by the lovely Amy Dentata, she described it as sort of like Tetris. It issues you a challenge: Carefully stack the dirty dishware in the sink without breaking it. This is REALLY HARD. Amy’s roommates must buy the cheapest dishes. It makes for an interesting challenge tho!

When Amy plays this she pretty much just seems to repeatedly spam the debug button to spawn extra dishware and cover the screen in broken glass.

Download on GloriousTrainwrecks

Typing With Hands

Loren Schmidt made this and he describes it as a simulator that allows you to experience what it is like to type using hands, like maybe in case you’re an alien or something and you have tentacles instead of hands. It puts a picture of some hands on a keyboard up on the screen, and when you press keys it shows the hands typing them. It makes this fascinating body-disassociation effect because you’re typing and you’re watching hands typing but they’re NOT YOUR HANDS (unless you’re Kim in which case they are your hands).

Download on GloriousTrainwrecks


This was event hostess Anna Anthropy‘s game and probably the most on-theme entry we had. This is the kind of thing I really like to see people experimenting with– in a much more interesting enlargement of what I was trying to do with Shadowland Prophesy, this is a game which takes place outside of “game space” and mostly on your own computer. Aliens command you to never again use the space bar, after which the game minimizes itself and you are left to return to your daily tasks, using Firefox, whatever. Until you press the space bar, at which point the game pops back up and informs you YOU HAVE LOST and THE EARTH IS DESTROYED. This is the other piece Liz did music for yesterday.

Download on GloriousTrainwrecks


Wade McGillis is the maker of a simple but haunting PC/iPhone game called AstroNOT where a little blue pixel person basically gets lost on a gigantic, baffling C64-y planet. Along those same lines he made this little 2-screen thing with an astronaut that jumps around and sparkes. Apparently he meant it to be longer at some point, as it is though it has pretty colors.


Play online on GloriousTrainwrecks

Bonkers Space Patrol

Redbone submitted this to the jam over the Internet, I didn’t get to play it (no Mac version) but I watched someone else and it’s actually kind of hilariously chaotic. Anna’s description of the rules were “things from space are sent into space, things from Earth go back to Earth”.

Download on GloriousTrainwrecks

Horrible Mazes 3: No Space For You

Overkill describes this game thusly: “This game is horrible, and has some really uninspired mazes. Enjoy.” The graphics on this one are pretty and it made me laugh. I can’t figure out if I got to the end or not.

Play online on GloriousTrainwrecks

Science Jam

This one’s a Knytt Story. Knytt Stories 4ever

Download on GloriousTrainwrecks

Empty Void of Space

This is the most mysterious of the jam entries, and was the first one submitted. Again because of a lack of mac version I could not play it, but the author describes it as an “EXTREMELY REALISTIC GAME”. I think… I think someone actually made an accurate simulation of the empty, unmoving void of space.

Download on GloriousTrainwrecks


Satellite Destroyer

Eli Brody submitted this a little bit after the jam. I cannot play it because XNA, but the idea is that you destroy actual satellites rendered in realtime from NASA’s publicly available tracking data. That is awesome.

Download on GloriousTrainwrecks

Out of Space

Another late entry by Chigbarg, who actually came to the in-person jam but his monitor got smashed on the drive over so he couldn’t do anything. Anyway after the jam he made this and I am not sure I understand it at ALL but it’s AWESOME and moody and gorgeous. The premise is you need to board the spaceship, but cannot.

Download on GloriousTrainwrecks

Plot inventory

Wednesday, November 28th, 2012

The other day Liz Ryerson made this great tweet:

Liz wasn’t being entirely serious, and she later noted she doesn’t think “conquest” games are necessarily BAD, but, I thought this was interesting to consider. Video games do overwhelmingly tend to fall into narratives about domination, “beating” something, power fantasies of one type or another, and it’s easy to make a game fundamentally about this without realizing you’ve done it.

I started wondering: What are my games about, exactly?

So I made a list. Here is the basic player motivation / plot impetus in every game I’ve made (whether I released it or not):

  1. “Jumpman” Try to escape a pit.
  2. “Angels” Consume, but do not be consumed.
  3. “dot” Consume.
  4. “Impression” Try to escape a pit.
  5. “The Snap” Kill player 2.
  6. “You Don’t Fit” Try to escape a pit.
  7. “pongx8” Beat player 2 at tennis.
  8. “My Own Footsteps” Find an artifact.
  9. “Day & Night” Escape a wall of lava.
  10. “Template” Descend ever further into a pit.
  11. “Reverse Tarot” Write a story.
  12. “Unplayable Asteroids” Cause as much property damage as you can get away with.
  13. “Markov Space” Write a story.
  14. “Xaxxaxoxax” Try to escape a pit.
  15. “A Dark Place” Descend into, then escape, a pit.
  16. “The Shadowland Prophesy” Try to play a video game.
  17. “Breathe” Descend into, then escape, a pit.
  18. “7DRL” Descend into, then escape, a pit, while killing everything you see.
  19. “Flipper” Try to escape a dreamworld.
  20. “Luanauts” Save the world?
  21. “Fall” Kill everything you see.
  22. “Fall2” Carefully climb into a pit.
  23. “The World Hates You” Try to escape a pit.
  24. “The Nervous System” Consume.
  25. “Death By Chocolate” Try to escape a dreamworld.

My games probably aren’t representative? But I notice, I did kind of fall into a pattern about what kinds of narrative I make. A good half of these games are, fundamentally, games about being trapped in some kind of hostile situation or deceptive reality and trying to escape. (Hm.) And without having really thought about it at the time, a good 33% of the games I made wound up being some kind of domination narrative, assuming you count Tennis. (One thing I’ll note, counting it out: Only 20% of my games, at some point, give the player the option of killing something.)

You know what? Never mind the power fantasies thing. I think this is an interesting exercise by itself. So I challenged the indie dev community (or the portion of it which was reading Twitter at 2 AM this tuesday) to make their own plot inventory lists. Here’s what I got:

Something I’ve been thinking about lately is whether video games constrain you in terms of what kind of stories you can tell– obviously you can make a game about anything, but at some point you have to marry your narrative to a mechanic, so unless your story is in certain ways goal-oriented, unless you’re clever maybe it won’t be a very interesting game or you’ll find your story and game design goals fighting each other at some point. Coming back to Liz’s point, between the eight people listed above– and remember, we’re indie devs making mostly small experimental games, so we’d expect a broader range of kinds of games here than you might see in say commercial games– we made 345 games and 150 were what I’m broadly defining as domination narratives. Under half! That’s not so bad. Thesyncophant had the smallest proportion of “conquest” games (22/70) and Kyle had the highest (8/10). KYLE REIMERGARTIN: CONQUEROR OF GALAXIES.

Game devs: Send me your plot inventories! I DESIRE DATA.

UPDATE: More lists:

The Shadowland Prophesy

Monday, April 2nd, 2012

A game I made on the last day of Molyjam 2012. I am so, so sorry.

Inspired by this tweet.

This game requires an OpenGL 2.0 compatible computer.


Tuesday, March 6th, 2012

Made at the very end of Pirate Kart V for use at their GDC booth (along with the other 955 games).

The page for this game on Glorious Trainwrecks (the site for the Pirate Kart jam) is here.

Markov Space

Friday, February 17th, 2012

An experiment I created over the last month for the fourth Super Friendship Club game pageant, theme: “Universe”. I would go so far as to call it a “video game”. Arrow keys steer.

Notes: These license disclosures apply to the game and should have been included in the attached Readme file. Also, the Windows version of this game currently has two problems: sound comes out of one speaker only; and when you quit, it will appear to lock up for about ten seconds. You can either wait for the ten seconds to end, or force quit it. I am sorry about these problems, this is the first Polycode-based game I have ever released and I am still working out some kinks.

Game of the Year 2011: Vote Here

Monday, January 9th, 2012

Hello anyone out there: I’ve got this Game of the Year poll that I run on some web forums I frequent. The way it works is that you rank your favorite games of the year– up to 20, though vote for as many or as few as you want– and the script will sort out the top 200 or so out of everyone’s votes. Here’s last year’s results if you want to see what this looks like (or previous years here). I will run this poll script for one week and then post the results. If you’d like to give it a try:

Vote here

When one week is up I will delete this post and post the results here on this blog. Thanks!

Hey, I made a patch to hg-git

Friday, September 2nd, 2011

So this is SUPER arcane, but: I’ve been starting to use DVCS lately, and I sort of hate it, but I hate it less when I can use Mercurial to do it. Unfortunately most people doing DVCS are using Git, which means if you are using Mercurial you basically have to be using hg-git so that you can work with Git repositories while still using Mercurial. One thing I’ve found a little inconvenient about using hg-git though is that once you’ve imported the Git repository in using hg-git, all the revision numbers are suddenly different because they’re calculated in Mercurial format now, which makes it very hard to for example look at the github network graph or have a conversation with another developer about different revisions. So I made a patch that shows Git revision numbers alongside the Mercurial ones when you’re using hg-git and also lets you refer to revisions by Git revision when updating, diffing etc. You can find this on my hg-git fork on Github, and I’ve submitted it back to the main project. Oh, I also put in there a neat little script I made to test my changes, that uses virtualenv to automatically build little self-contained python worlds with specific versions of Mercurial and Dulwich. I’m desperately trying to think of some use for this outside the tiny confines of testing hg-git and so far failing.

…for anyone who couldn’t follow that: Mercurial is a program that lets you download source code, Git is a different program that lets you download source code, hg-git lets Mercurial users download source code from Git users, and I did a thing that makes hg-git easier to use.

I hopefully will get to make some more improvements to hg-git later if I have time, like I’d like to try to take a look at why hg outgoing support keeps breaking. I also really want to throw hg-git into the profiler and try to figure out why it’s so SLOW. If I do take a crack at this you’ll be able to find it at my Github fork linked above.

Jumpcore: A starting point for SDL/OpenGL games

Wednesday, July 1st, 2009


Here, download this silly physics toy:


Controls: Keyboard, mouse, F1, F4, ESC


(UPDATE 4/11: Instead please see the page for Jumpcore 2.0.)

When I started writing Jumpman, something that frustrated me was that there are a couple of seemingly basic things that SDL/OpenGL doesn’t actually provide out of the box, and that I couldn’t seem to find a really good source for sample code for– things like drawing text, or creating a simple GUI, or building a crossplatform binary. So once the game was done I decided to clean up my code a little, strip out the “Jumpman” parts and release the basic skeleton as open source sample code. Below is that code, and a small tutorial on setting up Mac OS X such that it can build Windows and Linux executables. The hope is to make an overall package that would allow someone starting an SDL/OpenGL game to just sit down and start writing, rather than having to spend time downloading and fiddling with libraries.

The Jumpcore package comes in two versions. A minimal version that includes only:

  • The ability to draw text (provided by the Freetype and FTGL libraries).
  • A code snippet for managing “internal files” (which live in a directory named “Internal” on windows/linux, and inside the application package in OS X)
  • Alt-tab support for OS X (SDL does not do this out of the box for fullscreen apps)
  • Makefiles (and one .xcodeproj) for Windows, Mac and Linux

And a more fully featured version that also comes packaged with:

  • The Chipmunk 2D physics library
  • The LodePNG library (and a code snippet for loading PNGs into OpenGL textures)
  • The TinyXML library
  • Some color conversion routines
  • A minimal “ControlBase” GUI library (dependent on Chipmunk)
  • The “Typewriter” demo code linked at the top of this post.

The included libraries were picked in an attempt to include all the basic stuff a game needs, while still making the package as easy as possible to port and reuse in weird situations: all the libraries are self-contained and except for SDL itself can be built from the package as source where necessary; nothing depends on anything more complicated than the STL– I avoided heavyweight dependencies like Ogre or libpng; and everything is under a BSD-like license. The biggest limitation of the package at the moment is that it’s a bit mac-centric (I have not tested it with Visual Studio or Dev-C++).

Basically, here’s a box full of Legos and half a robot. Have fun.



Included is a Jumpcore.xcodeproj for compiling on mac, which can be compiled with XCode; windows makefile and support files are in a folder named win/, and can be compiled with mingw; Linux makefile and support files are in a folder named lin/, and can be compiled with gcc. More detailed instructions for all three platforms follow:

    If you’re on a mac:

To build a mac executable, from a mac: Included is a Jumpcore.xcodeproj for use with XCode; just build that in Release mode and it should produce a 10.3.9-compatible universal binary (though note, I’ve not specifically tested it with 10.3.9).

    If you’re on a mac and you want to build a Windows executable:

Here’s the best way I’ve found to do this:

  1. There is a “Cross Compilers for Mac OS X” page here that actually has OS X installers for mingw. PPC and Intel versions are included; I installed 4.3.0 for Intel. The only problem with these particular installers is they install into strange places, so whichever installer from that page you pick, write down the “Installation directory” listed to the right of it.
  2. Once you’ve installed an installer from that page, you need to install SDL headers. In order to do this, go to the SDL download page and look under “Development Libraries” -> “Win32” -> “Mingw32”. Download that tarball. Once you’ve downloaded it ignore the “INSTALL” file, which is full of lies, and do this: Edit the “Makefile” in the directory so that the “CROSS_PATH” on line 4 is the “Installation directory” you wrote down in step 1. Like in my case this would be:
      CROSS_PATH := /usr/local/i386-mingw32-4.3.0

    Once you’ve done this, run “sudo make cross” and it will install the SDL headers into your mingw directory.

  3. Go into the “win/” directory. Run “make” with the argument MINGW=[Installation Directory], where [Installation Directory] is again the directory from step 1– in my case this would be
      make MINGW=/usr/local/i386-mingw32-4.3.0

A directory named “Jumpcore” will be created with a Jumpcore.exe and all the support files necessary.

    If you’re on a mac and you want to build a Linux executable:

Just distribute source. No, really. Building Linux binaries for distribution is tricky, and binaries aren’t what people want anyway. However if you want to do what I did and chicken out, what I recommend is installing Virtual Box or Q (probably Virtual Box, though Q is what I used) and loading up an Ubuntu install CD. This is quicker and easier than trying to set up a cross compile. Then go into the “lin/” directory and type “make”.

    If you’re on Windows:

I was able to successfully compile Jumpcore on Windows by doing the following:

  1. Download and install MinGW. (Make sure to install the C++ package.)
  2. Download and install MSYS (it’s part of MinGW, but a separate download)
  3. As described on the MinGW install HOWTO, add C:\MinGW\bin to your path: right-click “My Computer”, click “Advanced”, click “Environment Variables”, double-click the line that says “PATH”, and in the second line add the characters ;C:\MinGW\bin
  4. Go to the SDL download page and look under “Development Libraries” -> “Win32” -> “Mingw32”. Download that tarball and open up its contents in MSYS. Type “make native” and it will install itself.
  5. A kind of odd step: right-click the file “README.txt”, open it in Wordpad, and immediately save it. (This will strip out my evil UNIX newlines.)
  6. Go into the directory win/ and run: make WINDOWS=1

This will create an install directory named “Jumpcore”. If you want to compile for debugging, in that last step type: make WINDOWS=1 DEBUG=1

    If you’re on Linux:

Install Freetype and SDL. Go into the directory lin/ and run make. This will create an install directory named “Jumpcore”. If you want to compile for debugging, instead type: make DEBUG=1


Once you get the thing built, you’re going to want to start focusing on swapping out the Typewriter code for your own code. Jumpcore consists of a main.cpp that does basic bringup/teardown and event loop work hopefully good enough for most games, and makes callbacks as appropriate into a display.cpp (display logic) and a program.cpp (game logic) you provide. You’ll want to implement the following methods:

In display.cpp

    display_init() – This is called once each time the display surface is initialized. It’s a good place to do things like initialize fonts and textures. (Note it could be called more than once if the window size ever changes.)

    display() – This is called when it is time to draw a new frame.

    audio_callback() – This is set up as the SDL audio callback.

    drawButton (“full version” only) – This is a cpSpaceEach callback which the default display() calls on each interface item. If you want to change the appearance of the ControlBase controls this is a good place to do that.

In program.cpp

    program_init() – This is called once when the program begins.

    program_update() – The default display() calls this once per framedraw.

    program_eventkey() – This is called when SDL gets a key event.

    program_eventjoy() – This is called when SDL gets a joystick event.

    program_eventmouse() – This is called when SDL gets a mouse event.

    program_interface() – This is called after the event system finishes dispatching events to ControlBase controls, to give the interface a chance to redraw itself.

    BackOut() – Called when ESC is hit (quits).

    AboutToQuit() – Called right before the program quits.

Documentation for the individual libraries and functions included with Jumpcore can be found on these separate pages:


I’m not really sure if this is ultimately going to be useful to anyone, and I don’t intend to maintain it unless there are people actually using it. However if there turns out to be any interest in this there are a few things I’d like to improve in a future release:

  • The package contains everything you need to build a Windows version from a Mac. It would be awesome if I could eventually reach the point where a Windows user could build a Mac version (is that even possible?).
  • Linux version is poorly tested in general. I have reports of issues on 64 bit systems, and the original Jumpman code seemed to have issues with switching to and from full screen mode.
  • The final executable size is pretty large– 2 or 3 MB compressed for the very minimal typewriter demo. I’m curious if this can be improved on. At least on the mac a large chunk of this is taken up by SDL, which gets bundled along with the executable. However, to someone who’s using OpenGL to draw, a lot of this is wasted space– because much of the complexity in SDL is taken up by the 2D drawing support. I’d like to try to swap out the SDL libraries for versions that lack 2D drawing.
  • iPhone compatibility? Now that I’m doing iPhone development I’m becoming pretty firmly convinced it does not make sense to create a single codebase that compiles on both PC and iPhone– the platforms are too different– but maybe it would make sense to rewrite some parts of the typewriter demo to make portability to something like iPhone easier (for example, rewriting the drawing code to be OpenGL ES-compatible).
  • I am not sure that every library included with this is the most recent version.
  • The one “every game needs this” feature that isn’t in this package is configurable joystick/gamepad support. I’m not sure whether it makes sense to try to add it or not.

Finally, there have actually been a number of interesting-looking SDL “game engines” released lately, so you should be aware of those in case one fits your needs better than Jumpcore does. One I’m aware of is 2D Boy’s Boy engine (though that one does not appear to come with build files for anything except Visual Studio); if you know of others feel free to share them in the comments below.