Mar 12

The Old Old Days


While backing up files today I found some pictures from GearHead’s past. The initial version of the isometric SDL interface was, as you can see, a mess. There was an earlier graphical version of the game that used an overhead view and a different FreePascal graphics unit for rendering (I think it was called GraphiX? I can’t remember), but I can’t find any screenshots of that one.

I wonder what font I used in pre-release GearHead?


Initially, I planned for each portrait to have five facial expressions depending on the character’s mood. In retrospect I’m glad I didn’t go with that because it would have been tons of work.


I also found this paperdoll avatar worksheet I started but abandoned. The bellbottom pants would have been authentic to Mobile Suit Gundam, at least.


Finally, I was reminded that several of the monsters in the game started out as clay models that I photographed with a webcam and traced in Ultimate Paint.

Looking at these old pictures makes me quite proud of how far the game has come.

Mar 11

New Backpack Display


The inventory/equipment interface has a new look. Next step: expand and improve the item descriptions.

Mar 10

Knowledge is Power

One of the big problems with GearHead1 is that the game just doesn’t provide all the information that the player needs. Even when information is provided, it’s not always in a useful form. As Powerglide says, knowing is half the battle.

The next interface that I need to work on is the inventory/equipment menu. I’ll be importing the system from GH2 in which item info is shown as the menu is browsed. This makes it much easier to see what you’re carrying, and understand the difference between different items.

GearHead2 Inventory Menu

GearHead2 Inventory Menu

There are a few improvements I plan to make over the basic GH2 model:

  • Show the PC’s name and encumbrance level, and allow switching to lancemate inventories by pressing left or right (as in Dungeon Monkey Eternal).
  • Show volume. It’s an important stat for Mecha Engineering, but at the moment it’s completely hidden in GearHead1.
  • Instead of showing a weapon’s Speed stat, convert that into an exact recharge time. Along the same lines I should show the PC’s exact reaction time on the character sheet.
  • Also for weapons, show which skill it uses. Bonus points for showing the weapon’s attack score (user’s skill + stat bonus + accuracy + MV/TV/Se).
  • Allow some way to see a list of the character’s defenses, in order of precedence, indicating the attack types each is good against.

I don’t think I’m going to import the item images yet since not every item has an image and the last thing I want right now is to add something else to my list of needed content.

Mar 09

Character Generator Arranged


I’ve updated the character generator with DynamicRect objects that reposition themselves according to the size of the window. I also fixed some of the problems and inconsistencies in the character generation process. For instance, the “Select Job” menu now shows the skill bonuses and staring cash of each job.

Please note that at this stage I am merely arranging panels; making them beautiful will come later. There were a number of missteps along the way…


For design inspiration I’m looking at computer interfaces and HUDs featured in giant robot cartoons.

Mar 08

The Ugly Part of Refactoring


Today’s commit of GearHead-1 is at that ugly stage of refactoring where everything compiles but nothing works properly. The TSDL_Rect records which previously defined the positions of various bits are being replaced with DynamicRect objects that update their position based on the screen dimensions. My next step is to rearrange all of the needed zones so they end up somewhere sensible, and after that I can worry about making them pretty.

I’m thinking of adding the open source font Orbitron for titles and headers. Actually, if it reads well, it could probably also be used as the main text font. Unfortunately, playing with fonts will have to wait until the game is fully playable again.

Mar 07

Full Screen Map Working


Two tasks complete- the game screen is resizable, and the map display takes up the entire screen. The next big challenge is to decide how I’m going to arrange the UI components.

The Original Layout


This is what we’re starting with. Much of the screen is filled with blank space. The map takes up a little over half of the visible area. It is clearly a product of the 90s, if not earlier.

Idea #1: Ultimate Layout


In this layout, styled after a game I may have played far too much of in my childhood, all the UI components get shoved over to the right hand side of the screen. When the mecha control menu is active it takes space from the top half of the message console. This display scales well as the screen gets bigger since the height of the message console can always be increased.

Ultimate layout with full-desktop window.

Ultimate layout with full-desktop window.

