BUGS!

What up team?!

If you’re reading this blog, then you’re definitely among the people who know about the iOS release of Where Shadows Slumber last week. If you somehow managed to miss that news, then guess what – we released Where Shadows Slumber for iOS last week! If you have an iOS device and you haven’t gotten a chance to download it yet, you should – and if you have downloaded it, make sure you give it a 5-star review!

The whole team has been working really hard on this game for a long time, so it’s a great feeling to finally release it into the wild. On one hand, it’s very freeing – theoretically, the game is done, so I don’t have to spend all of my time working on it. On the other hand, we’re all very anxious to see if the rest of the world likes the game as much as we do. However, there’s one thing that’s on our mind right now above all else.

Bugs.

We’ve put a lot of work into making sure that Where Shadows Slumber is as stable and bug-free as possible, but with such a small team, some things are bound to fall through the cracks. Unfortunately, experiencing a bug, especially a bad one, leaves a terrible first impression. People are justifiably upset when something they’ve paid for doesn’t work – and that’s a perfect recipe for bad reviews and poor sales numbers. We’re spending this week working on addressing many of the bugs that have come to our attention, and, in the interest of transparency, I want to share some of them with all of you!

 

pexels-photo-276160

Unexpected Crashes

The bug: The biggest issue people have been running into so far is that the game will crash unexpectedly. This usually occurs just as a level is starting, or shortly thereafter. For most users, it will happen consistently, although some users might see sporadic crashes.

Cause: We somehow missed some poorly-compressed textures before releasing. This caused the game to consume way more memory than it should have. For older devices, or for people with something else running on the device, the operating system will kill the process to retrieve the memory, thus closing the game.

Fix: Obviously, the fix to this is to update the compression settings on the offending textures! We’re currently going through all of our assets to make sure they have the correct compression settings (along with making a few other tweaks to our memory usage).

Workaround: Until the next patch is published, the best way to play the game is on a device with enough RAM to handle the memory problems. This means either making sure that nothing else is running on your phone, or using a relatively recent device, which has enough RAM that it’s not an issue.

 

freezing.png

You can tell just by glancing that this level is freezing.

Unexpected Freezing

The bug: During some levels (particularly in the Hills and Summit Worlds), the game will simply freeze. The OS won’t kill the process, so it’ll still be on the screen, but nothing will be moving. Sound will still play, but the only option you have is to kill the game.

Cause: At some point, we thought it might be due to the snow particles (since it only seems to happen on snowy levels), but it seems that’s not the case. Rather, it’s due to Obe’s footprints.

Whenever Obe (or any character) takes a step, he leaves behind a little footprint. These stay around for a bit (usually up to 15 seconds), and then they disappear. This gives us the juiciness of footsteps appearing, without peppering them all over the level.
This bug is caused by some of the footprint objects (specifically the snow-related ones) having bad settings. Rather than disappearing after 15 seconds, they disappear after 150. So, when you walk around the level a lot, wayyyy too many of the footsteps are being created. The overhead of managing so many game objects is causing Unity to freeze up.

Fix: This one’s an easy one – we just updated the number from 150 back to 15. After some testing, we’re unable to reproduce this bug, so it seems like this one is in pretty good shape.

Workaround: You’ll have to beat these Levels in as few steps as possible, to reduce the number of footprints. If you can beat the Level in under two minutes, you may be able to escape the deep freeze.

 

summitTitlecard

Go ahead, try to click it. See? It doesn’t work!

Level “Titlecards” Not Working

The bug: A few people have mentioned this bug – apparently, the level titlecards (which let you know which level you’re about to play) will appear, but they won’t disappear when you click on them! This prevents the user from continuing into the level.

Cause: Unfortunately, our team hasn’t yet been able to reproduce this bug. We’re going to continue to try to do so on our somewhat limited range of hardware until we can figure out what’s causing it. Since the titlecards themselves are pretty simple, the cause of the bug is most likely something fairly innocuous.

Fix: Once we’re able to reproduce the bug and know the cause, it should be fairly simple to fix, as the titlecards aren’t incredibly complex.

Workaround: Until we push out a fix to this issue, the only way around it is to close the game and restart it, since you can’t access the menu from the titlecard.

 

ralkingblock7-5

Those who’ve watched the story know that a lot of people ask Obe this question…

Disappearing Blocks

The bug: If you’re savvy enough to fight your way past the other bugs mentioned here, you might get a chance to experience this one. As the final level of the game, World 7’s fifth level is a tricky one which introduces a mechanic not seen anywhere else in the game. It involves “teleporting” blocks from one section of the level to another. Unfortunately (and apparently randomly), the blocks will disappear from one section, but never appear in the other! Obviously, this is pretty bad, since you need all of the blocks in order to complete the level, and some of them just get ejected into the æther!

Cause: When the blocks are teleported, their parent gameObjects change in Unity. I’m expecting there’s some error in the code which is causing the gameObject to inherit the wrong parent, so it doesn’t appear where it’s supposed to be. This bug has also given us some trouble in terms of reproducing. Since it’s likely an error in the code, it’s only useful to reproduce on a device where we can do some amount of development, but we have never successfully reproduced it in the Unity editor. We’re going to keep trying to do so, but do so on a variety of devices until we find the root cause.

Fix: This one is pretty straightforward, if not easy in the traditional sense. Once we determine why the blocks are disappearing, we simply have to determine how to update the logic of the mechanic to ensure that it no longer happens. Obviously, it’s more complex than that, but I don’t want to get into the nitty-gritty of it here (especially since I don’t know what the exact fix would be).

Workaround: Aside from the bug that literally prevents you from playing the game, this is the workaround that I’m least happy with – the only way to fix this issue is to reset the entire level through the menu. Since it’s such a long level, that means losing a good bit of work. We’re working on all of these bugs, but this one in particular I want to fix. Since it’s the last level of the game, and you lose so much progress when you restart it, the user ends up with a bitter taste in their mouth, which is exactly how we don’t want players to finish Where Shadows Slumber.

 

Burnout

Other Issues?

Of course, these aren’t all of the bugs. That’s one of the first things you realize when you let someone else use a piece of software you’ve created – there’s always a fresh horror just around the corner. This list is just the biggest offenders we’ve discovered so far. I can personally guarantee that there are others, and I’m tasking each and every one of you with finding them!

If you do happen to stumble across a bug that I haven’t discussed here, there are a few things you can do for us:

  • Tell us about it! We’re active on Facebook and Twitter, and you can always shoot us an email at contact@GameRevenant.com or join our Discord Channel. If you do, make sure you include details about your device. We want to make Where Shadows Slumber as awesome as possible, but we can’t fix bugs we don’t know about!
  • See if it happens repeatedly, and if there’s some pattern to when and how it’s happening. This helps us immensely when we’re trying to reproduce the bugs. After all, it’s a lot harder for us to fix a bug that we can’t reproduce. Screenshots are great too!
  • Don’t leave a disparaging review. All too often, we see people giving us a poor rating and review because of a bug. In a lot of these cases, it definitely makes sense – you paid for a product, and it’s broken. One out of five! The problem with this is that reviews and ratings are our best way to get other people to start playing the game. If our ratings start to tank, nobody is going to download the game! It’s definitely better to tell us about a bug and help us fix it than to simply hurt us by leaving a bad review (and then not updating it when we fix the bug, thus leaving us with a permanent scar on our rating).
  • Share app analytics with the developers. I think that this is a setting somewhere in iOS that will share data and statistics about app crashes. A detailed email from you is usually better (because not all bugs count as “crashes”), but checking this allows Apple to send the crash logs straight to us.

 

Thanks for taking the time to read about some of the bugs we’ve experienced. Putting something that we’ve worked so hard on out into the wild is always a big question mark. We’re happy with the amount of publicity we’ve managed to stir up, but we’re also a little annoyed by these bugs, as I’m sure many of our players are. We want to make sure that you all know that we know about these issues, and we’re doing everything we can to fix them as fast as possible.

If you are experiencing these bugs, never fear! We’re fixing the major ones, so you can keep your eyes peeled for a new version of Where Shadows Slumber later this week! Once it comes out and you update the app on your phone, some of these bugs (and maybe some others) should be taken care of.

Next week we’ll share more details about how our iOS launch is going!

 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

You can always find out more about our game (and tell us about bugs) at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebookitch.io, or Twitch, join the Game Revenant Discord, and feel free to email us directly with any questions or feedback at contact@GameRevenant.com.

Jack Kelly is the head developer and designer for Where Shadows Slumber.

Hell Week

Jack and I first met in a sketch comedy group in college back in 2010. In that group, and in theater troupes around the globe, the week before opening night is usually referred to as “Hell Week.” For big productions, some things can only really be done at the last minute. (Lights, sound, final props, rehearsing on a real stage instead of a temporary space, catering) That means the final week before “showtime” is often spent running around like crazy doing a bunch of little tiny things that have been put off until now.

Is it procrastination? Is it just how this always goes? Who knows! Jack and I have only ever done this once before, years ago, when we released SkyRunner on Google Play and the App Store. (It has since been removed from the App Store because we let the Jack and Frank’s Magical Cruiseline Developer License lapse. Whoops!) Back then, things were much more relaxed. No one was really anticipating our fledgling student project. And we were fairly certain it was never going to go anywhere – we were just proud to make a game. We built it on a Saturday, hit submit, and never looked back.

This time around, things are different. There are a lot of moving parts to game development. Everything starts off cool and slow when you’re first testing out an idea. Then, international partners become involved, and a real schedule is expected of you. For the past few months, we’ve been emailing Apple saying “don’t worry, it’s coming, we just need more time!” This past week, we made good on the most recent roadmap we sent them.

Early this morning, we submitted Where Shadows Slumber to the App Store for review!

To celebrate, let’s explore what Hell Week looks like for a small team of distributed indies collaborating online to finish a game…

 

HellWeek-OptimizedLevel

A Week Full of “Do It Later” Tasks

I must admit that I’m a severe procrastinator. My skill is to take something (like, say, a cutscene) and do a really great 80% job on it. Then, because there’s no one watching me to tell me to finish it, I’ll go: “Cool! Looking good. I’ll finish that later.”

As it turns out, the week before you build your game for the last time is what experts commonly refer to as later. This week, the tasks I put off for so long finally fell on me like a ton of bricks. I spent the majority of this week finishing the game’s remaining cutscenes as Jack optimized the game’s final Levels and cutscenes. Because my work wasn’t done, it held up his progress on optimization. For reference, optimized Levels look like the image above – they’re solid black since the lights work totally different in those Levels. That means it’s impossible for me to work in those Levels, so Jack needs to wait for me to finish my work and then duplicate the scene in Unity and optimize that. By Friday, I was finally able to get those done in time to review the text translation sent to us by Logrus IT. Jack put in the new text file and tested the game to make sure the final build worked as a cohesive whole.

Alba and Noah spent Hell Week adding the game’s final missing sounds and improving the cutscene audio. We neglected to put sounds into the game’s UI for a long time, just because there’s an unspoken rule that you do UI last because everyone forgets about it. Whoops! This is also the time to work on the “mix” – which they described to me as the audio volume of every different sound as they work in tandem together. Without this crucial polish step, sounds can crash on top of each other during gameplay. Alba and Noah worked to make them weave together smoothly.

 

HellWeek-Jack.jpg

Hell Weekend

