Sunday, December 06, 2015


 Part of a series on The Caldecott Caper

It’s been about two weeks since I released The Caldecott Caper into the world, and while the development is still fairly fresh in my mind, I wanted to reflect on the process of making it. I think I’ll do two post-mortems: this one, about the development process itself, and another, perhaps in early 2016, about the reception that the mod gets after more people have had a chance to play it.


This isn't my first Shadowrun rodeo, and I've definitely gained many benefits from my prior experiences. I was able to build on earlier successes and use certain habits and techniques that helped development move along smoothly and minimize bugs.


The Caper was by far the most ambitious project I’ve done yet. It’s even bigger than all three parts of Antumbra Saga combined, and probably three times bigger than the single largest installment.

Still, I think I set a realistic (if ambitious) goal for myself. I called out the aspects of the game that were most important to me: offering a romance option, telling a story that mattered, and pulling off a heist. That gave me welcome clarity when deciding which specific features should go in or out.

The scope crept a little during development, but not by much. I think it helps that I conducted the development in secret, which helped me stay focused and not need to respond to well-meaning suggestions to make it bigger or better. I was also able to successfully cut a few things that I had initially planned, after reasoning that they would be too much effort for the marginal improvements they were made. These included an optional coda to the heist, where your runaway train would be chased down by elite operatives if your suspicion had climbed too far; and a system of spoils-sharing where your payout for each run would vary based on the negotiations you held with teammates during the grand council. Both of those were mechanically interesting ideas, but I realized that they wouldn’t add a lot of fun for players. (I recently heard a quote attributed to Sid Meier: “There are games where the player is having fun, games where the designer is having fun, and games where the system is having fun.” I try to recognize when I’m veering towards one of the latter, and focus on making the former.)


This has been consistent through all of my Shadowrun mods, and it continues to pay off. I can surface problems early on, get a sense for whether the story is working, and establish the tone for the rest of the game. If there are any problems or I decide to cut anything, the loss is relatively small.

The biggest single benefit here was probably the submarine mission. I kept the mechanics of this intact, but completely rewrote the story from my initial draft. I had always intended this to be a creepy story, a horror showcase similar to the Armory in Eclipse or the Crypt in Corona. But I was very unhappy with how the story turned out, so I ended up redoing it from scratch. I’ve already gotten some good feedback about how the revised mission, and I think it does a much better job at accomplishing my goals.


I’ve gotten very diligent about self-testing scenes as I develop them. This is the best time to fix bugs, while everything is fresh in my mind. I make sure to run through the scenes multiple times, taking different paths and choices each time. When I see a bug, I don’t just fix it, I test the fix; surprisingly often, there will be a problem from the fix.

My alpha tester, therefore, gets to play a somewhat-stable version of the game. This was probably the most stable build going into alpha testing, which is pretty impressive and surprising, considering how much larger and more complex it was than the earlier installments. I think there was only one true game-breaking bug that halted progress, though there were a ton of smaller bugs and other gameplay feedback that I was able to incorporate.

Due to the way Steam Workshop works, there’s a steadily escalating trickle of new players coming in, which is great for spotting and fixing new bugs. I’ve acquired a fair number of “watchers” who are automatically notified when I publish a new mod, so they can see it early. I also made a post on Reddit which added a good number of initial players. I can iterate very quickly on Steam, and push out fixes as new bugs are found, so they’re already fixed when following players start.

After a few days, The Caldecott Caper had reached the top slot in the Hong Kong Workshop, which means that it appears directly within the Steam launcher for the page. This brings even more players to the game; by this point things are quite stable, but I get a lot more smaller bug reports that help me polish things even more.

I’ve learned from Antumbra Saga that there is a very long tail to the mod lifespan. I expect to get a big bump when the Hong Kong mini-campaign is released; after that, it will just be a trickle, but since I’ve had eyes on my mod for a while, it should be smooth sailing for most.


