Jul 04

San Francisco Comics Tour


On Saturday, one day after landing in San Francisco, I led some of the first year Comics MFA students on a tour of some of the best local comic shops. Our first stop was Isotope the Comic Book Lounge, followed by Comix Experience, Whatever (helpfully suggested by James at Isotope), and Mission Comics and Art. According to Google Maps that’s 7km of comics goodness.

On Sunday, I did the comics tour again with some different folks.

This annual trip to the states is my one chance to visit English-language comic shops. It is equal parts thrilling and heartbreaking- thrilling to see all of these books, heartbreaking that I can’t buy them all and bring them back to Korea with me. There’s a lot of great stuff happening in North American comics these days.

Jun 30

GearHead2 v0.630: Moving Right Along


I’ve just uploaded GearHead2 v0.630 to GitHub. This completes the move away from the old repository, and sets the baseline for future development. It’s not a very exciting release, but it does fix some longstanding bugs and add a couple of interface improvements. Check below the fold for the full list of changes. Read the rest of this entry »

Jun 28

GearHead on itch.io


I’ve just created a page for GearHead-1 on itch.io. I like that site. I have no idea whether anyone will leave a tip for me there, but at the very least it’s one more place to get out the message that GearHead is still kicking. I’ll probably upload my comics and other games some time in the future.

I hope to make a (not very impressive) release of GearHead-2 before heading to San Francisco on Friday. I would wait until I got the new graphics bits done, but I’m worried that I won’t have access to a Windows computer for all of next month. On the plus side, maybe I can convince a friend to let me try to compile GearHead on their Mac. It’ll be an adventure.

Jun 27

GH1v1.302: Dawn of Bear Bastard


I’ve just uploaded GearHead 1 v1.302 to GitHub. This release adds the first new content of my recent revisions in the form of two new lancemates. The Fan is a wannabe cavalier; they might not be very good at adventuring yet, but they have a lot of room for growth. Bear Bastard is the leader of the Teddy Bandits. Despite his criminal ways, he remains true to the code of Shonen Knife Bushido.

As usual, there are also several bugfixes. Check beneath the fold for the complete list of changes. Read the rest of this entry »

Jun 23

The Problems of GearHead2


So I’ve started playing GearHead2. In certain ways, GH2 is much more advanced than GH1. In other ways, it’s a giant mess.

Most of GH2’s problems are the direct result of my not having clear goals. My first intention was for GH2 to encompass the entire GearHead universe, planet by planet. However, instead of deciding at the start what the end state would look like- at minimum, a list of cities and worlds to include- I just meandered around to whatever areas captured my interest.

In addition, I wasted much of my development time on experiments that didn’t pan out. I spent a long time trying to make an OpenGL interface that looked decent; the final SVN commit from Sourceforge removed this. The hidden encounter mechanic turned out to be no fun at all. I really don’t know what to make of the Performance minigame that I added.

This wasted time becomes even more apparent when considering the things that should have been improved. The opening of GH2 is just terrible; the PC is dropped off in an empty house with no narrative intro or anything much to do. The graphics, which I spent an awful lot of time working on, often look worse than those of GH1.

But there’s also a lot of great stuff. NPCs, especially lancemates and arch-enemies, get some actual character development. Many of the locations and challenges are quite interesting. The plot generation is fantastic.

So, here’s what I plan to do:

  • Commit to 2D isometric graphics which will be compatible with GH1 and future GearHead projects. That way working on one project will potentially benefit other projects as well.
  • Narrow down the focus to this time and place. GH2 takes place in the L5 colonies during the rise of the Red Mask Raiders; their sudden appearance and mysterious origin should drive the major events of the game.
  • The game opening needs to set the tone. The spinner colonies need to have a different feel than Earth; more high tech and glamorous. Less Battle Angel, more Tiger and Bunny.
  • Polish up what’s there, and get rid of that which doesn’t work.

Jun 22

Fixing up plots


This week I’ve been updating some of the plots from the early days of GearHead development. Many of them have serious problems- they don’t scale difficulty to renown properly, lack email or memos, and deal poorly when the player character goes off-script. The easiest way to update missions, or at least the way that will probably introduce the fewest new bugs, is to simply copy over the dialogue text from the old plot into an up-to-date plot template.

Unfortunately, not all plots are simple missions. The “BusinessDeal” plot is a mess, and I’m not sure that I’ve ever encountered it while playing. Similarly, the kidnapping story is riddled with bugs and I’m not sure there’s any good way to set it right. I may end up disabling some of these plots until such a time as they can be rewritten.

The picture above is from the story Hey Greenbot! in Alien Lives. If you’d like to help me out as I prepare to finish my graduate studies, it’s available at the Polar Bear Comix webstore in cbz format.

Jun 20

Bear Bastard and other good things


I’ve been waiting a long time for this arse to make his appearance.

The latest GitHub commit fixes a number of bugs and adds two new lancemates. I hope to make a proper release before I head to San Francisco next week, but not tonight because this stuff has just barely been tested.

Jun 15

GearHead Caramel Engine Installed


I’ve made a new commit to GearHead Caramel; the low level UI stuff from Dungeon Monkey Eternal has been added as the engine module. The screen is dynamically resizable, just like in the current version of GearHead-1.