Everything came down to the two build days – two days, Saturday and Sunday, focused entirely on testing and small changes. We were in Jack’s apartment huddled around his desktop as Alba and Noah worked fiendishly from Miami and Queens, respectively. I counted a total of over 18 hours over the course of both days spent just optimizing the game and doing a bunch of final changes! (Shout out to Jack’s fiancée and her sister for bringing us food on Saturday :D)

Like I said, some things have to wait until the end of the project before you can really do them. The weekend was spent putting in Jack’s final optimizations so the game runs smoothly on all phones. Then, those changes had to be tested on all of our iOS devices to make sure they didn’t cause other problems. I didn’t work nearly as hard as Jack did in these final hours, but it was important that I was there to give the artwork a final check. During optimization, a lot of the art rules changed: lights that used to stack on top of each other now blend smoothly together, for example. That looks awesome, but some tiny tweaks to their intensities and colors had to be made before we could ship it. That’s just one example of many little things we did over the weekend.

(Shameless plug: if you want us to come give a talk at your school, organization, or church, email me at contact@GameRevenant.com! We would love to go into more detail about how hard it is to make games!)

I don’t know if Jack knows this, but the main reason I wanted to work on games with him is because of his determination. Going into this Saturday build session, it didn’t look like we’d be able to send the game to Apple. The optimization process caused an unexpected crash on one of the game’s middle Levels, and I was pretty certain we’d need to delay internally again. But Jack never gives up, so we handled that bug, found some more, crushed them, and got everything done in time!

 

AppStoreImages.jpg

App Store Monday

Monday was another “put it all together” day, and it was technically the day Apple was expecting to receive the game. I spent all day putting our Store Listing together in iTunes Connect as Jack finished some tests and Noah and Alba worked on “mixing” the sound. Since I submitted the game early this morning at around 3:30 am EST, I guess it came in a bit late since that’s 12:30 am in California. Some things never change!

But even with all the stress, I can’t help but be astonished by what we’ve created. Look at the pictures up there, from our iTunes Connect submission. Seeing these beautiful images lined up like candies gave me a feeling of pride and accomplishment that I haven’t felt in a while! I’d totally buy this game if I saw it on the store… wouldn’t you?

At this point, our app is In Review, which means that the App Store employees are checking it for egregious errors or incompleteness. They’re strict about what they allow onto the store, but I have no worries that our app will be approved. Whether it will get promoted by Apple, or even the vaunted Editor’s Choice tag, is another story. We’re not releasing the game on iOS anytime soon, so they have plenty of time to look it over and decide amongst themselves. But the hard part is over – our game is fantastic, it’s uploaded to the App Store, and I’ve never worked so frantically before in my entire life!

This is also a long-winded way of saying you shouldn’t expect the game on Android anytime soon. Testing and perfecting for iOS took longer than we thought it would. (What else is new? LOL!) How long do you think it would take to test the game on Android while simultaneously not breaking anything we already did for iOS?

Please be patient with us! One of the coolest things about Where Shadows Slumber is that it is a labor of love created by hardworking indie developers collaborating remotely across the greater NYC area. That also means everything’s going to take a bit longer than you expect. You can send us nasty comments on Facebook about how Android owners are being treated like second class citizens, but that won’t help us make the game faster! (Besides, Jack and I both have Android phones, and we’d like the game on our devices one day too. Lighten up!)

 

20171110_204906

What’s Next?

Now, we enter an exciting new project phase. Jack and I are going down different paths now: I can only help him so much with the Android release. While he’s testing the game on tons of Android devices, I’ll help however I can with all-night testing sessions and really detailed QA reports.

But my job now is to coordinate our team’s marketing efforts and make the most of that iOS launch “bump.” We’re going to meet as a team to brainstorm ways to make the most of our upcoming release. We’re also working on a launch trailer that will make die-hard fans proud, and newcomers interested. It’s going to be epic! And yes, when the trailer launches, you will finally know our release date! Thank you for waiting so patiently.

