Sunday, September 22, 2013


I don't know what's more embarrassing: that I've gone more than a month between updates, or that my new update is basically a repeat of the old one. Sorry about that.

When I wrapped work on Antumbra, my mod for Shadowrun Returns, I wasn't really planning on making any more. Like I said at great length in my last post, making mods is hard, and there's lots of other stuff I'd enjoy doing in my increasingly limited free time. I didn't want to leave people hanging, so I deliberately made Antumbra a fairly self-contained story with a beginning, middle, climax and conclusion. I did leave behind a couple of little hooks, just in case I ever did decide to pick it up again, but wasn't really planning to continue that thread.

I'd committed to maintaining Antumbra, and so spent a fairly easy week releasing updates, mostly cleaning up some minor graphical glitches and trying to smooth out the combat. While most comments on Antumbra were very positive, almost everyone who disliked it was upset because they got killed at the very first fight. I now realize that I would have been better off making it easier, or at a minimum adding some easier fights in. In the original design, there were only five mandatory (and two optional) fights in the game, and each of them were very different and had their own unique mechanics and strategy. That appeals to me from a design perspective, but in terms of player reward, it's better to include some more boring and easy combat in there so they feel a sense of power and progression, rather than making every encounter a challenge. (At least, that's the take-away I got from my users' comments. My personal tastes still lean more towards FFT than FFVII.)

After doing that for about a week, though, I was feeling giddy enough with the reaction Antumbra was receiving to start thinking about a sequel. People left really, really nice comments, and upvoted it, and altogether Antumbra racked up something like 3,000 subscriptions. More than the raw numbers, I was pleased by the specific notes people would send, like "I'm not playing the sequel unless Dalmin is in it j/k!" and "Can't wait to record my demo!" All along, my goal had been to make a fun little story and not just a set of fights, and that kind of reaction made me feel like I was succeeding.

I followed much the same process for Antumbra 2 as I did on the original. I started out in an open-ended brainstorming period, jotting semi-random ideas down in Google Docs and scraps of paper as they came to me. I'd set Antumbra near the Seattle Sprawl, partly because it's a region most players are already familiar with and that has a lot of documentation. Now that I had some story elements of my own, though, I felt like I had a little more leeway to travel farther afield. I'd come across some lore about CalFree (the autonomous California Free State of the 2050's), and loved the idea of setting a campaign in San Francisco, so I started researching that setting and combining it with some real-world elements that I really love. The "California Free State" sourcebook from FASA proved invaluable, detailing the tense metaracial situation in the Bay Area, as well as the complicated web of authority that included an impotent government in Sacramento, de-facto military rule by the Japanese Imperial Marines, and the even-more-de-facto supremacy of the megacorps. I also trawled the Web for references to the 2060's and beyond, which alerted me to some upcoming events like General Saito's coup that I could start to foreshadow in this time period.

Shadowrun Returns is a great little engine, but since it's a tile-based isometric game, it does not do hills, which meant I'd be missing out on many of the iconic SF settings like Coit Tower, Nob Hill or Pacific Heights. Fortunately, I've been here long enough to know what flat areas would work well in the game. The Embarcadero really helps establish SF's peninsularness, and I knew that it would be fairly easy to recreate using the existing map tools. I also went ahead and built out The Mission as a map. I know, I know, it's very cliche and hip and trendy, but hey, it's flat, and worked well from both a story perspective and a design perspective.

Along with locations, I was starting to pull together some plot ideas. Hm, maybe I should classify these as:


I started with characters, then began thinking about ways to combine them. The original Antumbra could end in multiple ways, and some important characters (most notably "Mr. Johnson," Carver Wells) could die. However, Kali would always survive, albeit in a state of triumph or disgrace. I figured that she would be my link from Seattle to the Bay. If you sided with her, then Antumbra does so well that she starts expanding her business empire and opening new locations outside of UCAS. If you opposed her, then she's hounded from Seattle by her creditors, then pops up in San Francisco to try and rebuild from scratch. That way, I could keep a single setting for both plot forks, and just change the dialogue around it.

For companions, Dalmin had seemed to be the most popular from Antumbra, so I decided to bring him forward. He's really fun to write for, so I was happy to work on him again. I thought it would be boring to have all of the companions show up again, though, plus it would strain credulity for everyone to randomly show up in SF at the same time, so I decided to omit Turm as a companion this time around. On the other hand, though, I wanted to give her a cameo so people who picked her in Antumbra would be able to see her again. I ended up designing what I think was a fun, somewhat complex encounter: if she died in Antumbra, she would stay dead in Eclipse; otherwise, she would show up as a mercenary on the other side; if you traveled with her before (or had the right skills), you could convince her to switch sides and fight along with you again.

With Turm gone, I would need another samurai. I didn't want to repeat myself with a troll, so I decided to get an ork this time around, and a male to contrast with Turm's female-ness. What should I name him? It was at this point that I realized that, entirely accidentally, I had already kicked off a trend where my hireable runners' names were alliterative with their races: Dalmin the Dwarf and Turm the Troll. So, ____ the Ork. After playing around with a few different names, I settled on Orion. Street Samurai are typically big, dumb brutes, so I decided to mess with that stereotype and make Orion a thoughtful and loquacious scholar. He's kind of a marxist of metahumanity: he's convinced that metaraces will inevitably replace humanity. However, his certainty leads him to a zen-like calm: he doesn't get too worried about any particular fight or alliance, because he knows that in the long run history will lead to the same conclusion. Orion was also really fun to write for, since he's very thoughtful and rational even when making arguments I personally completely disagree with.

Lastly, I knew that I wanted to add the Matrix in this time around, so I would need a decker. I already had two dudes, so I wanted a female for this role. Available races were elf or human. I decided on human, since that would give more insight into what it felt like on the other side of SF's metaracial divide. Continuing my dumb-but-fun naming convention, I dubbed her Hailey the Human. I made her a native San Franciscan, a famously rare breed even in our own time. Where Dalmin is a funny and jaded runner, and Orion a serious and earnest man on a mission, Hailey is bubbly and ambitious, a little naive but a quick learner. I eventually decided to dual-archetype her as a Decker/Rigger, a class combo that my brother Andrew alerted me to that can be very powerful in this game.

For NPCs, I had a flash of inspiration fairly early on: why not include one of my all-time favorite people, Emperor Norton? People might associate him with Discordianism or Neil Gaiman, but he's a real (and fascinating) historic person rooted in San Francisco, and so intrinsically interesting that it wouldn't take much effort to make him a (hopefully) compelling character. I played around with a couple of ideas before settling on a futuristic representation of the man. Much like the historic Norton, my Norton ("Emperor Norton IX, Emperor of CalFree and Protector of UCAS") would be insane, but benignly so; he would be humored by those around him; and he would have a clarity of insight into the world around him. Scenes like the historical Norton's pacific defense of ethnic Chinese from a pogrom would point the direction for how a new Norton might behave in an atmosphere of anti-metahuman persecution fostered by Saito's supremacist ideology.

On a mechanical level, I decided that Norton would best be represented as a Shaman; that seemed to fit his skewed, not-quite-of-this-world position. I've gotten more comfortable commissioning portraits from artists on DeviantArt, and I decided to splurge and have a drawing done of Norton. By far the best unofficial portraits I've seen so far have come from KARGAIN, who has done a fantastic job at matching the proportions and style of the official portraits in Dead Man's Switch. I sent him some old photos of the historic Norton and a brief description of my concept, he asked a few really good clarifying questions (the nature of Norton's insanity, his role in the story), and came up with a fantastic portrait.

I really love this. It's recognizably Norton without being a copy of the source material, and perfectly captures the essence of the character. I especially appreciate details like the very subtle smirk he has.

By now, some rough outlines of a plot were falling into place. In this time period, Colonel Saito would be one of the most influential individuals in SF, although he would not be taking direct control for several more years. Much of the source material on the Bay Area describes the increasing segregation across communities, with humans (particularly those of Japanese descent) clustered in San Francisco, orks and trolls in Orkland, dwarfs in Halferville, and metahumans of all types scattered throughout the East Bay. I didn't want to directly include Saito himself - he's a huge figure in the history of Shadowrun, and I was worried that I'd mess up his portrayal - but I started playing around with the idea of a conflict between Saito and the metahumans driving much of the plot.

I'd still need a way to link this all back to Antumbra, though. You ended the first game in one of two ways: either as a loyal pawn of Aztechnology, or an opportunistic ally of Mitsuhama. From my reading, I knew that Aztechnology was in a fairly rough position in CalFree. Ever since Aztlan invaded from the south, Aztechnology had officially been banned from California. In practice, they continued operating through a set of shell companies, such as Pyramid Operations in SF; but still, they had to contend against the powerful Japanese megacorps that had made headquarters in SF, and so, while globally Aztechnology is one of the most powerful entities, in this local area it was believable that they would feel threatened by their rivals.

