Featured Blog | This community-written post highlights the best of what the game industry has to offer. Read more like it on the Game Developer Blogs or learn how to Submit Your Own Blog Post
Making 20XX: Listening Well and Lucking Out
We built 20XX over the course of four years, most of which ended up being public development via Early Access. We talk about the game's timeline, lessons learned, and how competition affected our development.
Hi! I’m Chris King, and I recently released a game called 20XX. 20XX is a Mega Man X-inspired co-op roguelite, combining classic action platforming with random level generation and permanent death.
20XX’s final visuals. We iterated a lot.
In this postmortem, I’ll go over the inflection points in our story, then talk a little more generally about what we’ve learned over the past four years.
--
CONTENTS [TBLC]
Jump to the part of this post you care about by CTRL-F-ing between the bracketed text. For example, if you’d like to skip right to the lessons, CTRL-F for “[LRND]”.
Quick Facts [QKFC]
Timeline Detail [TMLN]
Lessons Learned [LRND]
--
20XX Quick Facts [QKFC]
20XX is built in a custom C++ engine. I built 20XX’s engine from scratch to build my resume, assuming I’d shoot for a job at a big developer once the game was finished. I started with one of those “here’s how you render a triangle!” tutorials, and built 20XX from there. We probably should have just used Unity.
Only 2 people worked on 20XX full-time over its four years in development, but 16 individuals created game content of some kind. “How big is your team?”
Production timeline summary:
Day One: July 1, 2013
Steam Early Access launch on November 25, 2014 (512 days into development)
1.0 launch (left Early Access) on August 16, 2017 (1507 days into development)
--
TIMELINE DETAIL [TMLN]
June, 2013: Development begins on 20XX.
I build a super-basic 20XX prototype, and use reddit (/r/gamedevclassifieds, /r/forhire) to find the game’s artist, Zach Urtes. We sign a contract for a “six month project,” complete with ridiculous overscoping and features we’ll never be able to implement. He creates the first Rollster model (seen below with the rest of my prototype art).
The first “prototype” picture we saved. Note the “ix” health bar - Nina was actually “model 9”/”Nine” at the beginning of development, but we had to change that when Mighty No. 9 became a thing. That purple column is a ladder, which we ditched from the final product. Ladders are terrible.
August 31, 2013: Keiji Inafune, the “father of Mega Man,” launches the Mighty No. 9 Kickstarter.
I spend the better part of a week obsessively checking their Kickstarter and the surrounding hype wave and generally feeling beat-up. I spend a lot of time (inadvertently - I thought I was just sulking) researching MN9’s value proposition, and I realize two things.
ONE: The incredible show of support for MN9’s campaign proves that there’s an unmet market need for that old-school Mega Man feel.
TWO: We’re both wearing our inspirations on our sleeve, but we’re very, very different games. I knew that trying to “make a Mega Man game” in the same vein as the classics was foolish, so I made some big design changes to stand out. Given my love of roguelikes and desire for strong replayability, we gave 20XX random level generation and permanent death. Given my love of scope creep and unreasonable features, we designed the game with local & online multiplayer in mind. These were both big selling points that MN9 didn’t have.
We almost stop working on 20XX entirely. Instead, I choose to believe that the world is wide enough for both 20XX and Mighty No. 9, and carry on.
January 1, 2014: Zach’s original contract goes past its “six month” expected period. (20XX releases 1,323 days later.)
We decide we’re going to show at PAX, and kick off our Kickstarter and Greenlight campaign in April, all at the same time. We pitch every reputable publisher I can find on 20XX, and are universally rejected. (We think those publishers made super reasonable choices; we weren’t a very good game at the time. We basically pitched with an ugly prototype.)
We start hunting for a composer. (Did we really pitch publishers with my placeholder music in game? Oops.) Our first choice is unimpressed with what we’ve done so far, and tells us so.
I remember how excited I was to send him that early build, and how crushed I felt when he didn’t want to compose for 20XX -- specifically because the project itself was bad. I felt defensive, but instead asked him for specifics - what’s bad? What can we improve? - and thankfully he gave us a laundry list of what he felt wasn’t working. It gave us a lot to chew on, and the game got better for it. It also taught me how to extract information from criticism. This ended up being one of the pillars of 20XX’s development.
We find our composer in Brandon Ellis (aka Cityfires), who’s responsible for all of the awesome music that made it into 20XX. Brandon nails the tone we’re going for, and the game instantly improves by leaps and bounds. A++ 10/10 would recommend.
April, 2014: We show at PAX East, start our Kickstarter and Greenlight campaigns simultaneously, and generally just sort of hate ourselves.
Kickstarter is a full time job, and we decided we just wouldn’t be around computers for the first days of it. If you’re going to combine KS with a big show, start the KS after your show and aggressively collect email addresses from the people who dig your game on the expo hall floor. Your sanity will thank you.
We learned a lot from our first PAX -- those lessons are here from when I wrote them up a few years ago. Past-me probably said it better than present-me could, anyway.
Kickstarter was miserable and stressful, and we were right on the fence between making it and not the entire time. In hindsight, we ran the campaign way too early and would have done better if we’d waited for better visuals, but we didn’t know we were going to expand the scope at the time. Our messaging was also pretty flippant/unprofessional, which likely hurt us.
Our Kickstarter month was the most stressful month of my life. We would not have survived this period without the incredible patience and support of some of my closest friends, most notably Bianca (early marketing/social presence/got us some attention at East/put up with all my mopey garbage during Kickstarter/agreed to marry me which is pretty great), DJ (did not agree to marry me but built our initial internet presence, which we sorely needed), and Chase (playtested the crap out of our early builds and just generally supported my game development while I was making garbage).
20XX’s visuals as of April, 2014 (first PAX showing + Kickstarter).
September, 2014: We team up with Fire Hose Games.
I meet Eitan at an IGDA meetup. We agree that he can help us make the game more professional so we can actually sell it. This is one of the better decisions we make. Eitan has a lot of industry experience and connections that I lack.
We expand the project’s scope a good bit. Instead of releasing the final product in November, we agree that we’ll release the Early Access version, and build the rest of the game in front of a live studio audience.
November, 2014: 20XX launches on Early Access.
On Day One, we sell 64 copies of 20XX. I’m thrilled. We make a series of promises to the community up front, and do our best to keep them:
We set a strict bi-weekly update schedule, promising that during Early Access, we’ll push a patch every other Wednesday by 6:00 PM Eastern. We add a clock in game that I update every patch that clearly says when the next update is coming. Folks love update clocks - if you’re certain you can patch your game on a schedule during EA, add one. It earned us a ton of goodwill with the community, and gave us a reliable, routine way of getting feedback on our latest work.
Don’t do this if you aren’t certain you can meet the schedule - promising a schedule and not delivering is worse than not promising a schedule. IIRC, we missed two update deadlines out of over 70 - one by a day, and one by an hour.
I read every single post on our Steam Community, every post on our subreddit, /r/20xxgame (/r/20xx is taken by a different, defunct 20XX), and every email. I reply to every single one, and as the community grows, a number of our veteran players rise to take on some of the more common questions for me.
We owe a big chunk of our success to reasoned evaluation of feedback over a long period of time. Strip the emotional content of your user feedback before evaluating it - it’s awesome when fans love your game, but don’t greenlight a suggestion solely because a big fan made it. Don’t block out good suggestions made by assholes, either.
I’m as open with the community on what we’re working on as I can possibly be, and let their general consensus impact our schedule. If lots of players have a specific pain point, I’ll usually stop what I’m doing to fix it. If the majority of the community thinks we’ve made a misstep, we sit down and seriously evaluate whether or not we’re in the right.
A few weeks before our beta launch in Sept 2015, we spent a ton of time revamping both Ace and Nina’s character designs.
ABOVE: 20XX's pre-redesign characters (Summer 2015).
BELOW: The "failed" redesign (August 2015).
The new designs got the most overwhelmingly negative community feedback we’ve ever had. We had some tough talks, dropped everything we’d planned on doing before our beta launch, built better versions of our old character designs (using the lessons learned while making the “failed” designs) and could cut entirely new trailers and media just in time for our beta launch.
Redesigned characters. (We still revamp them one more time before launch.)
The resulting publicity push was the biggest one we’d had to date by an order of magnitude. I’m pretty sure if we’d stuck to our guns and said “these are our characters now,” we’d’ve died in the water right there.
Note: being “open with the community” does not mean overpromising. Share what you’re sure about.
March, 2015: Realizing the game needs visual direction beyond what our team can provide, we hire Clemens Scott.
Clemens (most recently the amazing artist of Old Man’s Journey, by Broken Rules) spends six months with us, bringing the game’s visuals up from “unattractive” to “polarizing” (a huge improvement). 20XX’s current marketable form would not have been possible without Clemens’ help.
April, 2015: We show at our second PAX, this time with the lovely Indie MEGABOOTH.
It goes much better than our last showing, and we even get some press! Later in the month, MANvsGAME and Zeke (Ezekiel_III) start streaming 20XX at 2 AM while I’m at Bianca’s (then-girlfriend-now-fiancee-also-ilu-Bianca) parents’ house, and none of them kill me when I watch it until they stop at 5 AM. Reception to our first batch of Clemens-improved environment art is encouraging; maybe this is the real deal. We sell another 64 units in a single day, and I’m Christmas-morning-excited about the whole thing.
Mighty No. 9 announces their first delay to September 15th (4.5-5 months). This isn’t a big deal. Delays happen, and (other than the timing) they do a good job of explaining what they’re up to and why the game’s been delayed.
May, 2015: Money’s super tight, and Bianca mostly supports us personally. She is a saint. I take out a loan so I can afford to continue to pay Zach.
August, 2015: Mighty No. 9’s second delay happens. This one is less well handled. (Lots of good articles about it hit around the same time - here’s one that does a good job of explaining it.) The MN9 team burns a lot of goodwill, and we decide this is our shot at a pressworthy story.
We announce that 20XX will finally be entering beta on the day MN9 is no longer using as a launch day, and it sticks. We get a more concentrated press hit than at any time before or after (including our final launch), and we go from selling nothing to selling a pretty reasonable amount.
We’re still way in the red on the project, but from here on out, 20XX generates more money than it spends. The influx of fans, money, and feedback lets us take the game farther than we previously thought possible. Over the coming months, we maintain a stable sales rate and I eventually pay back the loan.
January, 2016: 20XX has grown, and we decide we need community feedback before each patch.
We start our “Superfriends” group, aimed at getting early builds of game content in front of 20XX’s biggest fans for feedback before they go live. We try our best to make sure the content Superfriends get is interesting. Seeing new items and stages before they go live is awesome; “test our engine changes!” is not.
We give them super-early-access to the game’s final stages, which ends up being a godsend. Our first builds of these stages needed an embarrassing amount of refinement, and the feedback we get from our Superfriends is a critical component of that refinement.
May, 2016: We decide 20XX should have a few cutscenes (“all professional games have a few cutscenes”, we said), and start hiring.
Cutscenes prove to be really difficult to get right. We go way over budget, and the entire process ends up taking 14 months. None of us are experts on this sort of thing, so communicating exactly what we’re looking for proves difficult. We get the scenes before 1.0 (by two weeks), but having gone through all this, I feel more like we survived it than that we really learned a lot.
June, 2016: Mighty No. 9 launches on PC.
“Play this instead.”
In the weeks leading up to MN9’s release, 20XX’s “most helpful” review on Steam read “Play this if you’re tired of waiting for Mighty No. 9.” Mighty No. 9 comes out, and it’s pretty okay, but doesn’t live up to the hype it built. The review changes. Fortunately for us, MN9’s release date lines up nicely with the Steam Summer Sale, and 20XX is well-positioned to benefit from the hype-vacuum MN9 leaves behind.
From here, 20XX’s development follows a pretty straightforward pattern. We maintain a resting sales rate we’re happy with, and mildly discounting the game (20-25%) during big sale events treats us well. It’s mostly smooth sailing until our 1.0 release in August 2017.
December, 2016: We launch 20XX’s “piecemakers” experiment, aimed at teaching the game’s fans to use my really-awful level design tools.
The game’s tools suck, and we fail. Out of a hundred or so volunteers, two players submit segments, only one of which makes it into the game. This is 100% our fault - our level design tools are clunky and have a steep learning curve.
Making a better editor becomes a post-1.0 concern - we’re still (as of now, Nov 2017) figuring out whether or not this is a feasible project for 20XX. (If you have experience making a good level editor, get in touch!)
August, 2017: After 71 consecutive bi-weekly updates, 20XX releases on PC, leaving Early Access.
We make a new trailer, but it’s still 100% action-oriented. (We’d love feedback on this - we think there’s lots of room for improvement here.)
One month in advance, we reach out to pretty much every influencer who’d either covered us in EA or told us they’d cover us on release, and wrote lots of non-form-letter individual reachouts. We didn’t get much back. Three big outlets told us they’d cover our release, and of those, one came through. (Tim’s video is amazing, even if you don’t like 20XX.) The day the Kotaku video is released (day 3 of our launch week), our sales spike up ~30% compared to the previous two days. It’s hard to pinpoint how much of this is due to the video -- 20XX has always done better on Fridays and Saturdays -- but it definitely has an impact.
We spent a good chunk of our launch week between #20-25 on the Top Sellers list. Steam’s organic visibility saved our butt. Despite our failure to get press/influencer attention, Steam’s algorithm deemed us worthy, and we performed pretty competitively with similarly scoped titles that released that week.
Final product.
--
LESSONS LEARNED [LRND]
Early Access was a huge win for us. We’ve learned a lot about it.
--
When considering if your game and team are a fit for Early Access, ask: