New Backpack Display

GH1_NewInventory

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

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.

Character Generator Arranged

GH1_NewChargenLayout

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…

GH1_NewChargenDev

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

The Ugly Part of Refactoring

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.

Full Screen Map Working

GH1_FullScreenMap

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

GH1_OriginalLayout

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

GH1_UltimateDisplay

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

GH1_WizardInterface

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:

GH1_OverheadMenuConcept

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.

Scarn the Cyberdoc

GH1_Scarn

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.

GH1 World Map Encounters

800px-Spaghettata

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

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.

GH1_ResizeStart

Things Dungeon Monkey Eternal can learn from GearHead 1

DME_vs_GH1_Mk2

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.

GearHead-1 v1.201: The Inevitable Bugfix

GH1_Scarn_vs_Vespa

I’ve just uploaded a bugfix release of GearHead-1 to GitHub. It fixes a crash that occurs at the conclusion of the kidnapping story. You can download it from here:

https://github.com/jwvhewitt/gearhead-1/releases/tag/v1.201

This version also includes several of Michael Deutschmann’s patches and fixes some minor scripting problems.

Important note for Windows users: I’ve moved the gharena save+cfg files from the config folder to the user folder because the config folder is a PITA to get to in Windows. When upgrading to the new release you can find the old folder by doing a search for file “gharena.cfg” on C drive, then copy your save games and config file to the new gharena folder that will be created in your home folder the first time you run v1.201. Sorry for the inconvenience.