I’ve been using debug triggers since Corona, and I highly recommend them. A typical scene might contain 10-15 minutes of gameplay. If you have a bug near the end of that scene, you shouldn’t have to play through the whole thing to test and fix it. Instead, write a trigger that updates the scene state and puts your team in the right place so you can iterate on the fix. As an extra bonus, this makes it much easier to switch a build between debug and release versions. Instead of needing to remember where your actor spawners and such were initially located, just disable your debug trigger.

Test maps were new for Caldecott, and worked really well. I created these to test mechanical things: crew advancement, special attacks, animations. A small test map will load much more quickly than a big hub map, so this really sped up my development cycle while working on those things. After I had validated them there, I could then implement in my real scenes and just do one quick final test to ensure they were still working properly.


As with Corona, I restricted myself to using the existing enemy character sheets (typically Errant, though sometimes Triad Thugs or another variation). I also looked up the karma progression for the player character and crew members in Hong Kong, then set up my own progression and crew evolution to match the same. Combat balance used to be the most challenging part of development for me, but by mirroring HBS’s design, I ended up in a good place on Caldecott.

One thing that particularly helped was the larger crew size in Caldecott. You spent most of the game with a full 4-person crew, in contrast to the Saga, where you usually only have 2 or 3. That’s mostly a historical artifact; the individual episodes in the Saga were originally written for the original Shadowrun Returns engine, which worked well with small teams, unlike the newer combat system which really benefits from larger team sizes. That lends itself to a smoother difficulty curve: you have more bodies on the field, more choices, and can take more punishment before things get really bad.


There's an enormous gap between thinking "Oh, that sounds cool!" at the inception of a project and actually seeing it play out in front of you on the screen. This will always be subjective, but these are things that I, as an audience of one, enjoyed.


It’s too early to call this a success, but on a personal level, I was very pleased with how this turned out. It’s something I spent a lot of time on, and actually watching it play out was very rewarding. I think I avoided getting too corny, making it emotional without being overbearing. It also feels like its own thing, and I think it has a nicely distinct voice from the BioWare romances that I love so much.


Also on a personal level, I like the slim design of the plot. Every mission you take advances you directly towards your goal. It takes away from the more open-world feel of Dragonfall and Hong Kong, but I like the focus: it adds urgency to the plot, and (hopefully) keeps players engaged.


This seemed to hit a sweet spot for content creation. I wrote a total of 20 banters to support the various team permutations; that was a lot, but not a ridiculous amount. Players still get a choice in selecting their loadouts, which they wouldn’t get with 3 or fewer. And it was pretty easy to write 4 characters with unique voices, goals, and skills.


These were fun to write! Again, I’ll be waiting for the public reception, but I think they kept the game engaging and helped it feel Shadowrun-y.


I’m reluctant to call these successes or failures, but they’re things I’ve been thinking about. I’ll be keeping an eye on the forums to see how people respond to them.


I may have too many villains. I specifically wanted them for the added complexity, but in retrospect, maybe it would have been better to have focused on a smaller number of them. I probably wouldn’t have included Claude if he hadn’t already been established in the Saga, and I’m not sure if he really adds all that much to the story, other than just being a villain.

There’s also a pretty wide disparity in how developed the villains are. Claude is one-dimensional, almost cartoonish, purely hateable. Kroin is also a straight-up villain: his reveal may be unexpected, but once you understand him, he really isn’t sympathetic at all. In contrast, Ava, Eriana, and Zielor are all more nuanced and complex. I like the idea that different players will have different reactions to those villains: some will hate Zielor while others might appreciate his cold efficacy. Some might view Ava as the ultimate evil, others might see her as a woman who does bad things through no malice.

I’m undecided on whether this disparity is a problem or not. Maybe it is OK to have some bad guys who are straight-up awful and others who have something more going on below the surface.


As with Claude, there are some characters who I brought forward because they were available and fit into the setting and story, but who aren’t really essential. Orion and Horatio are probably the two best examples. They’re characters who I enjoyed writing, and who let me explore the ork resistance and Halferville culture respectively. I hope I don’t make a habit of bringing back characters just because it’s easy. Brand-new characters like “Doctor” Tolar were also incredibly fun, and I might have made even more if them if I had needed to fill the shoes occupied by Orion and Horatio.

On the flip side, I did NOT bring back either of my two most popular characters from the Saga, Hailey or Norton; nor the longest-running character, Kali. This was an artistic decision that I feel somewhat confident in: each of those characters got a lot of time in the spotlight, and I feel like their stories were already told well. Bringing them back would have been diminishing returns, and might even have made them seem less special. However, I know that some players will pick up the Caper specifically because they want to spend more time with them. I dunno, maybe I should have accepted the challenge of figuring out something new and cool to do with those characters and extended their stories.

The cameo I'm 100% happy with is Dorbi. I loved her in Corona, and was really glad to get more time to develop her. She never had the same sort of arc that Hailey or Kali got, and between these two games, she's become one of my favorites.


Based on early feedback, this seems to be the system that people are most interested in - even more than romance!  I'm really glad to have it, but since people are responding to it, I wonder if I should have made it more complex or prominent. Its actual gameplay role is incredibly simple: people either quit, or don't, based on how much they like you. As I noted before, I want to avoid crossing the streams of character development and gameplay benefit, but if I make a similar game in the future, I might try something a bit more elaborate: maybe more opportunities to guide your companions' personalities, similar to the "hardening" system in Dragon Age: Origins.


There are a lot of opportunities for filler in the game. I still might add some later, but I'm undecided on whether it would make things more fun or not. My main ideas are:

1. Adding more documentation in the world for your character to read and absorb in the course of their mission. The one place where this currently happens is on the sub mission. There would be great opportunities to do this in, e.g., the Shiawase infiltration. There's lots of great existing CalFree lore to draw on, and it would also be a great place to foreshadow some later plot developments. Or just to tell fun stand-alone stories. One of my favorite bits of Shadowrun: Hong Kong was the story of the possessed noodle machine during DeckCon 2056. It's completely unnecessary, but is a lot of fun.

2. Add a People's University terminal node that would function similarly to the Shadowland BBS in the official campaigns. This would structure the same as the BBS, with local runners chatting about various topics. Some of it could be general lore, others would react to runs and decisions previously made by the player.

Basically, I'm not sure whether "more is better". It helps flesh out the world more and provides more content; but I'm not making an open-world game anyways, so maybe it's better for me to stay focused on the main plot. I'm also not sure how tolerant players are for reading unnecessary information, although the answer seems to be "somewhere between the amount in Dragonfall and the amount in Hong Kong".

And, if more isn't better, maybe I should have edited out even more. I do think that the companion dialogues are valuable: even if they don't directly impact the primary plot, they're integral to the player's story. But the various merchants, like Orion, have a lot of dialogue that is really just for flavor. I think it's good to have, but am not completely sure.


The overall tone for Caldecott is very different from the official versions of Shadowrun we get from Catalyst (publishers of the current incarnation of the pen-and-paper game), and pretty different from that used by Harebrained Schemes. It's also slightly different from that used in Antumbra Saga; I hate using the word "adult", but for various reasons, it is. So far my subscribers seem pretty happy with it, but I'm curious if anyone will be bummed that I suddenly started swearing a lot.

Also, even the internal tone varies quite a lot over the course of the campaign. Areas like the sub are moody and grim; side-missions like the video-game creation are lighthearted and silly; some romance sections come dangerously close to being tender... I'm personally happy with the variation, since it's a lot more fun to write, and it also seems in keeping with HBS's own variations (comparing Glory's personal quest to Blitz's is a great example of their range). But I'm still waiting to see how successful I was - unlike HBS, I'm just a single writer, and I wonder if my own voice is unifying these things more than I intended.


