Pages

Saturday, June 28, 2014

Hellenica Characters: Brasidas

"You could have me outnumbered twenty to one and I would still have the advantage."

Spoken like a true Spartan!

This week we're revealing Brasidas, an elite Spartan soldier who embodies his city-state's ideals of bravery, honor, pragmatism, martial prowess, and rigid adherence to authority. He also happens to be the butt of most of Diona's jokes. No one ever said being Spartan was easy!

We wanted Brasidas to come off as a fairly typical Spartan warrior, at least until you get to know him better. Also, while much of the world of Hellenica has been transformed by the ongoing steam-powered revolution, Sparta's mostly stuck to its traditions. To that end, we set out to design "The Spartan Warrior", with some welcome touches from YDY to fit it into our aesthetic. Here's the first stab at it:


Well, I certainly wouldn't want to start a fight with him.

Brasidas is one of our strong male leads, and this initial attempt satisfied that need pretty well for us. There were just a couple things we had to fix up:
 - That iconic horsehair crest atop his helmet was actually reserved for officers or generals. Brasidas is just your average soldier, so that had to go.
 - While Brasidas has seen his fair share of battles, we didn't want his armor to look too shoddy. The cracks and wear in his legguards needed to be reined in.
 - We thought his legs could stand (ha) to be a big more muscular.


Looking good. We wanted to go after the iconic Spartan red for his cape, and for his armor, we stuck to the metals we know they had back then: iron, brass, and copper. Here's the first rough color:


