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.

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.

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).

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.

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.

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.

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.

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.

GearHead Caramel Tactics Movement

Today I got the tactics movement system running for GearHead Caramel. I think it works pretty well. Next steps: get vision working properly, and after that attacks. With any luck there’ll be a playable demo before December 25th.

GearHead2 at itch.io

Frostgrave wizard and apprentice sorted.

I just wanted to let you know that GearHead2 has been uploaded to itch.io, as has GearHead 1. I’m hoping to get a few tips so that I can pick up AssetForge, which looks like it would make a lot of the stuff I’m currently doing much easier. I promise that any donations to GearHead will be funneled back into the project and not blown frivolously on a big order from Hasslefree Miniatures. I also have print comics and ebooks for sale if that’s the sort of thing you’re into.

In other news, today I got the widget system working for GearHead: Caramel. So far there are buttons and radio buttons, and that’s about it. Fortunately that’s about all I expect to need. I want to make sure the entire game can be played with a mouse so it’ll be easier if I want to port it to Android.