Making games is so easy! Part Deux!

Alpha

The goal I’ve always heard for Alpha is that you’re supposed to be feature complete and by the end of it you should be content complete. Feature complete means you shouldn’t have any new systems being implemented in Alpha. You should have all the tools to create the content you need, they just might not work great or have various bugs. Content complete is that everything that’s going to be released with the game is actually in the game, hooked up and playable. It still needs time for polish, to fix bugs and make it feel great though.

So you’ve got your foundation of the game completed and you’ve just got to create the rest of the content. What could possibly go wrong?

Unfortunately there are quite a few of them. Due to tech debt your tools are really hard to use and you don’t have enough time to complete everything that was promised by the end of Alpha. Scope creep has occurred and the game you thought you were making has turned into this big crazy epic and requires more assets, more time and more complicated tools that weren’t appropriately budgeted. Let’s drill in on scope creep and why it’s so harmful at this stage.

Scope creep is when the definition of what’s going to be in the project gets bigger and bigger over time. This usually happens in a very well meaning way as people want to be more ambitious, they see opportunities to really wow the player, or because they just played a really great game and they want element X from that game in your own. Usually the project can handle adding a small change here or there, but it’s over the lifetime of a project that they start to add up to size-able change that can really change what you’ve been working on and how much needs to be created to support it.

One simple example of this would be adding multiplayer into a game. If you were working as a singleplayer game and are trying to midway through the project swap to multiplayer, you’re now having to make sure that everything can work in a networked environment. Things need to replicate from the host to the client, you’ve got to make sure that things stay in sync, all of the clients need to recover gracefully when the host leaves for whatever reason and the list goes on of extra work from what can seem like a simple thing.

Even something like adding pvp to a co-op pve game can be tricky. Previously you may not have had as much cheat detection in your game as you figured if someone cheated in a pve game it’s really just hurting their own experience for the most part and maybe hurting the economy of your game a wee bit. However in a pvp game you definitely would want to have some checks if players are doing things that look exceptionally shady like shooting through walls or across the map, but it can be hard to find that thin line where someone is too good, or there’s a bug in the game, as compared to they’re just completely cheating. In addition some of these checks can actually cause some gameplay knock on effects. If you’re checking to make sure that the player is shooting at something that they possibly could have shot at before dealing damage to the target, there is now a delay in there as you validate. This can lead to gunplay feeling sloppy as you shoot, see an impact and a few frames later damage is dealt.

At the end of the project your scope (and scope creep) needs to be managed to make sure you can still deliver the game on time and at the quality you want it to. If not it can lead to a lot of hard decisions like cutting core features and players feeling like there’s a missing hole in the game.

Beta

Beta is all about putting the finishing touches into the game. The game should be ‘done’ now where it’s fully playable and all of the systems are in the game, but they’re in various states of working from barely to somewhat. It’s time to crunch and get the game into shape. This is the final time for content creators to make significant changes to the game as the team starts to make sure the game is stable and performant.

The big problem with Beta phase tends to be the lack of time to do everything. Everything needs to be done at this point. There’s still some content that needs to be finished, there’s a bunch of content that needs polish and love from creators, the game needs to have better performance and all of the last finishing touches need to be implemented. But there’s only so much time left and that means that people are going to crunch to try to get everything in and prioritize what they can work on for the rest of the project.

There’s been enough studies on the effects of long term crunch on work now to clearly show that crunch leads to a net negative effort to work. However it’s really hard to not think that with a limited amount of time left that the only way to get everything done is put in more time and try to squeeze out more effort. But that leads to sloppier work which introduces more bugs into the game, which you then need to spend time fixing bugs you or someone else introduced into the game due to being in a tired state.

Finalling

Now you’re trying to get this game out the door and into people’s hands. That means you really really need to focus on stability (and hopefully you’ve been stable up to this point anyways). If you’re releasing on consoles you’re going through a certification process with first party to make sure that your game is up to their standards and you might be running into roadblocks there. Developers are on a tight leash as to what they’re allowed to fix or change at this point. That’s for a very good reason as even very minor and small changes can drastically break the game in quite surprising ways (I remember an audio designer broke the build by having an extra space or return in the ini file they checked in). Things are fragile, people are tired or burnt out, and everyone is just trying to get it all done.