I can't tell you how nice it is to work with artists that can get this close on the first try! Actually, it's my blog post, so I guess I can. (It's really nice.)

Our only qualm here was that the armor looked a bit more golden than we had wanted. As I mentioned before, we complete our portraits in batches, which gave us the ability to look at all of our Spartan characters and standardize their armor across the board. Awesome!

Here's Brasidas with his new set donned:


As always, once we're happy with how things are looking, the guys at YDY do a final pass for lighting and atmospherics. Here's the final image we'll be using in-game:


We're really happy with how Brasidas turned out. He adds some nice diversity to our cast, so I'm jazzed that he's finally making his appearance in the game.

'Til next time!

Thursday, June 19, 2014

Programming Adventure

So I spent a lot of time revising and debugging the level 5 Athens paths this week, and along the way I ran into a particularly nasty save-load bug. It was kind of an adventure to track down as well as a reminder about why good programming techniques were important, so I thought it'd be fun to write a post about.

The hunt began when I noticed the story map complaining about how it couldn't find the node corresponding to a certain location in the story. This error happens on occasion as we're adding new content piecemeal. It's usually harmless, but I wanted to clean things up in preparation for an eventual alpha test, so I decided to look into it.

What I found next was mysterious, the reason the map UI couldn't find an appropriate node was because the name it was being passed was blank. Further investigation revealed this error only happened when I loaded a particular save game...

An important step to solving most bugs is to get a reproducible case, so I set to work trying different approaches until I discovered that loading the same game twice would trigger warnings on the second load (but not the first).

Baffled, I went to examine the loading code, which looked fine. However, there was one comment warning me that the code would behave in a non-obvious way under certain conditions... exactly the conditions I was seeing the bug in. Sure enough, when I inspected that code more clearly I found a variable that wasn't properly reset on load, causing weird zombie paths that had the blank location names which were causing the initial error (and probably lots of other errors too).

So some take home lessons if you’re an aspiring programmer.
1. Make your code assert if anything strange is going on, even if the code could handle it. Weird values are a good indicator something is going wrong somewhere else.

2. Get a reproducible case. It's especially good if you can get one with only a few steps.

3. If you want to do something that's clever but a little bit confusing in code, make sure you leave a comment explaining what's going on. When a frustrated programmer (possibly even yourself) stumbles on that code at 2 in the morning trying to hunt down some obscure bug, you want her to be able to figure out what’s going on without having to solve some programming riddle.

Thursday, June 12, 2014

The Subtle Consequences of Choice

We talked before about the absurd branching we're allowing in Hellenica—how each social hub ends with 2-3 choices that can steer the player (and the story) in completely different directions. Previous posts have also dealt with the somewhat elaborate restructuring that sometimes needs to happen to make these stories flow into each other. But today, I'd like to delve into some of the subtle details involved. So far, no one's specifically noticed these kinds of dialogue tweaks as consequences of the choices they made, but I guarantee that they've improved the experience.

This week, I've been iterating on the various story paths heading into Athens in act 2, and I found that while the broad strokes all mostly worked, a bunch of little seams kept diminishing the narrative experience. As an example, while most of the story paths involved the party wanting to ask Socrates for help on their quest, the finer details about who their enemies were differed. This resulted in the characters either seeming to make HUGE assumptions about who the villains might be, or sounding mind-numbingly idiotic because of their inability to make obvious connections. So even though the overall structure and flow of the conversations remains the same for all incoming paths, most of the lines dealing with their quest have specific variants depending on how much a player knows.

Character relationships are another instance where subtle details can help a story flow much better. While players will interact with the various Athens NPCs under almost identical circumstances, it helps immeasurably to augment these interactions with helper lines that show that the characters actually remember if they've interacted with each other in previous levels. Once again, the additional lines are minor and the structure and flow of these conversations is mostly unchanged. But their absence makes the character interactions feel jarringly dissonant.

Another way subtle details were important in Athens was to acknowledge the fulfillment of foreshadowing. I don’t want to give too much away, but when someone predicts an event, and then later, it happens, the characters should acknowledge it. This doesn't change the party members’ reactions to the event, and surrounding dialogue is the same, but without that acknowledgement of the foreshadowing, the characters would seem less aware of their surroundings.

I'm hoping to have the level 5 version of Athens ready for internal testing any day now. So hopefully there'll be a post in the future about how well it's worked out and what else needs to be done.

Thursday, June 5, 2014

Hellenica Characters: Alcibiades

I'm back again this week with another character art update, but before I dive into that, I thought I'd talk a bit about how our process has been evolving.

When we first started out, we made the mistake of not lining up a dedicated, long-term artist. This meant we were contracting out portraits to different individuals from concept to completion. The result? Pretty inconsistent styles, as well as disagreements in color palettes and character sizes, which all translates to a waste of time and money.

Now that we've found a steady partner for our portraits, we're able to approach things with more of an eye towards the whole product. We've started sketching out related characters in a single pass. This lets us establish a cohesive look and iron out any issues between characters before we get too far along with any individual portrait. Then when we move on to coloring, we can make sure that our characters don't end up clashing with each other.

We're pretty excited about how things are working out now. I'll keep you posted if we make any more modifications to our process.

So, this week's character update involves the ever-popular Alcibiades. Quite frankly, he's a terrible person, which made this one pretty fun to make.


Alcibiades is based loosely on the historical figure of the same name. He comes from a wealthy line of Athenian aristocrats, the Alcmaeonidae (say it with me: alk-mee-ON-uh-dee), that has long been involved in the affairs of Athens. As a result, he's a real pompous jerk. Unfortunately, your party will likely have to deal with him on a few occasions if you spend any time in Athens.

We wanted to make his unsavory personality immediately obvious from his expression. He also needed to clearly communicate his background and his position in society. To that end, we made his robes a bit more extravagant than the other characters as a first step. We also outfitted him with an affected fan and a portable gramophone, a recent vogue accessory of the Athens elite (in the world of Hellenica, anyways). This in conjunction with the details of the belt also helped to tie in our steampunk aesthetic.


What do you think? Did our messaging work?

Thursday, May 29, 2014

Hellenica Characters: Epaminondas

Last week we teased a few new characters we've been working on, and this week I thought I'd show off one of them in more detail.

Meet Epaminondas! If you think his name is daunting, wait until you meet him in person.


Epaminondas is our version of the great industrialists from a couple centuries ago, loosely based on the historical Epaminondas. He's a wealthy businessman heavily involved in the Theban railroad that has become vital to Greek development in Hellenica. As with most characters in Hellenica, there's more to him than meets the eye, but I'll leave that for you to discover.

Modeled loosely after Henry Clay Frick, we wanted Epaminondas to come off as stern and commanding. We thought a steampunk monocle would be a good touch, riffing off that 19th century industrialist vibe. The steampunk ledger also helped us communicate his constant involvement in business affairs.


YDY-CG nailed the look immediately, so there aren't too many decision details to dig into this time.

As always, let me know if there's anything I can add to these posts. I'll follow up next week with some info on our new character development process and another character!

Thursday, May 22, 2014

I Heard a Rumor

Problem 47,383 of creating a game with this sort of branching story is that it becomes difficult to do any foreshadowing. After two levels of branching, the player could conceivably be on any of 6 social hubs, meaning that only 1/6th of the time would the player experience a particular foreshadowed event.

One of the ways we work around this is by making foreshadowing details serve alternate purposes as well. Early game conversations about luddites and Spartan civil war certainly allude to events that could happen later. And if you happen to hit on one of those specific events, awesome. But if not, then the conversations still serve a purpose in helping introduce some of the main NPCs and framing the first story-branching choice.

To this end, we've recently been working on act 2 rumors aimed at setting up 6-different transitions into act 3 (more on the act structure here). On the surface, these rumors will just be world flavor dialogue being provided by gossiping NPCs, but they'll each be setting up a specific act 2 -> act 3 transition.

There's still a lot to be done system-wise, from making sure rumors don't repeat (easy) to making sure you always hear the appropriate foreshadowing rumor on your way to act 3 (hard), but I'm confident we'll figure those out. Maybe we'll even have a blog post somewhere down the line explaining how.

Wednesday, May 14, 2014

Two Roads to Thebes

(The following post contains moderate story spoilers)

So after some time making sure our artists had enough reference and direction to keep going for a while, it's back to writing for me.

Recently, I've turned my attention to the party’s visit to Thebes in level 5 of our story. Problem 47,382 of creating a branching storyline is that unless you want an exponential increase in the amount of writing at each level, different story paths need to tie back into each other. However, since one of our goals is that whatever path the player takes should proceed as naturally as "the path" in most RPGs, we devote a lot of energy to eliminating any noticeable seams or narrative jerks that can happen when paths recombine (in addition to our perpetual efforts to modify dialogue based on the specific path the player has taken).

Level 5 Thebes has proved a tricky case for this, because while the previous social hubs feature the same sort of [introduction -> adventure] plot point (expounded on here), they accomplish this tone shift in very different ways, necessitating some extra custom writing to help steer them towards Thebes.

In one path, the party finds itself overwhelmed as the Spartan rebels use mystical powers to grievously wound Diona. They are rescued by the arrival of the mysterious swordsman, Scylax, who takes them to the island home of the sorceress Circe to recover. There they learn about the mystical nature of the foe they face.

How we get to Thebes:
Scylax wasn't the only one interested in the movements of the party. A skulking figure has followed the party since they left Sparta. IF the player chooses to investigate who it is (again, the player has three choices where their story will go from here), they'll find it's Nyx, a member of a Theban spy organization known as the Shadows. The party's foray into Sparta has gotten the Shadows’ attention, so Nyx invites them to Thebes, promising her master will answer their questions...

VS

In the other path, an assassination has plunged Athens into political chaos. A luddite demagogue has seized control of the city, rallying mobs against steam technology and preparing for wars against cities that embrace it.

How we get to Thebes:
Even though Plato doesn't think highly of Thebes, ("Thebes isn’t a city as much as an assembly line, they wouldn’t douse our fires unless it helped them build their railroad."), it's the closest city-state and the player can decide to seek help there. IF she does, the party will find the citizens mostly as unhelpful as Plato feared, but a mysterious woman named Nyx thinks her master will be very interested in their story…

What happens next? And who is Nyx's mysterious master? Guess you'll have to play Hellenica to find out!