These were things I did wrong, or obstacles I ran into, that resulted in an inferior outcome, made me lose time, or were otherwise frustrating to development. As part of this exercise, I'm trying to also identify potential solutions to those problems: I honestly don't expect to get the chance to follow any of these solutions, but they may be applicable in other ways to future projects of mine, and could also be useful to other Shadowrun modders.


Honestly, this is the single biggest reason why I'm pretty sure this will be my last Shadowrun mod. The advantage of using the editor is that I get a ton of great stuff right out of the box: art assets, a combat engine, a scripting system, etc. The problem, though, is that they can break any of those things at any time, with no warning, with no fixes, and leave creators like me twisting in the wind. Major issues this time around included:
  • Dropping expected functionality. There was zero warning ahead of time that they would be removing all of the music from Dead Man's Switch and Dragonfall.
  • Not receiving expected fixes. Even when bugs are communicated and acknowledged, they are rarely fixed, unless they are causing problems in the official campaign (and sometimes not even then).
  • Absence of communication. Both of the above were bad enough, but if HBS had communicated up front that they would not be fixing these things, I would have bitten the bullet and released my mod a month ago. Or, if they had let me know that they would be fixed in January, I would have held off on releasing it so my first impression would be the game I wanted to release. Instead, I was left waiting and hoping for fixes that never arrived, until I finally released the mod, more out of frustration than out of joy.
And that's just the problems I've run into before releasing the campaign. Based on my experience with the Antumbra series, I can still look forward to a year of upcoming game patches breaking my mod, requiring me to strip out even more functionality or scramble to find work-arounds and fixes.

My personal solution to this will most likely be to just stop using the editor. There's a great ecosystem out there for Unity, and if I'm going to be spending this much time building something, I'd love to have it be something under my own control. (I do recognize that, like every developer everywhere, I'll still need to deal with bugs in my tools. But it will be huge to be able to choose if and when to switch to new versions of my tools, instead of having those forced on me during development and even after shipping.)

If I were to keep working in the Shadowrun editor, I think I would need to get more obnoxious about contacting HBS and following up on issues. Because of my personality, I hate nagging people, so even my monthly pinging about the availability of music felt like too much. But nothing else that I've done has seemed to work (emailing, chatting, posting in official forums, posting in unofficial forums), so more aggressive pestering of them might be necessary. Or, heck, maybe even organizing a larger group to do so - every modder is facing the same sorts of problems, so maybe a broader effort would be more successful than all of our individual ones have been.


I had a bunch of these in Antumbra Saga: the statue puzzles in the caverns, the color puzzle in the crypt, and so on. They were a lot of fun to make: they break out of the standard "talk and shoot" design that dominates most of the game, and let me do some creative things with scripts. Players seemed to enjoy these... well, some of them did, and others complained, but I got more compliments than not.

In the design phase for Caldecott, I made some placeholders for where I could put puzzles: on the middle floor of Shiawase, in one of the Berkeley buildings. But when the time came to actually make those levels, I couldn't think of anything fun and cool to do. I ended up falling back on more traditional Shadowrun puzzles - finding items, using skillchecks, etc. That worked fine, but it felt like a missed opportunity.

Solution: In the future, I should decide whether or not mechanical puzzles are a priority. If they are not, I should just drop them and not waste time trying to figure out how to make them. If they are, then I should invest time during the design phase to figure out what they should be. If necessary, I can prototype during this time and experiment with puzzle types. By figuring out the puzzle type before creating the map, I can build the level around the puzzle, rather than trying to figure out what sort of puzzle will fit into this map I've already finished.


There's really only one boss fight in this campaign, which comes at the very end; in contrast, Antumbra Saga had five (Site of Power, Shavarus on the docks, the Armory, Tophet, and the Battle of Shasta Dam). The one boss fight in Caldecott is good, but I really wish that I had more: boss fights, with unique mechanics and against powerful enemies, tend to be the most fun and memorable parts of tactical combat games like this. There's a lot of general fighting in Caldecott, but I suspect that most of it seems fairly rote.