This is the progress update I’ve been dying to write, and it’s finally here. The whole team is eager to show off the final game when it comes to iOS, and we’ll be working hard to make the Android version really awesome.

Next week, we’ll dive into our marketing efforts and the plans for our trailer. Or is it… trailers? Find out next week!

 

 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Thanks for reading this project update! If you’re new to this blog, you can find out more about our game at WhereShadowsSlumber.com, ask us on Twitter (@GameRevenant), Facebookitch.io, or Twitch, and feel free to email us directly at contact@GameRevenant.com.

Frank DiCola is the founder of Game Revenant and the artist for Where Shadows Slumber.

Going Gold

We’ve come to the part of the development cycle that no artist ever enjoys: the gold-stamping process. What is this mysterious “gold-stamping?” Why do artists despise it so? You thought it was just fixing bugs and making small tweaks, didn’t you? Well, read on to find out…

 

You’re reading the development blog for Where Shadows Slumber, a puzzle game coming to iOS and Android later this year. Check out our free Demo here.


 

 

LevelProgress.JPG

Gold Stamping: The Point of No Return

Every project must come to an end eventually. In order to make sure your game is ready for the whole world to see, every piece of it must be tested individually. Then, the entire game has to be tested as one unit. Before we can move on to that final testing phase, every Level, Cutscene, and Menu in the game needs to be approved by three teams: Art, Sound, and Development.

The Art team is just me – and the Development team is just Jack. Alba and Noah work on Sound together. That means we need three approvals for each Level, Cutscene and Menu. Approval means “I’m done working on this Level forever – there is absolutely nothing left to do. Put it in the game.” (See the screenshot above for a look at our spreadsheet that has each Level listed as well as the “Gold” stamps)

There’s a specific order we have to do this in, as well. I need to put my “Gold Stamp of Approval” on Levels before Sound does, because I’m in charge of the game’s visuals. If I add a blazing torch to a Level after Sound has “gold-stamped” that Level, they’ll need to come back and give that torch some kind of looping audio. Art and Sound need to gold-stamp the Level before Jack takes over, because he’s duplicating each Level in the game into a separate file and running an optimization process on that Level.

This optimization process takes time, and destroys the editability of the scene. (By way of analogy, consider what happens to a Photoshop file when you Flatten it into a JPG file. The JPG takes up less space on your computer, but you lose the editable Layers from Photoshop) Jack is able to lower the time it takes your phone to render a frame of the game by “crunching” these Levels. If your phone can render a frame faster, the game will feel smoother. Players hate lag more than they hate bad graphics or design, because it interrupts the flow of play. Everything we’re doing now is to make the game run smoothly even on older devices.

But you can see the problem: if Art or Sound has to tell Jack that they made changes to a Level, one of two things happen:

(a) We need to make that change in both the original Scene and the crunched Scene

(b) OR… Jack needs to start the optimization process for that Scene over again

Option A introduces the possibility of human error. Have you ever made a mistake copying something down by hand over to another sheet of paper? Imagine that with a bunch of tiny numbers and sliders in Unity! Unfortunately, Option B wastes time we don’t have. And since “crunching” makes these Levels unable to easily edit, there is no Option C.

In the late stages of the project, we’re in a mad dash to finish each Level and hand them off to Jack. We’re a bit on top of each other at the moment, and tensions are high. Some of our beloved changes won’t make it into the first release of the game and may have to be stealthily added as a patch later on. (Shhhh don’t tell anyone I said that, blog reader)

Those are all the downsides of gold-stamping. Enough complaining: let’s talk about why this process makes the game so much better!

 

HowEmbarrassing.png

iPhone X Stretching

We began working on this game long before the iPhone X was announced. Since we designed the game in portrait mode, we planned for it to work in 9:16 resolutions as well as 3:4 resolutions. The plan was simple: we would assume you had the tiniest screen there was (9:16) and make sure you could solve the puzzle using everything you saw. And then, if you had a large screen, your screen would show more of the artwork surrounding the puzzle… but not any more key information. (Our demo works this way. Download it for free on a few devices to see what I mean.)

