New Walls and Template

Just in case there’s any interest, here is the new rusty steel wall spritesheet:


And here is a blank wall template:

GH1_NewWallTemplateThe remaining walls that need to be done are Residential Wall, Stone Wall, Hospital Wall, Plain Wall, Gold Wall, Wooden Wall, Stainless Steel Wall, Earth Wall, Shop Wall, Fortress Wall, Industrial Wall, Neon Wall, Restaurant Wall, Garage Wall, and Organic Wall.

New Walls

Picture of the new rusty steel wall

I am going to try to add thinwall sprites for all of the wall types. The former thinwall sprites were so large that they completely hid the tile behind them, so I’ve reduced the height of the new ones a little bit. The color scheme of the new walls is inspired by the Sunrise real robot cartoons of the 80s.

There are many improvements that could be made to the map display. As seen in the door tiles above, there’s some mismatch between the walls and the ground tiles underneath them. This could be fixed by giving ground types a border, so the tile next to the door could have carpet on one side and dirt on the other. Borders would also fix the patchwork problem ground tiles currently have. Another big improvement would be to add signs or some other way of telling the purpose of a building just by looking at it. Although some walls are already associated with specific businesses (shop walls, garage walls, hospital walls), this is not applied consistently and doesn’t cover all building types.

Bad Plot Behavior in GearHead1

NPC saying "I think Cahewroi needs a mecha pilot to protect some trucks."

Does she really?

One thing that’s very clear about GearHead1 is that I was making everything up as I went along. Several features that would go on to become very important (such as email, memos, and factions) were not introduced until well into development, meaning that many of the plots and missions that were created earlier either lack them or use them poorly. On a related note, it took me a long time to figure out standards for plots, so many missions are just plain weird. Here are some of the bad plot behaviors I’m going to try to fix:

  • Not giving a memo when a mission is granted, or losing the memo before the player collects the reward.
  • Plots setting wrong or inappropriate memos. Several core story episodes are guilty of this.
  • If a rumor tells me that a certain NPC is offering a job, speaking to that NPC should never lead to random chatter. If the PC has no chance to get the job this should be communicated through dialogue.
  • Missions should be described, and the PC given a chance to accept or decline, before the NPC launches into the “Are you ready to go?” spiel.
  • Most of the try-to-get-a-mission sequences allow two tactics: sound tough with Intimidation skill or sound concerned with Conversation skill. This should probably be made more explicit, and the weirder mission checks reworked.

Please let me know in the comments if you encounter any of these problems in the wild; an exact quote taken from the plot involved should allow me to identify it. Also, let me know if you have any other mission problems or pet peeves.

Young Joe was an arse.

One of these guys is a bit more of an arse than the other.

Young Joe vs Old Joe

Through playing GearHead-1 I’ve come to realize something many of you probably already know: my twentysomething self was a bit of an arse.

I mean, in many ways he was also quite brilliant, but when my lancemates die of poisoning on the bus to downtown Snake Lake, despite the fact that they had plenty of quick fix pills and first aid packs, I want to pull Young Joe aside and punch him. Same deal when my lance, which includes an expert repairman, discovers Omega-1004 stuck in a cave and is unable to revive him because the character with the repair skills is not the leader of the group.


I seem to recall that I had reasons for these design decisions. I can’t remember what they were. So, I’ve decided to fix them.

Starting from the latest git commit, status effects will have no effect while the PC is jumping forward in time and cannot react to them. The skills menu will allow use of skills known by all lancemates. I’m sure there are still lots of arbitrary unfairness and interface shenanigans- so far I’ve lost two mecha from entering combat overburdened after forgetting about autopillaged loot- but hopefully this is a step towards making sure that all your future deaths are the result of human error rather than machine contrariness.

Martian Princess

Xiap’s job was, literally, to look for trouble. However, as a recon pilot stationed in Hogye, he never expected to actually find it. Nothing ever happens in Hogye. That changed a few days ago when he learned that the accident that killed his parents may not have been accidental, and was nearly done in by an assassination attempt himself.