The next step will be the scenes module.

There still isn’t much to get excited about, but I figured this might be useful to anyone who wants to write their own isometric RPG with Pygame.

Jun 14

Divisions of Aegis Foreign Service

aegis_space_forceThough every Aegis citizen would agree that Luna is the pinnacle of human civilization, there are always a few brave or misguided souls who long for exploration and adventure.

Aegis Space Force

The ASF operates primarily in the L5 Region. Their primary stated mission is to defend the Lunar trade fleet from pirates and hostile nations. Their secondary stated mission is to build goodwill with the people of L5 through closer cultural and defense ties.

Most members of the Space Force are true believers in the Aegis cause. They signed up to protect their fellow space colonists and to spread the gospel of peace through unity. To qualify for the Space Force you must be diligent, highly skilled, and ideologically pure. Very few candidates meet these criteria.

Of course, diplomacy and defense are hardly the only missions Aegis Overlord has for the Space Force. By aligning them with the Rishiri Dominion, Aegis has leverage to affect politics in L5. In the event of a war with Earth it will be very useful to have allies and a large navy already stationed in deep orbit. Plus, there are the mineral resources of the Dusty Ring, which Luna needs to continue its expansion.

As foreign service goes, membership in the Space Force is pretty sweet. The spinner colonies are relatively safe and have most of the same amenities as Lunar domes. In many parts of L5, Lunars are regarded positively or at least not negatively. The same can’t be said for the…

Aegis Expeditionary Force

The AEF is the Aegis mission to Earth. Most of its members fall into one of two categories: travel-hungry adventurers who didn’t qualify for the Space Force, and unstable military officers too useful to dispose of but too dangerous to keep on Luna.

The Expeditionary Force has many different missions: reconnaisance, harassing the Federation Defense Force, searching for lost technology, keeping the base commander entertained… and they have to do all of this under conditions more severe than anything the Space Force ever has to deal with. To most Lunars, modern day Earth is a hellish place. The gravity is stronger than they’re used to. The living facilities are primitive and uncomfortable. There are insects and even worse sorts of wildlife. Even in those areas which maintain diplomatic ties to Aegis, Lunars are viewed with distrust.

One of the worst duties of the Expeditionary Force is collecting gene samples for Luna’s bioweapon program. To do this soldiers have to confront some of Earth’s most dangerous creatures. Even worse, they are sometimes ordered to bring in their targets alive.

Unlike the Space Force, which gets most of their equipment from back home, the Expeditionary Force relies heavily upon locally constructed mecha. Common trooper models include the Buru Buru, Ice Wind, and Vadel. These are generally obtained from allies or the black market, but certain undersupplied units aren’t above including battlefield salvage in their rank and file. Native Lunar mecha such as the Chameleon and Luna-II are reserved for commanders and elites.

Membership in the Expeditionary Force isn’t without its perks. Pay is nearly the higest of any Aegis division, even though the troops rarely get a chance to spend it while on Earth. Being so far from Luna means that commanders can operate without political interference. Unfortunately for the troops, it also means that commanders can operate without any oversight whatsoever. The greatest perk a member of the Expeditionary Force can earn is to be transferred back to the Lunar Defense Force. This is generally the reward offered for taking part in a suicide mission, and there’s never a shortage of volunteers.

Jun 10

Expanding the Blueprints


Hogye in GearHead Arena-R; the road south leads to Snake Lake. The full map is 600 tiles x 600 tiles, constructed from four hundred 30×30 scenes.

Engine or Game?

One of the eternal debates in amateur gamedev is the distinction between a game and an engine. After making RPGs for twenty years, I’ve come to the conclusion that I do have an engine, it’s just not very engine-y.

If you take a look through every game I’ve ever made, you’ll find that I tend to use a lot of the same code. The menu system for Dungeon Monkey Eternal, written in Python, is a port of the menu system used in GearHead, which was taken from DeadCold, which was a Pascal translation of the menu system for the unreleased game Age of Adventure, which itself was a translation of the menu system I made for Realm of Sendai, and that’s as far back as I can remember.

Similarly, the main game loop of GearHead and the event processor are pretty similar to the game loops and event processors of all those other games. If it ain’t broke don’t fix it.

When taking parts from Dungeon Monkey Eternal, I’m going to organize them into proper Python modules, which basically just means throwing the related units into a folder so you don’t have ten thousand script files cluttering up the main directory.

Improved Map Handling

I want the map handler for the next GearHead to do a couple of things that Dungeon Monkey Eternal doesn’t do. First off, I want seamlessly scrolling endless maps, as in GearHead Arena-R (the abandoned attempt to recreate Arena with Lua scripting, aka the GearHead we shall never speak of again). This should be easier to do in Python than it was in Pascal; the “endless” map just needs redefined lookup methods that retrieve tiles and things from the constituent scenes.

The second improvement is that I want sub-tile placement of sprites. In every isometric game that I’ve done before, sprites can only be placed exactly in the center of a tile. This is most obvious when watching missiles skip jaggedly across the battlefield. For the new GearHead, I want to smooth out the missile trajectories and maybe even show the motion when a character/mecha moves from one tile to another.

Older posts «