Why GearHead Caramel?

Because I want the new GearHead game to be a coffeebreaklike, but I don’t like coffee and can never remember how to spell macchiato.

by Robert Meeks

by Robert Meeks

A large part of this is me wanting to do something different from GearHead2. Instead of trying to fill a massive world, I want to bring a limited area to life. Instead of adding enough content for a thirteen episode random epic plus side quests, I want to focus on a shorter campaign where decisions have immediate and obvious consequences. Finally, instead of committing myself to a project with no clear endpoint I want to commit myself to a project that will at some point be finished.

My first goal is to get the mecha construction and combat mechanics working in Python. After that, a simple combat game like the Arena option in GH1 and GH2, just so that there’s a playable GearHead game of this new Pythonic branch out there in the world. Then while the combat mechanics are getting playtested there, I can work on the roleplaying aspects in the background.

The next roleplaying episode will likely be set in Hogye one year after GH1 (four years before GH2). The mecha sporch tournament is going on, and various forces are using this as cover to investigate the fragment of Typhon being dissected at Calmegie Research Station. The plot will be moved forward by which of several plot threads the PC chooses to follow up on; completing a core encounter will advance the story state, as other factions & actors react to the new state of events.

Edit- Here’s a link to the github repository for GearHead Caramel.

June 30th, 2013, posted by Joseph Hewitt

Learning Python



I’m still learning Python, and even have something vaguely playable to show for it. I’m feeling a lot more confident about Python as my new working language… unfortunately, I haven’t made a lot of progress on GearHead.

I was searching for a platform game framework written in Python to use in a game jam event at my school, but couldn’t find anything. So I wrote my own. It has four different enemies with different behavior patterns, an unfinished map editor, and a radically 1990s name/title screen. Player death hasn’t been programmed in yet so you’re on the honor system to stop playing when you lose your last heart. The graphics are roguelike tiles because I love roguelike tiles.


And here is my git repository for the GearHead stuff I’ve been working on, which is even less playable but potentially even more educational. Some of the bits- the menus, the input routines, and so on- are being prototyped in the platform game for eventual inclusion here. The one interesting thing is the dialogue module. Instead of generating a fixed dialog tree structure during plot generation, conversations are built fresh from a list of possible interactions at the start of every conversation.


One last Python link- Peridot’s GearHead Prime demo.


June 16th, 2013, posted by Joseph Hewitt

Some GearHead Updates

It’s been a while, but here are some updates:

  • Work continues on the GearHead Python conversion. You can see the forum and the design doc for recent developments.
  • This site has been updated with the latest WordPress, which should hopefully put an end to the troubles we’ve been having.
  • Mischa’s Story will continue in the new year with a visit to the Rishiri Dominion’s high tech asteroid prison. Also, the first chapters of are being prepared for release as free ebooks, so you’ll be able to catch up with what’s happened so far and learn some new things about the L5 region.

December 6th, 2012, posted by Joseph Hewitt

BugFix for ghar-0100-sdl-win.zip

There are bound to be one or two glitches in any first release.

I’ve just uploaded new versions of ghar-0100-sdl-win.zip and ghar-0100-ascii-win.zip that should work.

To compile just install Free Pascal and type “fpc Arena_R” at the console. On Linux you’re also going to have to install some dependencies; Windows users can get the dll’s from the sdl-win archive.

  • liblua5.1-0-dev
  • liblua5.1-0
  • libsdl-image1.2
  • libsdl-image1.2-dev
  • libsdl-ttf2.0-0
  • libsdl-ttf2.0-dev
  • libsdl1.2-dev
  • libsdl1.2-whatever-your-distro-needs

Most of the sdl stuff will already be installed on most systems, but with Lua you need to make sure you have 5.1 instead of/in addition to Lua 5.0.

Let me know if you run into any more problems, I’ll try to fix them as quickly as possible,

December 26th, 2011, posted by Joseph Hewitt

Merry Christmas: GearHead Arena-R Released