Now he was on the road looking for answers. Technically, this was also part of his job description, but it didn’t seem to help much. After crossing the Sunrise Bridge on the way to Namok his sensors picked up combat ahead; a distress call came through.

“”My name is Yjin of the Free Mars Republic. I was sent to Earth for safety, but the enemies of my people have followed me here. Help me to defeat them and you will be greatly rewarded.”

“Uh, okay?”, replied Xiap, not quite knowing what else to say. This section of road was frequented by bandits, and he assumed they’d be facing nothing more dangerous than a BuruBuru. Xiap activated the jets on his own BuruBuru and raced towards the coordinates.

The next few moments came as a blur. A queztal gunship crested the mountain, its gatling laser effortlessly severing Xiap’s mecha’s left arm in a single shot. Artillery fire from beyond the ridge reduced the forest to a smoking wasteland in an instant. Yjin’s neko burst forth from the pond she had been hiding in, blasting the queztal out of the sky, then just as quickly diving again.

Xiap raced for one of the few remaining patches of cover. He briefly considered running away; there was no doubt that these attackers were far beyond his fighting ability. But then, fighting had never been his strong point. He contacted Yjin

“If I locate their artillery units, do you think you can take them out?”, he asked.

“Just show me the way”, she replied. “You know this planet better than I do.”

Celebrity portrait by Ladene Kosaka.

Celebrity portrait by Ladene Kosaka.

So this is what happened to my current GearHead character shortly after starting out. The plan worked- Xiap’s stealth and awareness skills were good enough to locate and hide from these severely overpowered opponents, and once they became visible Yjin flew in and picked them off one by one.

I think this illustrates a number of things that GearHead1 does really well. The procedurally generated plotlines result in all kinds of emergent goodness, making the world seem dynamic and alive. A short time after the above events Yjin betrayed Xiap in Mauna. I should have listened when people told me she was villainous, but she was also a damn good lancemate. These days she shows up every once in a while on the enemy team when Xiap is doing a mission.


My history so far

Another thing that I like is that the game does not in any way try to keep the player safe. It’s very easy to wander into a situation that you’re not ready for. Fortunately, there are often ways to deal with problems other than trying to fight your way out… for instance, having someone else fight for you. And when in doubt, you can always run away. Usually.

GearHead 2 on GitHub


Just a quick note to let you know that I’ve started a repository for GearHead2 on GitHub. Much like the GH1 repository, there are a few changes which never got uploaded to SourceForge but nothing too major.

Dungeon Monkey Eternal


Dungeon Monkey Eternal is the latest game in the Dungeon Monkey series, and the first written in Python. I started this project as a warm-up for GearHead3, under the apparently correct assumption that diving straight into a big project using a language I didn’t really know would have been a bad idea.


You can create a party of up to four characters, then take them on a series of short, randomly generated adventures. Between quests the party will return to town for healing, shopping, and changing the party roster. There’s enough content to keep going until around level 12, after which things start to get a bit sparse. I should really add a capstone adventure so that characters reaching that level are able to retire.

Later on I’ll post more about the bits of DME that are going to be used in GearHead 3. For now, you can download the game from GitHub. To play it you need Python 2.7 and PyGame installed.

Hello Terra!

It’s been a long time, hasn’t it?


Just so you know, I’m not dead yet and neither is GearHead, though neither one of us are quite as active as we used to be. This past while I’ve been busy with graduate studies and, to be honest, I feel a bit guilty that I’m not working on my thesis right now.

A few days ago I sat down to finally get GearHead: Arena working on my current laptop. I also set up a new repository for it on GitHub. Please note that this doesn’t mean that the game is back in development, per se, though I couldn’t resist diving back into the code to update some things and fix some problems. I just want to make sure it remains available and working on modern computers.

My current plan is to play through GearHead1 and GearHead2 in preparation for working on GearHead3. But don’t get yer hopes up about that game until I have something playable to show.

I’ll be posting observations about my GH1 playthrough as they occur to me. Wish me luck.