The iPhone X dashed our hopes when it launched, since it has a very thin and tall screen. When we booted it up on an iPhone X earlier this year for the first time, we noticed that key puzzle information was being cut off! Furthermore, there were sections above and below the Scene that I never planned for human eyes to see. We had to fill those sections in with art, or iPhone X users would know the game wasn’t made for them.

Here’s another analogy: imagine if you were designing the set for a Broadway musical. You do all your work, and then a week before opening night your director comes to you and says: “Listen, we’re lowering the stage by 2 feet and extending the ceiling by 2 feet above the stage. Do you think your set will still look good?”

The correct answer is: “yes, but I need to extend the artwork so it doesn’t cut off!” It’s ok if your art bleeds over into a section that human eyes will never see. But you can’t have your screen bleed over into artwork that isn’t finished or cuts off arbitrarily!

Fortunately, Jack solved our width problem by writing a Camera Resizing script that adjusts the Orthographic camera size to the proper width depending on your hardware. (Thank God for Jack, lol. Just that script alone would take me the full 3 years we spent working on this game to complete) I am solving our height problem by extending the shadowy silhouettes on each Level where appropriate, and adding more art where it’s necessary.

 

TooManyVerts.JPG

Low Poly Means Low Poly

When you set out to make a low-poly game, you aren’t just deciding on an art style. You’re also setting boundaries for how much the game will need to handle. This is why you’ll see a lot of cartoony artwork on mobile games and MMOs. Both of those are situations where you want the game to run on low end devices like old phones (mobile games) or old computers (MMOs). Cartoony graphics let you show what you want without having high-resolution textures or incredibly detailed model topology. It isn’t just an artistic decision – it’s also a marketing, business, and programming decision.

However, just because I said that I would do low-poly art doesn’t mean I kept my promise. There are a lot of Levels that go wildly above our Triangle / Vertex budget. (See the screenshot above, with emphasis on the Tris and Verts) Unity counts the number of Tris and Verts that are displaying on the screen at one time. Jack wants us to be well under 100k of each. That may sound like a high number, but you’d be surprised by how even simple scenes can skyrocket to 150k. When he finds Levels that are egregiously “over-budget,” he sends them over to me so I can make reductions.

Fortunately, Tri / Vert budgets are not like monetary budgets. If Jack told me not to spend $100,000 dollars, and then I bought a yacht, we’d be $100K in the hole. (But, we’d have a boat. Jack, I urge you to reconsider this proposal.) With polygons, as long as I cut down on fatty models before the game launches, no one will ever know. Except for the readers of this blog, of course. But you’re sworn to secrecy! Don’t share this post.

There is one more thing about this I discovered: Unity’s lighting system counts polygons in a very strange way. You can’t always trust their readout. I discovered that multiple lights require Unity to count the same object multiple times. If a cube has 8 Verts and one light is lighting it up, Unity will show 8 Verts. If there are six lights on it, Unity will show 48 Verts. So there’s some Levels that Jack will reduce once he does his big crunch, since he rewrote how our Lights will work to make them all act as one super-Light. (More wizardry, I’m sure.)

We’re doing all we can to make the game run fast on your phone. If it’s still lagging, get a new phone!

 

TextureAtlas.png

File Formats and Compression

This is the kind of boring stuff that puts artists to sleep, but it’s important. Unity imports textures, models, and audio files according to a standard. You can set the standard somewhere, but we never did. Instead, I am going through every file in the game and asking the had question: does this really need to be as large as it is?

The answer is usually “no!” which is good. I’m crunching a lot of textures down from 1024 x 1024 to 32 x 32 pixels, Unity’s smallest maximum size for images. Noah and Alba also did a bunch of audio crunching that I can’t really explain properly. You’ll have to wait for their revealing tell-all novella (Where Shadows Is Grongus: Nightmare Stories From Development Hell) for all the juicy secrets!

