New Web Hosting, Same Old Site

Moopsy dealing with the summer heat. I have also been drained of all my energy but I am nowhere near as cute.

I have moved my web hosting, and am planning to freshen up the GearHead website a bit, but have not gotten around to it yet. It’s summer in Korea. It’s hot. I’ll let you know when it’s done.

Polar Bear Comix at TCAF Digital Marketplace

From now until May 24th, all Polar Bear Comix are available in print form from the Toronto Comic Arts Festival Digital Marketplace. If you’re in North America or Europe this is your best chance to get my books without taking a trip to South Korea.

GearHead Arena Part 2: Gregtek’s Redemption

Gregtek’s journey continues as he explores Snake Lake City.

GearHead Arena: Revisiting a Classic Mecha Roguelike

I have started a playthrough of the game that started it all, GearHead Arena. Listen to an old man ramble about the discourse on early 2000s See him try to remember details about the game that he, himself, created.

Valentine’s Day at Calmegie Research Station

I was planning to redo the old GearHead valentine that I made years ago and this comic just kinda spilled out. Here is the old one, for those who don’t remember.


GearHead Caramel v0.960: Happy Seolnal Release!

Finally, a new release of GearHead Caramel! I’ve just uploaded version 0.960 to all the usual places- Steam,, and GitHub.

You would not believe how much work went into this release. I mean literally, you won’t believe it, because most of the changes should be mostly invisible. If you follow me on social media you’ll have heard me talking about the brand new quest system. Well, there’s a brand new quest system, and it seems to work well… but it’s not being used by any of the adventure modules yet because I need to write more content for it. Also, some longstanding bugs have been fixed, including a rare crash upon starting a campaign. Hopefully you won’t notice this change because hopefully you never had the game crash on you when starting a scenario, and now you never will. But it was a lot of work! And this bug goes all the way back to GearHead 1!

The next step for GearHead Caramel will be finishing up Raid on Pirate’s Point. I needed the new quest system for this, and I also needed to fix the map generation bug because one of the maps in that scenario crashed the game at a much higher rate than normal. After that, I want to add a few more short-ish scenarios. The new quest generator should make that easier since I won’t be reinventing the wheel with each one.

Here’s the complete list of changes. As usual, try it out and let me know what you think. And happy year of the dragon!

  • Fixed bug in DeadZone Drifter stub
  • Certain weapons and mecha have been rebalanced; existing instances will be unaffected
  • Weapon thrill power now actually based on rank, ha ha ha
  • Plots can contain extensions
  • Added lore browser to memo system
  • Refactored quest system to be entirely QuestLore based
  • Okapi puzzle memo now uses same font (medium) as other memos
  • Fixed world map encounters bug
  • Burst fire weapons have increased thrill power
  • Intercept weapons have their thrill power lowered
  • Fixed do_partial_restore in MultiMission
  • Closing doors via right click will now work
  • Mouseover info will list items in tile
  • Destroyed items appear red in inventory display
  • All hidden models get revealed at the end of combat
  • Window close button should now properly close the game
  • Scenes and rooms will expand if larger area is needed for contents
  • Weapon is_operational bug fixed
  • Items on floor should always appear behind characters and mecha
  • Lost forager will not be selected for random plots while lost
  • Gradient map prep can now place rooms in requested bands


Lore Based Quest System

I have completed the refactored procedural quest system for GearHead Caramel. Some of you might remember that this is the big thing I’ve been working on for most of 2023. Poor health, especially the severe brain fog I had for six months, prevented me from getting much work done. But now I am in Canada on vacation visiting my family, so I’ve finally got it done. You get a lot of free time in Newfoundland in winter.

Here’s how it works. You start by describing the potential outcomes for the quest- an Outcome is defined by a verb, an object of the verb, and some Lore which describes the outcome in more specific detail. The verb is selected from a list of standard options. The subject is usually a character or a faction. So, an Outcome might be something like “Defeat Aegis” or “Overthrow Frank”. So far so vague. The Lore describes this outcome in more specific detail, like “Aegis is trying to steal a shipment of impervium” or “Frank is a massive jerkface and we all hate him”. In addition to text descriptions, Lore also has a category and tags so the program can understand how to process the lore.

