Current GearHead1 Goals

Mikki, Watu, and Seok-hyun from "How to be Human"

As I’ve said before, my current goal for GearHead-1 is to polish up what’s there rather than to expand the game. Here are my top priorities for things that need improvement.

  • The plots and other scripts should work consistently and without too many errors. I realize that it is probably literally impossible to eliminate all errors, but at the very least I can systematically go through the contents of the Series folder and make sure some minimal standards are met. For now: make sure the combat missions use the threat function, set memos correctly, and clean up on exit.
  • As far as I know the GH1 core story can’t reach a deadend state, but I want to run some tests to make sure.
  • The SDL version of the game should be better looking. Everything that needs graphics should have graphics- there are still a number of things which don’t have a proper sprite. The graphics should serve their intended purpose of conveying information to the player. They should look unified and attractive. I plan to use some of the lessons I’ve learned from Dungeon Monkey Eternal here. For now: draw sprites for each of the wall types, add sprites for the props and monsters that don’t currently have one.
  • The interface could use a checkup. The most commonly used interfaces- Character screen, Field HQ, Inventory, and Message browser- need to play nicely with one another. Mouse handling could be more intelligent.
  • Sexuality in GH1 is really really weird. There is no such thing as homosexuality, but being bisexual is basically a superpower. This can be improved.
  • Some of the improvements from GearHead-2 should be imported, such as the inventory/part browser info display and the personadex. At the same time, the improvements I’m making to GearHead-1 need to be ported into GH2.
  • Speaking of GH2, the SDL mode map display should take up the entire screen just like in that game. There’s no reason for over half the screen to be filled with panels that are usually not in use. Also, the SDL screen ought to be resizable, and fullscreen mode should query the video card to start in a sensible mode. Have you ever peeked inside the sdlgfx.pp unit? I obviously had no idea what I was doing. Seriously, look at GHFlip and tell me if you can figure out what I was thinking.

Note that this list leaves out various improvements and refactorings that would maybe improve the code base but have zero impact on the user experience. For instance, did you know that it’s possible to declare objects in FPC without switching to ObjPas or Delphi mode? Turning the gear records into objects would simplify the code immensely, but it would take a long time to do and it wouldn’t improve the game in any way that would be visible to players.

I think this list of goals is quite achievable. Is there anything else you think I need to do?

GearHead-1 v1.200

Seargent Huff from The Last Human AliveI’ve just uploaded a new release of GearHead-1 to Github. You can download compiled versions for Windows and Linux, as well as the source code, from here. Let me know if you have any trouble… I haven’t done this in ages and just hope I packed everything right.

Version 1.200 compiles with the latest release of Free Pascal. It now uses the FPC SDL units, so you no longer need to download JEDI SDL separately. Linux uses should have SDL 1.2, plus the associated SDL_ttf and SDL_image packages, installed. For Windows users, all the needed dlls are included in the precompiled zip.

Try it out and let me know what you think. The complete list of changes is beneath the fold. Continue reading

Xiap Victorious

Xiap and his lancemates in the wreckage of Typhon's fortress.I just completed my recent playthrough of GearHead1. Xiap and his lancemates- the robot Omega 1004, guardian Meskyfer, and combat medic Joyjen- defeated Typhon and the Clan Ironwind army. During the final battle Xiap also managed to shoot down Yjin’s neko, which was a nice bonus.

Overall I really enjoyed this playthrough. I think the game successfully captures the mood of 80s/90s mecha shows; there’s an ever-present feeling of peril and loss without any sort of grimdark affectation. There are so many things to do. The world feels active and vibrant.

Xiap was created as a basic mode character since I haven’t played the game in ages and chose to play it like a newbie. He didn’t learn mecha engineering for the same reason. I didn’t use save file backups or other cheats because I wanted to see how badly the game could kick my arse.

GearHead is a lot more forgiving than most roguelike games, but this is not to say that it lacks challenge, exactly. Losing a prized mecha can be almost as bad as dying; losing a lancemate can be worse than that. Xiap lost plenty of both over the course of the campaign. I guess I just like that feeling of peril and loss mentioned above? The only time I was ever tempted to cheat was during the great Namok bus stop pineapple salad incident, but I kept going and soon formed a new lance (who probably had lots of difficult questions about what happened to my previous lance). It might be a good idea to add a difficulty setting like DoomRL, though I have no idea right now how that would work in practice.

I didn’t encounter any truly game-breaking bugs, but found plenty of small ones. The homebrew scripting language that all the plots are written in is just as hateful as I remember, but fortunately I remember it better than I thought I would. The same goes for Pascal, honestly.

My goal now is to fix problems and polish up the rough edges. I will probably want to add some new content later- there have been requests for the rusty scepter quest, and there really ought to be more than four guaranteed lancemates- but for right now the emphasis will be on making sure the stuff that’s there works well. There are a number of things which I now regard as bad design decisions that will be left in the game because that’s just the way GearHead-1 is. It’s a fine line between problems that ought to be fixed and problems that are essential identity.

Victory file below the fold. Continue reading

Comic World Busan 96

This slideshow requires JavaScript.

This weekend I tabled at Comic World Busan 96. I met a bunch of people, ate a whole bunch of food, and sold out of four books. It was a good time.

Unfortunately, it was the last ComicWorld for Belli-buttons and Puppyshaker (for now), leaving me the last foreigner at Korean comikets (for now). I wish the two of them good luck in their future endeavors, and thank them for all the help and advice they’ve given me. Incidentally, everyone who tables at ComicWorld has a cool trucker-esque nickname. Mine is 펭귄아저씨.

One thing I noticed is that there’s no mecha at Comic World Busan. In Seoul there’s Kim Yura (aka GoddessMechanic) and sometimes a few other artists, but they never seem to make it down this way. I really ought to look into putting together some GearHead swag. I thought about making illustration cards with a mecha on one side and its pilot on the other. Another good idea would be papercraft mecha; I’d love to have some models of the GH mecha myself, and this would be a reason for me to try and improve my 3D modeling skills.

New Walls and Template

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

wall_rustysteel

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.

GH1_XiapExcel

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.

GH1_Xiap

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

GH2_TitleScreen

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.