One more thing about textures: it might not be super necessary for me to make these textures smaller after all. Jack is actually doing this crazy optimization thing where we have every texture on one big image called a Texture Atlas. This image is as small as I can make it and has every texture in it laid out like a grid. We have one of these for every Scene in the game (Levels and Cutscenes) and when the game wants to render an object that uses a texture, it’s going to go to this image and pick from the proper coordinates.

This is insane and Jack explained it to me once and it’s insane and I’m sure it will make the game run super fast. If I’m remembering correctly, Jack told me that the rendering system needs to pause and switch gears every time it has to render a new Material. (So if the grass is GreenMaterial and the tree is TreeMaterial, the renderer needs to pause and switch) If it never has to switch like that, the rendering process should go way faster. The way to do that is to make one Material with the Level specific Texture Atlas called “Scene-0-2-Atlas” or something and put that on each object with the right coordinates. We’ll have fewer batches to render, and you’ll never even know what’s going on under the hood!

I’m going to stop giving the layman’s explanation here before I embarrass myself by showing my limited knowledge. But look forward to Jack’s upcoming tell-all blogella (Life With Frank: The Man Who Knew Nothing) for all the juicy secrets!

 

rubber stamp APPROVED

See You In Hell

This is going to be a rough week. This lengthy process is taking longer than I would have liked, and I’ve been pulled away from animating the final cutscenes. I desperately want to get back on track so Alba and Noah have enough time to work on the audio score for the final cutscenes.

Thanks for reading this blog post – I have to get back to gold-stamping!

 

 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

We hope you enjoyed this update about the game’s development. Have a question about aesthetics that wasn’t mentioned here? You can find out more about our game at WhereShadowsSlumber.com, ask us on Twitter (@GameRevenant), Facebookitch.io, or Twitch, and feel free to email us directly at contact@GameRevenant.com.

Frank DiCola is the founder of Game Revenant and the artist for Where Shadows Slumber.

Crunch and Burn(out)

If you’ve been following the development of Where Shadows Slumber, then you know that we’ve been working on it for a while. It was early 2015 when the core concept first came to me. Three years ago this month was when I put together the first proof-of-concept to show to Frank. The demo version of the game has been out for over a year and a half.

Game development takes a long time, especially with a tiny team, little to no funding, a full-time job, and, the biggest time-waster of all, life itself. As Frank discussed in a previous blog post, we are holding ourselves to a pretty high standard for Where Shadows Slumber, which makes development even slower.

Fortunately, after all this time, we’re finally closing in on the end. As happy as that might make you, the fans of the game, there are two people who are definitely happier about it than you are: us. As frustrated as you might be about how long it’s taking, we’re even more frustrated. Frankly, as much as we love Where Shadows Slumber, neither of us can wait until the moment it’s over.

“But Jack”, you ask incredulously, “if you love it, why do you want it to be over? You’ve managed to work on it for three years – what’s another few months?”

There are two phenomena that often creep up at around the same time in the development cycle of a game (or any project, really). Here they both are, followed by something I’ve said in the past week that represents each of them:

  • Crunch – “There’s only a little bit of work left, but there’s even less time left!”
  • Burnout – “I’ve spent so long on this game, I’m just sick of it!”

 

Night.jpg

Crunch

I’ve discussed before the “ninety-ninety” rule, so I’ll just summarize it quickly here, since it’s relevant: not only does software development take a long time, it takes significantly longer than you think it will. This is an issue when you first start your project (“it’ll probably only take 18 months or so”), but there’s no scheduled release date or external pressure at that point. Nobody really cares yet! However, it becomes a bigger issue when dealing with shorter time periods. For some reason, people have a hard time realizing that their estimates are wrong and adjusting (at least, we do). Because of that, we’re still making poor estimates for how long something will take!