Unfortunately this is where you pay for everything that’s gone wrong up to this point. Sometimes that payment is small, either because you’ve got a relatively simple game you’re working on, or you’ve had good due diligence on the team to keep scope in check and tech debt low. Or more often is the case the payment is high and people are scrambling trying to figure out what is wrong, trying to get enough caffeine in them to keep focus and awake. You’re heavily triaging your problems at this point as something that’s crashing the game is a hell of a lot more important than something that only happens in a small area of the game. However small problems can be really hard to rule out fixing. If it’s something that only happens in 1% of cases but you’re planning to ship to millions of people… that’s still over 10k people that’s going to affect for every million you sell!

In addition you’ve got to figure out a good way to allow people time off to recover, find out what is going on in their life again, and be ‘normal’ human beings so that they don’t burn out when they start working on the next patch, feature or game. This gets hard as people on teams tend to be exceptionally specialized. There’s a lot of tribal knowledge that you need in order to make pieces of the game and budgets for teams are tight that you don’t have that much redundancy in people. This becomes a nightmare in scheduling downtime for people while figuring out when and whom you need to work on the next piece of the game.

Live Service

And now we get to the ‘final’ piece of game dev and that’s the continual support of your product. That can be in the form of just patches to fix bugs and address quality of life features, or it can be constantly new content to be delivered for a ‘proper’ live service, or it could be new dlc and expansion packs being created for sale. Whatever the case you’re entering into both an exceptionally fun part of development as well as an incredibly challenging one.

Now that the game is out you can see how the world at large is reacting to your game. You can prioritize features that would make the most impact, see what needs to be fixed, and have an idea as to what people like, what they don’t, and potentially glimpse out why. However it generally takes a long period of time to create content and get it to the consumer. Just creating content alone can take easily up to 3 weeks for a lot of ‘simple’ types of content and that doesn’t start to include the time to test it, get it certified through first party and then out through a patch or your live service delivery method. That means you’re back into scheduling hell trying to figure out how to be able to provide a constant amount of content for consumers while not burning out your staff. As a couple of additional wrinkles you should have started this in the beta phase of development so your live service and patch systems could have been tested and there was content waiting to be delivered on day one, week one, month one, but your entire team was most likely too busy trying to just get the game out the door to do that. You also need to have a schedule that is flexible enough to allow you to react to what fans want from your game and be able to deliver that if it’s quick to do so.

Live service is an intricate balance of scheduling all of the demands on the team, however it can also be really rewarding to the team. You’ve got a captive audience waiting for more content and you can see how they’re reacting to your creations immediately and react accordingly. There’s no 2-3 year wait to see if people will like or get what you’re trying to do, but instead there’s a hopefully open communication there. As well you tend to be able to be a bit more creative now that you know what your game is and isn’t, and are able to figure out what the box you’re working in.

TLDR

Games are incredibly hard to make, from the simplest ones to the incredibly complex AAA blockbusters. They take a lot of effort and a lot of things go wrong. Honestly, it’s sometimes amazing that anything comes out and is as good as the games we see each and every day. And at the end of the day it’s a bunch of incredibly passionate people who just want to make games for other people, so cut them a bit of slack. It’s a human being that’s reading your comments so be constructive, but fair.

Making games is so easy!

Oof making games is so freaking HARD! It’s incredibly tough, but let’s talk about the overall rough process and then what makes it hard. This will be a rough overview of how games are made (at least in my experience) and the various pitfalls that are constantly being navigated. Hopefully it can give you a bit of insight into the game making process and a bit of empathy as to how much work and effort has gone into your favourite and not so favourite games :).

First off here’s a quick rundown of the phases in a typical game dev cycle and then we’ll go into them more in-depth.

  • Concept
  • Pre-production
  • Production
  • Alpha
  • Beta
  • Finalling
  • Live service/DLC

Concept Phase

At this point you’re trying to figure out what makes your game tick. Why does it stand out in the market space? Why would someone be interested in your game over something else? What’s the vision behind it that will drive the decisions you and your team will need to make for the rest of the project?