One problem is that because of the shape of the isometric tiles, horizontal screen space is more valuable than vertical screen space. At 800×600 you can see further up and down than you can left and right. Even at 1366×743, you can see one tile extra in the vertical direction than in the horizontal. Also, it may just be because I’m not used to this layout yet, but I often missed messages popping up in the console.

Idea #2: Wizard Layout


In this version, also named after an RPG of yesteryear, the interface is scrunched to the bottom of the screen. The message console retains its original position, while the character info display gets cut down to just the most important info and moved to the lower left corner.The panels are transparent so they don’t block the map display.

Originally, I planned for the mecha control menu to appear to the right of the message console, but I’m not sure that’s the best place for it. Another option would be to extend the message console to the full width, and stick the mecha control menu above the PC’s head as needed, as shown below:


Artist’s conception.

Is that a weird idea, or do you think it works? The control menu would probably also be semi-transparent.

Wizard layout with full screen window.

Wizard layout with full screen window.

As the window size changes, the Wizard layout UI elements remain centered at the bottom. Personally, I think this looks better than the Ultimate layout since the play area covers the entire screen. It also has the advantage that it’s basically the same interface as used in GearHead-2. One concern is that it may not be easy to read text on the semi-transparent panels. My other concern is what to do with the mecha control menu.

So, what do you think? Please vote for your favorite layout in the comments.

Mar 06

Scarn the Cyberdoc


I just started a new campaign, this time with a cyberdoc/robotics expert. My plan is to concentrate on personal scale combat and eventually retrieve the Argoseyer. I can’t remember where all the bits of it are but I’m not about to let that stop me.

Mar 05

GH1 World Map Encounters


Someone recently asked me about how world map encounters work in GH1. I wrote the following explanation, which hopefully makes sense of some of the spaghetti in ADV_FederatedTerritories.txt. Read on if you dare. Continue reading

Mar 04

Graphic Weirdness

I’ve started work on updating GearHead’s graphics. The first step is to clean up some of the weirdness inherent in the source, which honestly is a whole lot of weirdness. Today’s big accomplishment: the game window can be resized, and the dialog console reacts to the size. It’s the only part that does react but at least that’s a start.


Mar 03

Things Dungeon Monkey Eternal can learn from GearHead 1


Continuing from yesterday’s post, there are also a lot of things that DME could take from GH1.

Goals require meaningful choices

One of the great things about GearHead is that there are a lot of paths for the player to take, each with their own risks and rewards. Many of these paths require particular skill sets; if you want to recover the Argoseyer, you had better be really good at personal scale combat. The player will make different choices depending on whether they want money, experience, reputation, gear, or to practice a particular skill. This allows long term planning and anticipation.

In Dungeon Monkey Eternal, on the other hand, every adventure is pretty much like the adventure before it. Due to random generation some might offer more experience, others more gold, but that is beyond the player’s ability to control.

Fairness is overrated

The first time Xiap walked into Snake Lake, he was attacked by an assassin that he had no chance of defeating. During the fight he ran into a mall and bought a gun. With the help of some nearby guardians, the assassin was defeated. It was awesome.

At the moment, DME scales adventures to exactly match the level of the party. This can feel uncomfortably safe.

NPCs should matter

One of the most important things the PC should do in GearHead is to make connections with NPCs. You need people to ask for rumours, people to give you missions, and lancemates to join your party. The act of making alliances with certain NPCs is likely to make enemies of other NPCs. Every NPC is potentially important.

In DME, on the other hand, most NPCs are just scenery. The few NPCs that are important are usually only important once, and once their part in the quest is over you will never need to see them again. I think adding dynamic plots and a GH style chatting system would help out here.

Another advantage that GH1 NPCs have over DME NPCs is portraits. Having a recognizable face, even if it’s a face shared by dozens of NPCs in the game world, gives the GH1 NPCs a sense of personality that the DME NPCs lack.

There will be consequences

Finally, choices in GH1 can have lasting repercussions. Fight the Bone Devil Gang for the Federation Defense Force and you’ll get trouble the next time you try to enter Kist. Steal one little antique vase and the Guardians will never let you forget about it.

Actions in DME should change things in the persistent world. Of course this would be easier if there was a real campaign world, as opposed to just a Moria-esque between-mission village. It would also be easier with dynamic plots.