This is the reason that developers inevitably end up in the dreaded state known as crunch time. We thought there were about 6 weeks of work left, but it turns out there were 12 weeks of work left. Too bad we already gave a bunch of outside parties a solid release date! Since they’re now depending on us to meet those deadlines, we have to do 12 weeks worth of work in 6 weeks!

This is the phenomenon that leads to crazy overtime, too many all-nighters, and an incredible amount of stress. If you follow game design, you’ve probably heard about it, because it somehow ends up happening to pretty much every game. If you’re involved in game design, then you’ve probably gone through it, and you know how awful it can be.

It’s a little better for us than for bigger, more established studios – we don’t have employees to pay, stockholders to appease, or a public release date to hit. That said, we don’t want Where Shadows Slumber to turn into an indie game for which development takes forever that people are perennially waiting for. It’s now or never!

 

Burnout.png

Burnout

Cascading into crunch time at full speed is pretty bad, but it’s not the worst thing in the world – we’re been working on Where Shadows Slumber for a long time, and we are both willing to put in a little extra time as we reach the end. However, one of the biggest problems is that crunch time is also usually accompanied by burnout.

When you’re just starting out on a project, everything is pretty exciting. You enjoy working on interesting problems like pathfinding and game mechanics, and you don’t even mind fixing any bugs that come up. On the other hand, once you’ve been working on a game for a long time, you’re pretty much sick of it. All of the interesting stuff is already implemented, so the only things left to work on are tiny quality improvements (“does this look better when the position is 0.4 or 0.41? How about 0.42?”), annoying, subtle, or hard-to-reproduce bugs (“this was working last week, but a change to a different piece of code is somehow causing it to break, but only ~10% of the time”), and tasks that you intentionally avoided because they aren’t interesting or fun (“how many setPass calls will this scene render when running on a 6-year old Android phone? Is that too many?”).

None of these tasks are really very enjoyable – so not only has your excitement about the work decreased, but so has the objective fun-ness of the work that’s left to do. This leaves you in a state of never actually wanting to work on the project. Combine that decreased drive with the increased amount of work you have to do, and it starts to become pretty obvious why the end of development for a game tends to get pretty hairy, and why we’re looking forward to being done with it.

 

Tunnel.jpg

The Light at the End of the Tunnel

Don’t worry, though – it’s not all bad! We’re both still really excited about Where Shadows Slumber, because of the amount of work we’ve put into it. We’re both dedicated to the cause, and we’re not gonna let a little extra work put a stop to it (even if it ends up slowing us down).

The purpose of this blog post is two-fold. On one, more selfish hand, I want to offer up to our adoring fans an explanation for why we haven’t finished the game yet. We know a lot of you love the game, and are really looking forward to it, and many of you have shown us that by popping up and saying hi at various conventions. The past 8 months or so have been a real whirlwind, both personally and professionally, and our timeline has been shifting around quite a bit as a result. So I wanted to offer a bit of an explanation, as well as reassure you that we’re still working on Where Shadows Slumber, and we’re not gonna let it fall by the wayside!

The other reason for this post is to serve as a sort of warning, albeit a likely redundant one. For anyone working on their own game (or any project, really), it’s very important to take time management seriously. Ending up in the crunch time/burnout trap is an awful place to be. Despite this, most developers (indie and AAA alike) end up here, because it’s hard for people to grasp how time-consuming the last 10% of a project can be. So, if you take away anything from this post, I hope you do your best to allow enough time at the end of development to get your game out without ending up there. You’ll end up there anyway, but maybe by knowing about it ahead of time, you won’t be there for long.

 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

You can always find out more about our game and how freaking long it’s taking us to finish it at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebookitch.io, or Twitch, join the Game Revenant Discord, and feel free to email us directly with any questions or feedback at contact@GameRevenant.com.

Jack Kelly is the head developer and designer for Where Shadows Slumber.