I did have a half-hearted attempt at an early boss fight on the sub: there are powerful enemies, with a puzzle-style relationship between them, and some strategy about how to go after them. But, since this might be the very first mission the player can go on, it's a low-karma fight. It is interesting, but it isn't especially challenging.

Solution: Place boss fights later in the game, after players have mastered the systems and are comfortable with their party dynamics. Consider making test scenes particularly for boss fights, so you can iterate and experiment with the combat mechanics, independent of the rest of the scene's triggers.


I knew that The Caldecott Caper would be much bigger and more complex than its predecessors. I came up with what I thought would be a good plan: test it myself first, then give it to a single alpha tester, then share it with a larger group of people. The first two steps went great; the third step never really went anywhere. I'd made the mistake of assuming that, just because I had a fair number of watchers and followers, some of them would jump on the testing bandwagon. In practice, none of them did.

It all worked out okay in the end - as I noted in "Telescoped Testing" above, I ended up getting something like this effect after publishing. But it was a much riskier move - if there had been major bugs in the campaign, I would have much rather handled them in the quiet calm of a private alpha then the public forum of a release.

Solution: I should pro-actively seek out more testers. I'd mostly relied on Steam's watcher system, but I'm honestly not even sure how that works - maybe watchers don't get notified automatically, or maybe they don't get notified for non-public works. I made a single post requesting assistance, but it was on a low-traffic forum. In the future, I think I'd be better off recruiting testers in advance.


One thing that I'm personally a little bummed about is that, while the plot of the game is concerned with the dangers of hatred and the cyclical nature of violence, the gameplay is inescapably violent. At the end of the day, this is a game where you solve your problems by shooting your enemies in the face until they're all dead, which is at odds with the message of the story.

I really liked how Hong Kong worked in this regard - it had some mandatory combat, but you could complete many missions without firing a shot, and even the climactic battle could be ended without killing the final boss. Even better are the Torment games. The Shadowrun engine could support these sorts of games... it would be really hard, but the tools are all there.

Solution: Uncertain. This might be some soul-seeking I need to go through. Making combat-oriented games is much easier than the alternative, but that doesn't mean that it's how I should be spending my time and creativity.


(Did I mention that there are spoilers here? There are spoilers here.)

I started making this game nearly a year ago, and between its inception and completion my opinions have drifted somewhat. The biggest change is probably my opinion of the Halferville Protection Front. This is a meatier topic that I shouldn't dig into here, but essentially, the HPF was inspired by some real-world events and people. At the time I started writing, I thought it was important to separate the malicious people at the top who were driving the hatred and harm from the larger number of people at the bottom who were echoing and amplifying it. So I wrote things like the redemption story for the misguided HPF recruit in the depths who you can dissuade.

In the time since then, I've become increasingly pessimistic about "redeeming" members of hate groups. That isn't to say that we shouldn't try to do it, but I'm now more convinced that our top priority should be preventing harm, protecting the targets of abuse.

I dunno. From a story perspective, I think it works totally fine. I'm just personally more ambivalent now about the message it sends, which is kind of interesting, since that story was one of my biggest motivations in kicking off this project in the first place.

Solution: I could prevent situations like this by avoiding topical subject matter for inspiration. I technically could have rewritten this plot later to align with my current beliefs, but where do you stop with that? Would I rewrite it again in a year when my opinion evolves again? Beyond a certain point, the story takes on a life of its own: the HPF is now the HPF, and independent from its inspiration.

That's all, folks!

Phew! Thanks for indulging my endless ramblings. The Caldecott Caper was insanely hard to make, and insanely rewarding, and it feels so good to finally have it out in the world.

I'll probably release a final writeup later about the reception the Caper gets. In the meantime, I expect this blog to return to its regular pattern of half-hearted book reviews, absurdly long narratives of the video games I've played, and links to photo albums of video game screenshots. Speaking of which, geeze, I have literally over a thousand Lord of the Rings Online shots to clean up and caption. That game is so pretty!

No comments:

Post a Comment