As a special treat to GearHead fans (or at least the more gearhead-oriented of them) this Christmas, I’m pleased to announce the first release of GH: Arena-R.

What is it?

Arena-R is a remake of GearHead:Arena using the GearHead-2 engine and Lua scripting. It’s a learning exercise for myself and for others who want to make their own content. Together we can fill up this empty world. Who knows, maybe this time the rusty scepter quest can even be finished.

What can it do?

At the moment, not much. The only town in the game is Hogye Village. There’s a mecha arena and a couple of dungeons. Of course you’re free to add new content and modify the existing stuff- in fact, that’s the whole point!

Creating content with Lua is much easier than it was with ArenaScript. Conversations may be laid out in a natural fashion. There are a couple of (hopefully) well-documented tutorials to help get you started.

The GH2 world map navigator has been completely rewritten. I hope that you’ll enjoy this version much more than the previous.

How can I help?

Download the game and see what you can make with it. Share your results here or on the forum. Make suggestions, report bugs, and have fun trying to break things.


December 24th, 2011, posted by Joseph Hewitt

Mischa Goes to Midas

Mischa's Story

The new chapter of Mischa’s Story has begun at Ataraxia Theatre. This one should last up until the end of April or so; I’ve been working hard on a buffer so I won’t have any drawing to do during our vacation to Canada.

In other news, GearHead2 now runs with the Lua scripting installed. There isn’t much functionality yet and some features have been temporarily disabled but it seems to be working as planned.

February 8th, 2011, posted by Joseph Hewitt

The Cavalier Code

Obviously, when you have a large number of people walking around in colossal death machines, you’re going to need a few ground rules.

Quick sketch. Wish I had my black pen at home.

The Cavalier’s Code is an honor system followed by cavaliers. It regulates many aspects of the job such as combat and employment. There are several local variants, such as the Crihna Rede and Neo Duello, but they all have the same basic structure. A copy of the rules can be found at most cavalier clubs and arenas.

Most of the rules deal with the use of deadly force. To minimize damage, there are several restrictions placed on where and when cavaliers are allowed to fight. Attacking civilians is forbidden. Attacking a cavalier who is not prepared for combat is also forbidden. Battles must begin with a formal challenge. Note that the definitions of “prepared for combat” and “formal challenge” are pretty loose- if a cavalier is awake and inside of a mecha, they’re fair game. Also note that local laws may place further limits on mecha combat; in general, it’s illegal to challenge someone within city limits.

Next are the rules regarding contracts and employment. It’s important that employers can trust cavaliers, otherwise there’ll be fewer jobs for everyone. Once you agree to a contract or a duel you must honor your word. If you enter a long term contract, you may not refuse missions from your employer. Renegotiation may be possible if the situation changes.

Cavaliers have a duty to protect those in need. Cities allow cavaliers to operate within their borders knowing that in case of attack, those cavaliers can be rallied to defense. You are expected to aid those who provide you with food, lodging, and repair. Failure to do so is not strictly forbidden, but will result in great loss of face within the cavalier community.

Finally there are some philosophical ruminations on the nature of being a cavalier. By entering the battlefield you are assenting to your own death. Your enemy today may be your ally tomorrow. Your goal is to complete the mission, not to kill your opponent. Leave grudges on the battlefield. An honorable death demands no reparations. This is the section people quote when they want to look all wise and mysterious.

It should be noted that even pirate and outlaw pilots follow these rules. To follow the code is to be a cavalier. A pilot who intentionally breaks the rules is no longer a true cavalier, and as such is no longer entitled to the protections and benefits that cavaliers depend on.

February 6th, 2011, posted by Joseph Hewitt

On Being a Cavalier

A typical (though oddly familiar) cavalier.

Cavaliers are the wandering adventurers of the GearHead universe. The only things you need to join their ranks are a mecha and a blatant disregard for your own personal safety. Being a cavalier is more than simply being a pilot; it is a way of life, a statement of personal freedom, and quite often a cause of long term unemployment. Those who excel at the job can look forward to riches and glory. The most successful cavaliers are as famous as pop stars. In fact, some of them are pop stars.