So, I started sketching together an overall plot arc. You would be lured down to SF from Seattle in pursuit of work. Using your contacts from the first game, you would participate in an invasion of the Aztechnology Pyramid (which I like to think is the Transamerica Building, though it's probably actually an arcology). Depending on your loyalties, you were either leading a plausibly-deniable rival raid, or defending against such a raid from Mitsuhama. From here, you would be swept up into the conflict between Saito and metahumans; as in the first game, you would need to make choices about what faction to support. Demonstrating loyalty to one side early in the game would give you access to reinforcements later on to help you complete the job.

I'd initially thought of having different villains in the endgame depending on your loyalties (in one extreme case, either attempting to assassinate or save Saito himself), but eventually realized that this would take a ton of work and add more time that I'd rather spend on enhancing a core storyline. Instead, I settled on a single villain, a troll mage rebel named Shavarus. Your relation to him would change depending on your choices, but you would always end fighting him.

The story evolved as I proceeded into the writing phase. I came to realize that, if I were playing this, it would be a no-brainer: Saito was so despicable, and the resistance so pure, that I would unhesitatingly side with the metahumans every time. In a bid to make the choices tougher, I made the opposition much less sympathetic. Shavarus wasn't a high-minded individual like Orion battling oppression; he was a violent (albeit charismatic) extremist, not only eager to kill mankind but even willing to sacrifice large numbers of innocent metahumans as collateral damage in order to create an atmosphere of fear that would prompt the humans to leave. This story was turning nasty and brutal... perfect for Shadowrun!


I followed the same pipeline process for Eclipse as I had for Antumbra, but the bigger scope meant that it took quite a while longer. On paper, it didn't look so bad: I was just going up from 4 maps to 6 maps, though the scene count was increasing from 6 to 11. In practice, it was a lot more. I'd initially envisioned the office building as a single map containing three separate floors, and actually went far enough to implement it as one (including a cool elevator system), only to realize in playtesting that it was taking too long to beat, and a late death would set you back frustratingly early. So, that got split up into three separate scenes. PLUS, I had decided that I wanted to implement the Matrix this time around, so I had two separate Matrix subnetworks for the office building, plus another one in the final level. All of which was awesome, but took a lot of effort to build, and even more to polish and test.

On the other hand, I'd learned a lot of lessons from Antumbra that made some things easier. One of the biggest things I berated myself over in Antumbra was my Everett map, the one outdoor map. It took me a long time to build, almost as long as the other three interior maps combined; but, even though you visited it twice, you barely did anything in it. There was a single conversation in the first map, and a single conversation at the end, and that was it. Great for atmosphere, but on replays most people will run through it in 30 seconds. The work-to-result ratio for that map was insane, so this time around I was careful to make sure I could get enough out of each map. Of my six maps, three of them were set outdoors, and I set up the story so I could plausibly visit two of them twice each, helping justify the time these maps took to build. Likewise, for each map I made sure that there would be enough conversations, combat, and puzzles to make them worthwhile.

I was also able to avoid a few gotchas that can crop up on you late. I always do my music, lighting, and effects last, which works great from an optimizing perspective, but when building Antumbra it wasn't until I had added my point lights that I realized they made overlapping floor tiles look weird. Up until then, I'd cavalierly been laying them on top of each other haphazardly in order to produce a rugged, asymmetrical look for an underground cavern. It was a annoying to go back and totally redo those floors when I thought I was already done. This time around, I carefully took my time up front to avoid any tile overlaps, and as a result my lighting phase went much more quickly.

Speaking of which: I've learned the hard way that illuminating a particular prop, or making light appear to emanate from an on-screen element, is incredibly hard. Even the folks at Harebrained Schemes basically just say, "Keep trying different things and adjusting them until it looks right," since the editor is really bad at showing where light will illuminate. On the other hand, though, point lights that seem to project from above or below (such as from a lamp or a puddle of ooze) look great, and are infinitely easier to set up properly: just drop your point light in the center, and boom, you're done. So, when designing maps I always preferred props that would cast omnidirectional light (lamps, ambient magic, candles, streetlights), only using a smaller number of props that would require more fine tuning to light (neon signs, alarm panels, vending machines). I think the overall lighting looks at least as good in Eclipse as it did in Antumbra, and light-for-light it probably took less than half as much effort.

There was more complexity in Eclipse than in Antumbra, so I spent a lot more time testing it even before handing it off to my ever-dedicated alpha tester. Antumbra had one major branching story decision, a choice between two companions, and a handful of smaller choices to track. Eclipse has three major branching choices (albeit one of which only comes at the end), three companions who can be selected (and re-selected if they survive) over the course of three separate runs, and many more smaller choices including several optional side-quests, some of which don't come to fruition until later on. Fortunately the editor's debug tools are really good at letting you quickly set and test story variables, so I was able to find and clear up any plot-related problems fairly quickly.

Companions were trickier, and yet another reason why I was glad to have finished the more limited story of Antumbra before moving on to Eclipse. Shadowrun makes it really easy to test the status of another runner as long as you're still on the scene where they joined you; but if you want to carry them forward across scenes (which I definitely do!), then it gets way more complicated. As far as the game engine is concerned, by the next point they are just "PC1", "PC2", and so on; there's no way to link back to the original actor "Dalmin" or "Orion". You can still figure it out, but it requires managing story variables, which makes the logic somewhat fraught: IF I hired Dalmin for this run, AND he is NOT dead, THEN I can start a conversation between PC1 and PC0 using the Dalmin dialogue. (That's the secret reason why both Antumbra and Eclipse only allow you to hire a single companion runner. Managing the logic to test multiple companions, and map them onto their PCx identity at runtime, grows exponentially more complex and would be extremely error-prone.) Again, though, since I knew the limitations, I didn't need to waste a lot of time trying stuff that wouldn't work, and could focus on producing content.

Balance was my bane in Antumbra, and I spent a lot of time worrying about difficulty in this outing. Based on the feedback I've gotten so far, I think I've largely licked it. Part of the problem was that Antumbra started you as a beginning character, with very limited karma and resources, so if you didn't optimize your build you could easily get taken down. It helps that in Eclipse you have more karma and nuyen, so you can be more resilient against lucky critical hits. As noted above, I also redesigned the flow of combat, creating more encounters and making each individual fight easier. (Not to say that the whole thing is easier. In particular, I had a lot of fun designing the boss fights, and a couple of the battles have fun elements like ad-hoc allies or respawning enemies.)

I think I spent too much time worrying about something that wasn't that big of a problem. Each Shadowrun module can let players create a new character, import an existing character, use a pre-made character, or some combination thereof. Antumbra only let you create a new character, so it was relatively straightforward to test and tune for a known karma range. For Eclipse, I wanted to let you import your Antumbra character, but also to create a new character (using a process somewhat like imports in my beloved Bioware games). There was a problem, though: there's no way to tell how much karma a character has. Now, I could pretty easily check to see if the character had completed Antumbra by checking a plot flag that gets set at the end of that game. But, I couldn't really distinguish between a new character created for Eclipse with 59 karma, or a character imported from the end of Dead Man's Switch with 150 karma.

Like I said, in the end it wasn't that big a deal. I whipped up a little fourth-wall-breaking appearance from yours truly at the start of the game in the case where I detect that you're using a character who didn't beat Antumbra, and give a gentle reminder that they might want to check it out. (I didn't want to push this too hard, though, since you can't really beat Antumbra as a rigger or a decker, and both of those archetypes can be pretty decent in Eclipse). My original plan had been to selectively adjust the player's starting nuyen depending on their character origin: imports from Antumbra would get a little, new characters would get more (to compensate for their lack of starting gear), while high-karma imports would get nothing. In the end, though, it wasn't worth the worry I put into it. If someone wants to "cheat", that's fine... it's their game, and if they want to proceed after I warn them that it will be less challenging and fun, hey, they can do what they want. (That said, it sounds like the next update of Shadowrun Returns in October will finally add the ability to read a player's karma variable, which will let me at least remove the nag screen for newly created characters.)

Anyways! It was really fun to make this. I still like how making a mod stretches me both creatively and technically. It also makes me even more in awe of the work that goes into making a video game. I feel increasingly reluctant to criticize video games (though that won't stop my next post): the mere fact that a company could finish something is impressive, and should count as an achievement on its own.

No comments:

Post a Comment