Each Outcome is then used to generate one or more Conclusions. The Conclusion contains the gameplay elements of the Outcome- usually a boss fight, or some other climactic encounter. The Conclusions then add a number of Tasks- actions which must be completed to unlock the conclusion. The Tasks and Conclusions are atomic; they don’t communicate with each other, and are only connected by Lore. In general, a Task will inherit some Lore from the Task/Conclusion it leads to. It will lock one piece of Lore, and add a new piece of Lore. A Task or Conclusion is activated when all of its required Lore is known by the player.

Take that, Frank.

For instance, the conclusion to Overthrow Frank might generate a Conclusion in which you have to blow up Frank’s house. To do this you need to know both “Frank is a massive jerkface and we all hate him” (inherited from the Conclusion) and “Frank is at home eating crackers like he knows the place”. A Task is added which locks “Frank is at home eating crackers like he knows the place” but adds the new Lore “Nobody knows where Frank is right now”. So to complete the quest, first you have to figure out where Frank is, then you have to go blow up his house.

Note how the mechanics of the quest are separate from the narrative of the quest. This should allow greater versatility and re-use of components. When creating a new procedural narration technique, those are very important things.

After the Quest is built, any “hanging lore” which doesn’t get revealed by a quest Task is handed off to a Lore Handler plot which will allow the player to learn the lore from rumors/conversations.

A Quest can have multiple Outcomes. For example, the Overthrow Frank quest might have a separate Outcome where you can “Help Frank become king of everything”. A single Outcome can have multiple Conclusions, so instead of blowing up Frank’s house you might be able to overthrow him by fighting him in a one-on-one duel or by bribing his bodyguard to stuff him in an envelope and mail him to Norstead. The first Conclusion to be completed ends the Quest. Multiple paths through the Quest will be generated naturally, whether or not there are multiple Conclusions/Outcomes.

The system seems to be working as intended (after a whole lot of testing and debugging yesterday). I need to add more content, then I’ll make a release as soon as possible. In the meanwhile you can read the source code for the quest system here.


GearHead Caramel v0.956: A Minor But Important Update

I’ve just uploaded GearHead Caramel v0.956. You can get it from all the usual places- Steam,, and GitHub.

This version corrects some bugs that were discovered last week. It also adds two new eyecatch cards by the amazing cartoonist Radou, and some sound + portrait improvements from Anton Risberg. Here’s the complete list of changes:

  • Added two new eyecatch cards by Radou
  • Fixed AutoJoiner/AutoLeaver crash at world creation
  • Plots may now modify cutscenes
  • Added checkout sound fx to shop
  • Some portrait bits tweaked by Anton Risberg
  • Fixed crash if no boss monster generated for The Night Stalker plot
  • Fixed numbers typo in DZD Wujung entry cutscene
  • Fixed bug where campaign would remain in memory after quitting because of pbge.my_state.view

As usual, try it out and let me know what you think.

GearHead Caramel v0.955: Just One More Thing

I just made a quick bugfix release. Some old save files were broken because of a “deactivate_on_win” bug; that should now be fixed. You can get v0.955 from all the usual places- Steam,, and GitHub.

GearHead Caramel v0.954: Dangerous Dungeon and Display Stuff

I’ve just released GearHead Caramel v0.954. You can get it from all the usual places- Steam,, and GitHub. This version makes dungeons slightly more dangerous- personal scale damage has been increased, and certain monsters are more likely to hit your characters. Some new equipment has been added to shops to help you deal with these new threats.

Another change is the addition of a config option to indicate your party members on the map. No more will you enter a building and wondering who’s on your team and who isn’t. If you don’t like it, you can turn off the indicators from the config menu.

Plus, there are a bunch of smaller changes. Multiple bugs have been fixed. Carrying capacity is now shown in the backpack display (for characters- you can load your mecha with gear until it can’t even move). There are some new portrait bits. Here’s the complete list of changes:

  • Carrying capacity now shown for characters in backpack display
  • Athletics skill now increases carrying capacity
  • Right and left keys can be used to scroll through lancemates in inventory interface
  • Increased damage of personal scale attacks
  • Rebalanced some monsters to make them more dangerous
  • Added config option to indicate lance members on map
  • Fixed music volume bug
  • Added some new portrait bits
  • Fixed crash if PC name has space or special character in it

As usual, try it out and let me know what you think. Thanks to everyone who reported bugs and/or requested features.