Most cavaliers are fairly young. 16 is the youngest age for getting a mecha operating license in most jurisdictions. By age 30 or so, most cavaliers have either earned enough to retire or have gotten into a safer line of work. A small but growing number of cavaliers do things the opposite way, and take up adventuring after they retire.

Cavaliers come from all walks of life. Among their ranks you can find soldiers, truckers, doctors, and monks. For the downtrodden this job offers a chance to change the world, or at least their own personal situation. For the wealthy and privileged it can be a chance to prove themselves. For the solidly middle class, becoming a cavalier might be their one shot at an interesting life… or in the worst case scenario an interesting death.

The first modern cavaliers appeared right after the Night of Fire. As civilization broke down, so too did what was left of the military. Many units refused to acknowledge that the war was over and just kept on fighting. Some built strongholds which would become the first fortress-cities, while others abandoned their post altogether and became wandering marauders. The common people were left to the mercy of whatever mecha-equipped thugs happened to be passing through their refugee camp on any given day. Not all mecha pilots took advantage of the chaos to enrich themselves. The first cavaliers were those who wandered the wastes, helping people and righting wrongs. They defended villages from marauders, rebuilt homes and power plants, and helped establish communication between the settlements. When a problem was solved they moved on to the next town.

Note that according to modern historians, there probably wasn’t as much difference between the cavaliers and the marauders as people would like to believe.

On Earth, cavalier culture is strongly associated with the Pro Duelist Association. In the 50s Cavalier Style was introduced to the L5 region by the pop band Love Magnet. Even on Luna a small number of cavaliers are allowed to operate, so long as they pass a test of ideological purity first.

This is part one in a series. Since I’ve asked people to help make content, I’m going to organize and post all of my writings and notes on the GearHead universe. Come back next week for the cavalier honor code and how cavaliers make their money.

January 14th, 2011, posted by Joseph Hewitt

Learning Lua; Need a Paradigm

So I’ve started learning Lua with the intention of replacing ASL with a language other people might be able to use. Now that Lua is a standard package with Free Pascal it’s a natural choice for a scripting language, and it’s been no problem to set up and use… by itself, at least. My big problem is trying to figure out how to incorporate it into GearHead.

I can see two obvious ways to do this. First, I could do things the way I already do them and attach individual Lua scripts to every gear that needs them. When the time comes to trigger a script then the scripts for that gear will be sent to the stack and the proper function invoked. One problem I can see with this is that function declarations from previous gears might be hanging around in the Lua environment; suppose I want to process a “START” trigger, and the current gear doesn’t have a “START” script but the gear which came before it did. Wouldn’t this execute the previous gear’s START function a second time, since it hasn’t been overwritten?

An alternate way to do things would be to make each script-holding gear a Lua object and access their scripts as methods. In this case, how do I deal with having parallel representations of each gear? When a gear is created/disposed of I’d have to create/dispose the parallel Lua object, which seems like a pain in the arse… though, I guess, no more a pain in the arse than creating/disposing of attached attributes.

Whichever way the scripting is done, there’s one more very big problem which I need to address: How to merge scripts together. GH’s plot creator takes multiple component scripts and combines them into a single script. The general rule is that for any given trigger the newly added effect happens first, then the previous effects are called. ASL was designed with this in mind but I have no idea how to do it with a language such as Lua.

Any ideas?

October 29th, 2010, posted by Joseph Hewitt

My Summer Project: Dungeon Monkey Unlimited

As you know, every couple of years I like to take a bit of time off and work on a side project. World, I give you Dungeon Monkey Unlimited: a combat-oriented tactics-style fantasy RPG. Lead a party of up to four adventurers through a randomly generated world.

Read the rest of this entry »

September 14th, 2010, posted by Joseph Hewitt