You’re going to be trying out some things here that probably won’t work just so you can get a feel for the game you’re making. And hopefully by the end of this phase you’ve got a good idea of the direction you’re heading with the project.

There tends to be two major failing points in this phase.

  1. People leave this phase with an unclear razor or vision. The vision is a bit too high in the cloud or wishy-washy. This makes it really hard to know where you’re directing the project and for the team to be on the same page as to what they’re making and how things should look, act and feel.
  2. People don’t fail fast enough in this phase. This part tends to be a combination of paper design and prototyping in engine so you can test out the feel of the paper designs to see if you’re leaning towards something fun. However if you’re not trying and failing fast enough here you won’t get enough iteration in your concept before you’re force to move onto the next phase (because of deadlines or monetary reasons most likely).

Pre-production

This phase is all about making sure you and your team can actually make the game you’ve decided on in the concept phase. You’re trying to identify what risks you have, how many people you need, how much time you require to finish the game and taking your best guess on a lot of that.

In order to help you make guesses to answer those questions you’re going to be spending time trying to make some content for your game and seeing what pitfalls you run into. Based off that and whatever previous experience you have you give your best guess and do some math to try to figure out how long it will take before you can get the game out the door. Ideally you’re also trying to make sure there are enough systems and tools in place for people to actually start making content for your game.

This can be a really rough phase as a lot of it is guess work. Looking back on a project you can easily see where you should have done something differently, tried not to be so ambitious in one spot and tried to be more ambitious somewhere else. Personally I think the biggest failing that comes out of this phase is that most people are still creating prototype/test content that should never be shipped at this point. However, due to time constraints that kind of content is going to be built on and shipped out the door. This is a phase where most projects come out of it with a load of tech debt that they don’t budget to pay off during their production phase.

Production

This phase you’re trying to scramble together everything that needs to be in the game. You’re trying to create content and organize your schedule so everything that’s needed by someone else is built in the right order so people aren’t wasting time and can have the assets, systems or tools in place when they need it and have time to use them.

It turns out scheduling all of that is exceptionally hard. With teams of any size it can be hard to remember to communicate to everyone else as to what you need and when you need it. That gets combined with downfalls from previous steps makes this phase really tricky to do well and causes a lot of the delays you see in games and a bunch of the ones the public doesn’t hear about. If you don’t have a clear vision from concept, then you might go back and forth on a bunch of decisions which can lead to doing the same work multiple times as you’re trying to figure out what your game is. If you have too much tech debt it might take a really long time to get the systems and tools you need to work and impacting your schedule overall.

This all gets extra complicated when you start thinking about stuff like demos for the various conventions like E3 and PAX. It can be really difficult to have enough of your game at a state where you can build content that looks ready to ship or good enough to show to the public. If that’s the case for your project (it usually is) then your demos might be a bunch of hacks and magic to make it look good. That work then needs to be done at the same time as the rest of the work to actually make the game. Combined with how hard it can be to determine what exactly is appropriate to showcase as a demo of your game to generate the right amount of buzz without adding too much work and everything gets tricky.

To be continued!

This is getting a lot longer than I thought so part 2 soon!

Who Am I?

I’m Michael Liaw, a senior gameplay designer with almost 13 years of experience in the video games industry.  I made my start in the industry as QA and eventually transitioned into game design.  I’ve worked on a variety of titles at BioWare:

  • Mass Effect
  • Sonic Chronicles: The Dark Brotherhood
  • Dragon Age: Origin
  • Dragon Age 2
  • Dragon Age: Inquisition
  • Anthem

As well as a bunch of DLC for those titles and some cancelled projects as well.  I’m currently in Toronto working at Get Set Games.

Everything here is my own viewpoint and opinion and doesn’t reflect any company that I work with or in the past.

I’ve always wanted to be able to give back to the community in some manner but I’ve also never felt comfortable in doing so and I want to be able to do it in a manner where we can have discussions about it and it’s available freely to everyone.  So let’s talk about games and game design, and occasionally we might touch on some stuff close to my heart like bullying, depression and racism.

Thanks for giving my stuff a read and let me know what you think.