Jan 15

Z45-60 Zerosaiko

The Zerosaiko is one of the most popular mecha in the GearHead universe. It is designed for mobility and maneuverability. The basic version lacks firepower, but this is easily fixed with a little modification.

Originally the Zerosaiko was produced exclusively by Zero Tech, a family-run company in Namok. In NT160 Zero Tech was acquired by Kettel Industries. This has caused some controversy, as many cavaliers believe that the Kettel-manufactured Zerosaiko isn’t built to the same quality as the Zero Tech-manufactured models.

Zero Tech’s longtime rival is Vadel Industries. These companies are the GearHead universe equivalent of high quality/low volume sports car manufacturers like Ferrari and Lamborghini. The name Zerosaiko comes from the nickname of one of my students- “Zero Psycho”. Zero was a Korean card game popular among elementary school students; this particular girl was absolutely nuts about it. I thought it would make a good name for a giant robot, and it did.

Jan 12

My Computing Adventures

Last week I had to bring my laptop into the shop because its creaky old case had finally blown a hinge. This week I had to bring it back to the shop because the ROM BIOS suddenly stopped working. These are the first problems this machine has given me in the five years that I’ve had it, but when it rains it snows I guess. Thankfully, Samsung after-service is fantastic (at least in Korea) and both problems were solved quickly and cheaply.

GearHead Caramel now pre-loads the music and graphics when a new scene is entered. Unfortunately, this causes a noticeable delay. I’m going to add loading screens, and I thought it’d be a great idea to make them look like eyecatch cards from classic mecha cartoons. If you’re an artist and would be interested in making a GearHead eyecatch, please contact me with your commission rates. If you’re not an artist but would like to see me hire some good ones, you can support GearHead on itch.io. I’m hoping to make a new release of GearHead Caramel next week, with new content, new weapons, and a whole bunch of improvements.

Jan 05

On Roguelikeness and Ultimatude

I’d like to talk for a bit about the design of GearHead Caramel. As usual, most of the big decisions were motivated by the type of game I want to play and the systems I want to program. Many of the changes are moving the game away from a classic roguelike, but I don’t think that’s a bad thing. Genre definitions can be a useful thing when talking about games. Rigid adherence to definitions, on the other hand, can often impair creativity and growth.

The main characteristics that GearHead Caramel will retain from the roguelike genre are replayability, procedurally generated content, and consequence persistence. Some of the non-roguelike features it will have are tactics style combat, a non-ASCII interface, and a focus on story. Whether this means GHC is still a roguelike or a roguelite or something else is left as an exercise for the reader.

The part of the game I am most interested in programming is the scenario generator. There’s a lot more going on now than simply random story generation. There is also procedural puzzle generation, a bit of which you can see in Winter Mocha (please forgive the fact that the puzzle is trivially easy; this is proof of concept work only). There’s generative text and dynamically constructed conversation trees, both of which should revolutionize NPC interactions in GHC. There is also reactive story generation, in which the player is given opportunities to alter the world state and the story reacts to those changes. In short, there are a whole lot of things I want to experiment with and I can do that better if the game consists of short linked episodes rather than a single epic adventure.

I’d also like to talk about the visual design of GearHead Caramel. I decided early on that I wanted to make the graphics attractive, functional, and low-maintenance. As you can see, each character and mecha has a single forward-facing sprite. In my notes I describe this style as “Neo-Ultima”.

The GearHead Caramel mecha sprites are scaled so 3 pixels = 1 meter; all of the mecha in the picture above are to accurate fictional size with one another. There is no definite scale for human sprites, but I plan to eventually introduce a paper doll system showing the character’s clothing and equipment.

Dec 30

Competing Goods: Cavalier Virtues

A giant robot in classic computer game Ultima IV. It's going to stomp Lord British's castle! Oh no!

Ultima IV plus Robot by Creative Stall from the Noun Project

GearHead Caramel will not feature the Heroic/Villainous morality scale used in previous GearHead games. Typically, games that feature a good/evil scale use it to divide up the content: play a hero and you get one story, play a villain and you get a slightly different story. The moral choices you get to make tend to be boring and come down to which route you’re trying to play. Never mind the fact that the game designer and player might not agree which choice is the moral one and which is the immoral one.

I never intended for GearHead to have separate heroic and villainous paths. Instead, heroic points were supposed to be an optional reward for going above and beyond the call of duty, while villainous points were meant as an easy way for me to kill off player characters who act stupidly. So, moving forward, the heroic/villainous scale is out.

Instead, for GearHead Caramel I intend to use a virtue system as in Ultima IV… though for now the virtues will just be a design principle rather than formal game rules. There are several advantages to using a system of virtues rather than a good/evil scale. First, there’s no need to tailor game content for Stupid Evil alignment. Second, different virtues can contradict one another, leading to much more interesting moral choices than yet another variation on the trolley problem.

Here are the five virtues of the cavalier code:

  • Duty: A cavalier must honor their mission contracts and other obligations. Your word is your life.
  • Fellowship: We’re all in this together. A cavalier should treat civilians and other cavaliers with magnanimity. This virtue covers loyalty and empathy.
  • Justice: It is necessary to act in a just manner. Cavaliers are expected to protect those in need and bring punishment to the guilty.
  • Peace: A cavalier should act to minimize harm, which is not easy when you’re piloting a fifty ton death machine.
  • Glory: Finally, a cavalier must keep striving for greatness. This virtue covers courage and honor.

There are numerous ways these virtues could conflict. Do you pursue a criminal through a crowded city (justice) or let them get away to avoid civilian casualties (peace)? Stand guard at the bridge (duty) or take down the enemy leader who has been separated from their group (glory)? Ideally, each of these choices should take the story in different directions.

Dec 29

GearHead Caramel One Week Update

BuruBuru mecha standing in snow up to its knees.

Snow Day; acrylic on Canson acrylic paper.

Thanks to everyone who has provided feedback on GearHead Caramel so far. If you haven’t tried it yet, you can download the release or the latest commit from GitHub.

I’ve heard one report of fullscreen mode not working properly on a laptop computer. I haven’t managed to replicate that problem, but I did find that fullscreen mode runs slowly on my office Windows computer (which is not the greatest computer in the world, to be fair). If you encounter problems with fullscreen, you can switch to windowed mode by editing the configuration file which should be in your home directory’s “ghcaramel” folder. The window is resizeable so you can stretch it back to nearly fullscreen.

My next step is to expand the Winter Mocha scenario into a proper tutorial level and introduction to the GearHead universe. Here are some things I’m hoping to include in the next release:

  • Some more NPCs to talk to, including alternate lancemates.
  • More content for the mission scene, with the goal of replayability.
  • Get the rest of the main rules working; add shields and intercept weapons.
  • The ability to set screen mode and other options from within the game.
  • Personality traits which alter dialogue (this is already working in the dev version).
  • The ability to import characters from GearHead1 (this is mostly working now).

Dec 26

New Style Portraits: Step by Step

As you can see from the above picture, GearHead Caramel uses much bigger portraits than previous GearHead games, and the color switcher can handle subtler shading. Plus, there are now five recoloring channels to work with instead of just three. Here’s a quick tutorial on how I’ve been making portraits for the new system.

I start by doing a number of rough sketches for the character, before settling on the one I like the best. GearHead Caramel portraits should show the character from head to mid-thigh. They should be looking to the right, since that’s where the dialogue box is. I use a blue color for my pencils so it’ll be easier to draw black over them.

The second stage is what we cartoonists would call “inks”, though since I’m working digitally no actual ink was involved.

Next, I do the flat colors. For this method I complete the drawing in black and white, then add colors as the final step. You want to get a pretty wide value range- the shades should go from dark grey #404040 to pure white #ffffff. My professor Allen Passalaqua suggested using the darkest color of each area as the flat color, so that’s what I did here.

Shading is added using the lasso-and-gradient method. Using the lasso and other selection tools, I apply white-to-transparent gradients to a layer above the flats. You can find lots of tutorials on this method if you search. I probably should have pushed the darks a bit darker on this portrait, but it’s all a learning experience.

Finally, it’s time to color the portrait. I add another layer on top of the picture and set its mode to Multiply.  Red areas get colored with pure red (#ff0000), yellow areas with pure yellow (#ffff00), green with green (#00ff00), magenta with magenta (#ff00ff), and cyan with cyan (#00ffff). Because the layer mode is set to Multiply, the shading from the lower layers will show. Any areas left grey will be grey in the final portrait.

For characters: red = clothing 1, yellow = skin color, green = hair color, cyan = detail color, magenta = clothing 2

For mecha: red = main color, yellow = secondary color, green = sensor/detail color, cyan = metal color, magenta = tertiary color

The final portrait size is 400×600. Most characters should be around 500px tall; that way, there’s room to go bigger or smaller to show that a character is particularly large or tiny.

Dec 23

Enjoy some Winter Mocha!

Happy Tip’s Eve, everyone! I just uploaded the first release of GearHead Caramel, a short scenario called Winter Mocha. Try it out and let me know what you think.

Dec 13

GearHead Caramel Exploration and Combat Working

Both exploration and combat are now working in GearHead Caramel… if you can forgive the fact that the enemy pilots fight like they’re drunk. Right now they just pick a random weapon, try to attack a random target, and if that doesn’t work out they walk randomly.

I am hoping to release a playable demo by next week. There won’t be much content (my goal right now is a short introductory scene in town followed by one or two mecha fights), but it should show some of the new stuff that Caramel has. Keeping with the coffee-that-doesn’t-taste-like-coffee theme, my code name for the demo scenario is Winter Mocha.

Dec 11

All The Missiles

It’s a bit hard to see the shot animations on the video (especially since I only fired one missile), so here’s a gif of a BuruBuru launching (and hitting with!) all 20 of its missiles at once. In GearHead Caramel the missiles anim shows how many missiles were fired, letting you know at once just how toasted you are.

Dec 10

Another Caramel Update: Attack UI working

The attack interface is now working for GearHead Caramel. It doesn’t have a lot of bells and whistles yet- it’d be nice to have hotkeys, and if the interface would remember your preferred attack modes- but it seems to be fully functional. Also, notice that the different attacks use different shot animations.
With attacks and movement both working, I have just about everything I need for a playable demo. The next stop will be the NPCs fighting back.