Inside Animation: The Process

As I descend further into the depths of animation Hell, I thought it would be good to expose my animation process to the world. At this stage of the project, I’ve completed half of the cutscenes in the game. I’m able to tackle one cutscene every week. I have a good sense of the workflow and I’m getting “in-the-zone”, so I feel ready to talk about the steps I take to bring these scenes to life.

Long time readers of this blog (all three of you) may remember the first time I did this. Last year, when I was still animating the Demo, I wrote two articles about my process. Here are the links to that old article, parts one and two. Enough has changed since then that it warrants a new piece.

( NOTE: I won’t go into detail about how I animate the character’s faces, since last week’s blog was a deep dive into that system. Feel free to check that out. )

Now, how do we make the cutscenes in Where Shadows Slumber? To make this process more concrete, I’m going to focus on a relatively innocuous cutscene that I just got finished animating this week called Beach.

 

Cutscene-Writing.jpg

Step 1: Write A Story

You may not have expected this to be the first step on our journey, but it is! Writing is the most important step, by far. Before any work begins on a cutscene, Jack and I have to agree on the game’s story and how it will be told to the player during the game. This process took place a long time ago, at the beginning of 2017, when we locked ourselves in a room and did not emerge until the game’s narrative was pinned down.

Cutscene-Script-Beach

Before we named the character, “Grongus” served as a funny temporary name.

The original script was revised two times (officially) with some extra cuts happening unofficially in conversations between the two of us. Our original idea was to have a lot of cutscenes – I think 15 or 16 cutscenes in total – in the entire game. Since there are 8 Worlds, we wanted an intro cutscene to each World and a “finale” cutscene after the player completed all the cutscenes in that World. I agreed to this not only because I loved animation, but also because I vastly underestimated the scope of the work.

However, we eventually decided to eliminate a lot of the intro scenes. They weren’t really necessary, and it was jarring for players to watch two cutscenes in a row (a finale for one World, and an intro to the next) when they really wanted to get back to the gameplay. We only kept intro scenes for moments where the Player would be genuinely confused without them. The best example is the cutscene called Escape which takes place very early in the game. Prior to this cutscene, Obe is captured by human-like animals in a finale cutscene, and his Lantern is taken. In the very next Level, he’s freely walking around a volcanic prison with his Lantern in hand. Without a cutscene like Escape, players might wonder what happened to the animals, how the Lantern returned, and why Obe is not still in some kind of cell.

Cutscene-Script-River.JPG

Not only was this intro cut from the game, but this World’s puzzles don’t even operate the way we indicate in this script. This is why it’s good to leave cutscenes for the very end of the project!

Therefore, the Beach scene is a bit of a relic as far as cutscenes go. It’s one of just two intro cutscenes left in the game, taking place at the beginning of World 3, the Aqueduct. I felt it was important to show the transition between the River World and the Aqueduct World because they are quite different, and the River finale doesn’t hint at the Aqueduct in the slightest bit.

Here’s the short version: The scripting process is important, because if we can’t agree on whether or not a cutscene should be in the game, I can’t go forward and spend 40 hours creating it!

 

Cutscene-Sketch-Header.jpg

Step 2: Sketch the Scene

Execution begins with sketching the scene on pen and paper. There is a long gap between the writing process and the actual execution of the cutscene. For reference, I began this cutscene 1 week ago on May 22nd 2018, but the story was written in January of 2017. That’s over a year! As I mentioned above, one reason for this is because puzzles are more important to the game than cutscenes are. Puzzles get top priority! Also, since edits to the script happen sporadically as the game evolves and our scope shrinks, it’s good to sit on the script for a while. That’s why I’m doing cutscenes last.

There’s one more good reason, though! Since cutscenes happen after the game’s art has been completed, the sketching process is a lot easier. Most of the game’s artwork is done using a modular set of puzzle-piece 3D models that can be arranged along a grid to form pathways, bridges and obstacles. I’ve also created a bunch of materials for each World. That means when it’s time to lay out how a cutscene is going to look, I have a wealth of building blocks to work with. Really, all I need to do is draw a few pictures to determine the camera’s position, and I’m good to go.

Cutscene-Sketch

When I sketch a scene, I’m trying to make it look just like the puzzles. My goal for cutscenes is that you never even feel like you’ve left the game. The camera is in the same position and rarely moves, just like the game. I use the same models, colors, camera effects, and even some ambient audio, to keep that feeling of similarity. So when I draw a picture of the scene, I’m trying to get everything in one shot. I need it to work in portrait mode on an iPhone, with room for superfluous art on the sides that only iPad users can see.

That’s why for Beach I composed the scene with the outlet pipe near the top of the scene. I know Obe is going to wake up, walk to it, and climb in. Arranging the scene this way avoids a messy camera transition, and lets us focus on the stillness of the moment.

With a good picture to work from, we’re ready to set things up in Unity 3D.

 

 

BurnedLaptop

 

Step 3: The Unity Smoke Test

You were probably expecting Step 3 to be “model everything in the scene” or “begin animation” – but I don’t dive into that right away. I’ve gotten into the habit of doing a smoke test whenever possible, before beginning a large amount of work. This is an old phrase from computer programming that refers to plugging in a machine and seeing if it starts to smoke, or light on fire. It’s also known as a sanity test.

As the picture above indicates, the modern version of a smoke test is when I douse my computer in gasoline, light it on fire, change my name and move to Mexico. (Wait, that’s not a smoke test. That’s Operation: Secret Grongus. Whoops! Jack, please remind me to delete this paragraph before I hit Publish)

The modern version of a smoke test is when you intentionally do placeholder work just so you can test it and see if something is going to function correctly. After all, if it doesn’t work now, it won’t magically work later. It’s especially important when making a transition from one tool (3DSMax) to another (Unity). The game’s cutscenes will be animated in 3DSMax, but they’ll be viewed by the player in a build of the game generated by Unity. We need to make sure that pipeline works before we dedicate 40 hours of work to something.

First, I create a scene in 3DSMax to work with. I import (3DSMax calls it “merging”) Obe’s character model, and the models of any other characters that are in the cutscene, into the file. I also merge in a few models that I know I will need. For example, in Beach, I know I need to use my ladder pieces so Obe can climb into the pipe.

Cutscene-SmokeTest.JPG

Will Obe, his Lantern, and my modular ladder make it into Unity properly?

I give Obe some basic placeholder animations. Really, it’s just a few frames that will all be deleted later. I make Obe wave his hands, move in a T-pose, do jumping jacks, or something silly. My goal is to make sure the animations are properly translating over to Unity. I do a similar process for objects in the scene and other characters. Obe is animated separately from them because I’m using the same Unity prefab that is used in the real game. This adds another step, but it’s worth it in case there are crucial last-minute changes to his prefab. Along with that, there’s a lot of little things to do – Animation Controllers for each FBX file, setup in the scene, camera positioning, light adjustments, and much more. Anything could go wrong, so I’d rather find out before I’ve done a few grueling hours of animation.

Cutscene-SmokeTest-2.JPG

Every cutscene needs its own Unity scene, FBX files for Obe and the rest of the cutscene, and Animation Controllers for Obe and the rest of the cutscene.

I have a small checklist of things I go down:

  • Can I animate Obe?
  • Can I animate his Lantern separately from him?
  • Can I animate his Lantern if he’s holding it and it follows his hand?
  • Are Obe’s hands, feet, and pelvis “Linked to World”?
  • Can I animate other characters?
  • Can I animate other characters holding objects?
  • Can I animate objects on their own?
  • Do other characters require their body parts to be “Linked to World”?
  • Is there a light? Is that light attached to the Lantern?
  • Is the Lantern flickering properly?
  • Does the camera need to be re-positioned, or zoomed in?

When I’m confident that Obe’s animations and the animations of everything else in the cutscene are working well, I can begin modeling the scene in earnest. Now I’ve made sure there won’t be any surprises during the next step.

 

Cutscene-Model-3DSMax.JPG

Step 4: Model Static Objects

We’re ready to bring my ink sketch to life by creating the scene in 3DSMax. This is done by using modular building blocks wherever possible, and also creating new 3D models. Beach is a bit of a hybrid in this regard. The ladder, for example, is the same model and material used throughout the game whenever Obe climbs a ladder during a puzzle. The water is the same rig we use during Levels, albeit with a special material. But other specific objects, like the sandy beach, the wall, and the outlet pipe are unique to this scene. I gave up the strictly modular approach a little while ago, and I think the game is better for it. (Above, the scene in 3DSMax. Below, the same scene in Unity.)

Cutscene-Model-Unity

Now that the models are in place, and nothing is going to change, I can go forward with confidence. I place Obe in an initial pose that matches the terrain, and begin animating the scene by hand.

 

Cutscene-Animation.JPG

Step 5: Keyframe Animation

Recently, when I was at PAX East 2018, someone asked me if the cutscenes in our game were animated using motion capture technology. I took this as a compliment, because I think most people assume motion capture animations are an indicator of high quality. Thanks, random person!

For those unfamiliar with motion capture, think of the character Gollum in Peter Jackson’s Lord of the Rings trilogy. Gollum was animated in 3D, but not by hand – rather, the actor Andy Serkis dressed up in a silly motion capture suit and performed the role himself. Later, computer imagery was placed on top of the scene using data captured from his performance. This technology has also been used to great effect in the Uncharted series of games. As it grows in popularity, there are boundless examples to use. I can’t name them all!

However, that is not how animations are created for Where Shadows Slumber.

Motion capture is the proper tool to use when your resulting animation is intended to be life-like, gritty, and serious. Characters like Joel and Ellie from The Last of Us work well because they are intended to be portraits of real people, so it makes sense to have actors play them. Motion capture also requires a financial investment that only AAA studios can afford. If you’re using motion capture, that means you’re paying actors some money, purchasing a large studio room to perform in, purchasing high-speed cameras, and purchasing (or creating) software to bring it from the stage into the virtual world. We don’t have the resources to afford that, and I don’t want to work that way anyway!

Cutscene-Animation-Frames.png

By setting key frames at 600 (Obe takes a step) and 605 (Obe slips a bit in the uneven sand) the trivial frames between (601, 602, 603, 604) are filled in by the computer program.

Animation for Where Shadows Slumber is done the old fashioned way – by mouse-and-click keyframe setting. I’m fairly certain Pixar does this as well, albeit with more complex tools than the 3DSMax Animation Timeline. If you’ve ever seen a documentary on how Walt Disney created those first frames of Mickey Mouse by hand on cell sheets, you get the idea – the lead animator sets a pose for one period of time, and then sets a different pose for a different period of time. His subordinates fill in the gaps, and the result is the illusion of animation.

I don’t have any subordinates, so 3DSMax fills in the gaps for me. Sometimes I work with it, and sometimes I have to fight it because it filled in the gaps wrong. You need a lot of key-frames, but animation frames are just a fraction of a second ( 1/30th a second, in our game ). That means an hour of work may get you just 3 quick seconds of animation. The process is painstaking, and easily takes the longest amount of time in the cutscene creation process. Beach, a relatively simple 50 second cutscene, required 7.5 hours of animation to complete. The previous cutscene, Wolf, which is a very involved fight scene that lasts 100 seconds, required 48.5 hours of animation!

 

Cutscene-Footprints

Step 6: Special Effects

We’re not even close to done yet. Animating the characters in a scene is not enough to bring it to life! Every cutscene needs some kind of special effects, whether it’s footprints in the sand or the drip-drip-drip of a leaky pipe. This never takes as long as actual animation, but it can still be a painstaking process. For example, in the Wolf scene I mentioned above, every time an object fell into the water I had to trigger a particle burst to make it seem like the objects were splashing. That was as fun as it sounds!

To achieve my special effects, I wrote a script called Cutscene Manager. This thing will fire off effects based on the time of the animation, and I save it only for things I can’t animate by hand. Here’s two examples to show you the difference:

Example 1: Footprints in the sand

These footprints can be animated by hand, so I don’t need to use my script. Notice how they appear after Obe touches his feet to the ground – what’s happening here? Well, they are actually just hiding under the sand! I triggered their animations using keyframes, just like anything else in the scene. Above, you can see one that I have selected that is still burrowed under the ground, waiting to rise up.

Example 2: Obe’s Lantern light grows, and then shrinks

We use the solid color black a lot in this game. It represents total darkness, which makes it handy for scene transitions. Every Level and cutscene begins with the world in total darkness, and then a light grows somewhere and the animation begins. I think this helps focus the attention of the player, and it makes transitions less jarring. However, since Lights are a Unity component, their Range values can’t be animated in 3DS Max. 3DS Max has no idea they even exist! Instead, my Cutscene Manager script knows to change the Range of a specific Light at a specific speed at a specific point in the animation. It may seem like a crude solution, but it’s the best we came up with. At the end of the scene, the Light gets another trigger to shrink down to zero – pitch black.

You can see why special effects necessarily need to come after principal animation. So many of these things require specific timing! If the underlying animation changes, they’d have to change, too. It’s better just to wait.

 

Step 7: Recording for Alba and Noah

Recording the cutscene is my final step, although the cutscene is not done yet. Using OBS, I record my screen with the animation playing. I mute the sound in the game, and I talk during the cutscene to tell our audio engineers what is happening. Some things are obvious, and I don’t need to say them (e.g. he’s walking in sand, which sounds like the sound of someone walking in sand). Other times, a noise comes from off-screen and has no visual representation. Without my direction, Alba and Noah couldn’t possibly guess at what is happening in the scene. My recording is set to be the exact same time-frame that it will be in the game, which means they can “score” this video as if it was a short film. From the work they’ve done so far on earlier cutscenes, I can tell the cutscene audio is going to be incredible.

I briefly flirted with the idea of using a high-quality recording of the cutscene in the game, instead of having people view the cutscenes in real-time. However, I don’t trust Unity’s ability to play videos across multiple iOS devices and countless Android platforms. I also wanted to avoid including 10 large MP4 files into the game’s databanks, for fear it would clog up the game. The last reason is that our final cutscene transitions seamlessly into the credits, which need to be translated into multiple languages. This would result in 15 different movie files! I prefer to have that done on the fly using Jack’s JSON file setup.

Once Alba and Noah score the cutscene, I’ll put that file into the game and the audio will play in-sync with the animation, all in real time! Players can pause the cutscene from a top menu, go to the level select screen, skip the cutscene, or resume the animation seamlessly.

 

 


 

I don’t exactly know how Alba and Noah score these cutscenes, so I’ll leave that for another blog post. I invite them to share their knowledge with you, dear readers, whenever they feel the desire to do so. (Maybe I’ll interview them about it?)

That’s all for now. I need to go back to the animation mines and make more cutscenes… I’ll see you back here next Tuesday for the June State of the Art. Don’t miss it!

 

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

We hope you enjoyed this look at the cutscene animation process. 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.

Inside Animation: Face Morphing

When I was showing off Where Shadows Slumber earlier this year at MAGFest 2018, one of my fellow game developers gave me a stellar compliment. As he watched the game’s second cutscene, he said “these animations are so evocative.” What he meant was that the animation was conveying a large amount of emotional detail even though the characters never speak a word. This is especially impressive considering the cutscenes don’t even have sound effects yet!

Sometimes, we only remember the one negative comment we get in a sea of compliments. But for once, a positive remark stuck with me. Evocative. If there’s one thing I can do as the animator for this game, it is to ensure that the player feels a range of emotions when they watch the game’s story unfold. But how can this be accomplished when our character is so small on the screen? More practically, how is this actually achieved using a 3D modeling studio and the Unity 3D engine?

This blog post is a quick glimpse at how I set up the facial animation rigs for the characters in Where Shadows Slumber.

 

3Ds

First: The Old and Stupid Way

Before I show you how I animate the faces in the current build of the game, I should show you the first way I tried it back when we were creating a Demo of the game. The old Obe model, shown above, had a perfect sphere for a head. In the image above, it’s grey. Then, I put in two snowman eyeballs as flat discs (they look teal in the image above) and a mouth plane that wrapped around his ball-head (obscured above). So far, so bad – nothing can be animated here! These objects are static. His face won’t look evocative at all.

My answer was to create little patches of skin that could be moved around to simulate facial animation. Though they look peach in this image above, they would blend in 100% with his skin tone thanks to Jack’s shader. My philosophy was simple – if the skin slabs were out of the way, his eyes were open. If they blocked his eyes partially, that was a facial expression. In the image above, near the bottom-right, you can see that Obe’s unsuspecting opponent has his skin slabs set to angry because they partially block his eyes in a slanted direction. By moving the slabs around in time with the animation, facial expressions were simulated.

This was supposed to be a “quick and dirty” way of doing facial animation, but it ended up being a “takes forever and looks terrible” way of doing facial animation. I’ll never return to an amateur system like this! The silliest part is that 3DS Max has a system perfectly set up for preset facial animations called Morpher.

 

HeadAnimations

The Morpher Method

By spending more time modeling Obe’s head, I was able to create a flexible skull with some textures mapped onto it (black for features, white for skin) and preset animations with Morpher. This skull can be tuned to different emotions, and even combinations of emotions. Above, you can see how Obe can express a range of poses: angry, devastated, confused, joyous, blissful. Now that you’ve seen the final product above, here’s how to set up your own:

Morph-Base

Step 1: Model the base head

Spend some time crafting a base head for your character. Note that you’ll be unable to edit it once you begin Morphing, so take your time. Create flexible eyes, a mouth, a nose and ears (if your character has those) and be sure to add enough loops so they can move around later without looking jagged. This time, I gave Obe detached cartoon eyebrows so I could be more ambitious with his facial expressions.

Morph-Poses.JPG

Step 2: Duplicate the head as a Copy (not an Instance) and pose it

Now you must copy the base head and move it somewhere else in the scene. (I like to make a Game of Thrones style wall of faces.) Edit the vertices on this model into an extreme pose, such as furious anger or deep sadness. This pose will be what “100%” of this emotion looks like. Note that the vertices from the base head are going to move (morph, if you prefer) into the new positions you give them here, as well as every point in-between. Pay close attention to the topology of your model when you choose new positions for these verts, and your animations will look smooth. Above, you can see I do mouth poses and eye poses separately, so a wide open mouth (agape) can exist separately or simultaneously with wide open eyes and raised eyebrows (shock).

Morph-Combo

Step 3: Connect your pose to the base head in the Morpher modifier

The base head will have the Morpher modifier on it. None of the others need it. From the base head, you can use Pick Object From Scene to slot in certain poses as animation sliders. Then, using the arrows shown next to the poses, you can “morph” these targets from 0 to 100. 0 is going to look like your base head – 100 is going to look like 100% of the pose. If you combine two poses, as I did above, you may get weird results. But in this case, shocked eyes and a mouth agape work well together.

Morph-Gallery.JPG

Step 4: Repeat Steps 2 and 3 for every face pose you’ll need for this character

I made separate poses for Obe’s mouth (left of center) and his eyes (right of center). The yellow shape in the center is his base head. I tried to do every emotion I’d need, as well as building blocks like “shut R” for the right eye being closed. One thing I didn’t need to do is detailed mouth animation for talking, since he never says anything in a real human language. He just wails in terror a lot. But if you were doing this for a regular animated film, you’d want a whole set of mouth animations for the various sounds we make with our mouths (Chuh! Puh! Quah! Teh!) I’m happy I didn’t need that, because I hate doing those.

Morph-Swag.JPG

Step 5: Animate in a Scene when it’s all ready

This massive setup time bears fruit once you begin animating. Having a flexible facial animation system is remarkable. I love this system so much, and I never have to worry about whether Obe is expressing the emotion I want. Everything is correct and his face is super easy to read, even at a distance. Here, he’s giving an “…OK” kind of look as he escapes prison early in the game’s story. Though this look is not programmed in directly, it’s a combination of four Morph Targets: left eye closed, right eye closed, mouth closed, and “serious.” That’s the beauty of working with Morpher!

 

If you’re building your own facial animation system, be warned that it’s a lot of work. However, it will pay off in the end. Good luck making your animations evocative! Feel free to ask me any questions in the comments, over email, or on Twitter. I’m always eager to help. Happy blending, everyone!

 

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

We hope you enjoyed this technical look at the systems behind the game’s artwork. 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.

Summer Tour 2018!

The month of May is nearly 50% complete. Where does the time go? As we’ve been hard at work finishing Where Shadows Slumber for all of our patient fans, I’ve begun planning a summer tour of interesting game conventions. People always ask us if we have any shows coming up, so hopefully this blog post will serve as a good link I can toss at them. Note that none of these shows are confirmed yet – we’re just considering them. (Or, in the case of PAX, they are considering us!)

Maybe we’ll see you at some of these events?

 

 


 

 

 

https3a2f2fcdn-evbuc-com2fimages2f442174722f52294315602f12foriginal

Playcrafting’s Demo + Play Showcase (June 12th)

We’re considering signing up for Playcrafting’s free Demo + Play showcase next month as a way of getting some last-minute testing in on the game’s final few Levels. Since this event is free for developers, we wanted to mention it here in case anyone reading this blog is also a game developer. You should come to this! Playcrafting always does a great job with these free events. The fee for customers is really cheap, so you’ll meet a lot of large families and get the chance to test your games with players of all age groups and skill levels.

 

 

RockHall

Returning to Play NYC (August 11th – 12th)

Now that submissions are open for PLAY NYC, Jack and I will of course be applying again. I have a call scheduled with Dan Butchko, the CEO of Playcrafting, set for later this week. From his website:

“Play NYC is New York’s premiere dedicated game convention for creators and players alike. Featuring the latest releases from studios large and small, and from developers old and new, Play NYC celebrates every facet of gaming in a way that only the Big Apple can.”

Play NYC was a blast last year! They had their inaugural show at Terminal 5 in the city last August. I liked the trendy look of the space, but it was obvious that they were going to need more room for future shows. Now they’ve moved to the Manhattan Center for the next 3 years, which should give them plenty of room to grow. Jack and I are so excited to see Play NYC doing well. This might even save us money in the long term, because every convention within walking distance of Hoboken saves us an expensive cross-country trip to a place like California or Texas. Everyone in the Tri-State area should support Play NYC!

 

 

3z1a2219_hdr

PAX West (August 31st – September 3rd)

This was one of the first PAX events I ever went to, all the way back in 2015 for Mr. Game! PAX West is a super cool show in a really unique convention space in Seattle, WA. I’ve been to Seattle twice now, and I enjoyed it both times, although the city does have its obvious problems.

We’ve submitted our BETA build to the PAX 10. Every year, the PAX crew judges the games that have been submitted and chooses ten that they went to spotlight. (If you remember when we were part of the PAX East Indie Showcase, it’s a similar setup) Those selected get a free booth at the show, which makes the trip way more affordable for struggling young indies. I saw last year’s gallery and recognized a few friendly faces, notably Keyboard Sports and our friends at Tiny Bubbles. We definitely belong in the PAX 10, so I hope the judges like our BETA build! Jack and I would like to thank everyone who helped test it at SXSW and PAX East.

If you also want to be part of the PAX 10, you had better hurry. Submissions end TODAY!

 

 

PAX-AUS.JPG

PAX Australia 2018 (October 26th – 28th)

Yes, you read that correctly – we’ve thrown our hat in the ring for PAX Rising at PAX Australia (PAX AUS for short) because… well, why not? Submissions for PAX Rising were open, so I decided to fill out the form. The show is held every October in Melbourne, Victoria. Their mission statement:

“PAX Rising showcases engaging digital games developed by smaller teams. The folks at PAX believe these titles have a chance to rise above their modest beginnings, by growing as a company, establishing a fan base or pushing the industry.”

My wager here is that since a trip to Australia is so difficult, there won’t be much competition for the PAX Rising selection, meaning we have a better chance. But who can say for sure? The guidelines for PAX Rising are quite vague, so I have no idea if mobile games are even eligible. Whether or not we can go on this trip will also depend on if our game can generate the money to pay for the trip. So if you want us to go “down under” to PAX AUS, you better buy our game when it launches!

Check out a video of 2017’s PAX Rising stars on their YouTube channel here.

 

 

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

We hope to see you on the road! Let us know in the comments if you will be attending any of these events. 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.

 

The Triangle of Truth

Hello again, everyone! It’s Frank again. I know you are all eagerly reading our weekly updates to find out when the game will be finished, but this week you may be disappointed. Rather than announcing a launch date, I’m going to explain to everyone the project management principles behind why Where Shadows Slumber has had such a long development cycle. We’re going to discuss the Triangle of Truth!

 

 


 

 

triangle

The Triangle, Explained

The “Triangle” refers to a project management principle that has gone by many names, visualized in the image above. This diagram has been used to describe everything from project strategies and economic models to government healthcare systems and construction projects. It’s one of those mantras that just always seems to hold true, no matter the circumstances. When you are creating something, such as a mobile video game, you’d ideally like for it to be as good as possible for the cheapest cost and have a fast development cycle. Sadly, the edicts of being demand that you must sacrifice one side of the triangle to achieve the other two. As the desired two metrics increase, the sacrificed metric must decrease. Let’s define these bolded terms first, and then talk about Where Shadows Slumber.

Good: The product stands out among the crowd as something special. We want quality to be as high as possible.

Cheap: The cost incurred creating the product. (Not to be confused with the price a consumer pays for the final product) We want our cost to be as low as possible.

Fast: Time is money, so the sooner the project is done, the better. Life is short! We want our development cycle to be as short as possible.

When you see how Where Shadows Slumber lands on this diagram, everything will start to make sense.

 

We Chose “Good” and “Cheap”

Jack and I are two recent college graduates who teamed up together to make video games. The development of Where Shadows Slumber is not too dissimilar from the development of SkyRunner, our previous mobile game. We decided not to spend a truckload of money on the game, so that it could be as good as we can muster at the lowest personal cost. Essentially, we decided to spend time on the game rather than cash. This is because we have no money, so it was an easy decision.

That’s not to say that I’ve spent $0 on this game! It’s fair to say tens of thousands of dollars have gone toward the development of Where Shadows Slumber, easily. But our budget is a pittance compared to large indie studios and AAA development houses. The sides of the triangle have been chosen: we want a good game, and we can’t spend a lot of money, so we’ll just have to spend as long as it takes to get the job done.

What would Where Shadows Slumber look like if we sacrificed a different portion of the triangle? Let’s analyze where we are now, and then look at the others. Right now, we’re sacrificing time.

 

SACRIFICE: TIME  / /  GET: QUALITY, LOW COST

Time: We’ve been working on the game since the spring of 2015, and we’ll continue to work on it over the next few months. That’s a 3 year development cycle!

Cost: Game Revenant has spent ~$25,000 to pay our audio engineers, travel to conventions, and equipment. We work from our apartments and meet in coffee houses, so we don’t spend money on rent or utilities. Jack has a full-time job and I mooch off my generous, loving and forgiving family.

Quality: The game is superb, beautiful, and time-tested. We even created a free Demo that went through extensive user testing and has stood the test of time. This informed our approach to the final game, but it took a while to get to this point.

 

SACRIFICE: QUALITY  / /  GET: TIME, LOW COST

Quality: We always knew we wanted Where Shadows Slumber to be an awesome, premium mobile game. But if for some reason we decided to release a poorer quality version, we’d be done by now. What would happen if we sacrificed quality by having fewer puzzles, no meaningful story, and low-quality audio produced by Frank making noises with his mouth?

Time: We already created a rudimentary throwaway version back in 2015 when we first begun work on the game. We could have cut it off right there! Also, our Demo has been available for download since November 2016, so that gives you an idea of how much time we could have saved.

Cost: Obviously you don’t need to spend a lot of money if you don’t care about the final result. Jack and I could have just created a shorter, worse game and it only would have cost us a few app store developer fees (Apple, Google Play) and the cost of buying development devices for building and testing.

 

SACRIFICE: MONEY  / /  GET: QUALITY, FAST DEVELOPMENT

Cost: It is possible to get investors for indie games, either by getting a loan from the bank or by appealing to groups like Indie-Fund. Jack and I briefly considered this a year ago, but by that point we had put in so much of our own time, we felt like reaping the full benefits. (Remember – investors don’t give out money for free, they want a cut of the sales!) We could conceivably have gotten $500,000 – $1,000,000 to work on this game if we put our own money in and also got some investments. If we did…

Quality: Along with our personal efforts, we could have hired a small team of veteran developers to aid me and Jack. Veteran programmers would help Jack organize his code, and veteran artists would produce work superior to mine. With Jack and I to guide their efforts, we could take a management / visionary role and let the experts do the hard work. I think the quality would be the same it is now, but it would have gotten there faster. Speaking of which…

Time: My work would be cut in half if we paid an Animator / Character Gui* to handle all of the cutscenes and humanoid animation in the game. That would free me up to work purely on environments with Jack. On the development side, we could hire a full-time Quality Assurance Gui to test the game on various devices. A full-time Marketing Gui would handle our social media efforts, press relationships, and business travel. We could have also brought Alba and Noah into the fold a lot earlier, meaning most of their work would be done by now. Every gui we hire is another hat Jack and I don’t have to wear!

*Gui is a gender-neutral version of “guy” that we used to use in Off Center

 

2305701220_0fc3d01183_b

There Is Always A Drawback

It should be stated that when you sacrifice a portion of the triangle, you don’t get it back. There is always a cost. If you spend money, it’s gone. If you sacrifice quality, your game suffers. And if you spend three years working on a game, you suffer.

I’ve lived in isolation for a period of three years ( ! ), all the while neglecting personal relationships with friends and families, turned down jobs, rejected business opportunities, let my body grow fat, and forgone other personal life goals in order to work on Where Shadows Slumber for as many hours a day as possible. (Imagine my surprise when I discovered that women are not eager to date a man who spends 10 hours every day in front of a computer and rarely leaves the house. Shocker!)

Jack has been working his fingers to the bone every day at not one, but TWO tasks: his full-time work at a startup in NYC and his passion project Where Shadows Slumber. He’s written about this before on our blog, and I encourage you to read his past writing. I was particularly mortified at the mention of how he has to find small scraps of time throughout the day (30 minutes in the morning, 25 on the train, 45 between arriving home from work at night and making dinner) just to work on the game. I have no right to complain – in light of his sacrifice, my life is a breeze. What kind of person would lead their friend into this kind of a life?

I don’t mean to be dramatic, but the point of this blog post is that the toll is real. Choose your sides of the triangle carefully, because the side you scorn will stop at nothing to seek revenge.

 

MiyamotoQuote.png

Where Shadows Slumber: Eventually Good

Miyamoto’s famous quote that “a delayed game is eventually good, but a rushed game is forever bad” may not be true anymore in a world where games can be patched and DLC can be sold. In a world where software is now a service, rushed games might eventually become good, given time.

However, this is also an industry where you live and die by your first impressions. Users don’t ever return to write a second review, and journalists move from game to game quickly. Jack and I are making a sacrifice of time to ensure that Where Shadows Slumber makes a splash when it hits the market. We can’t spend money we don’t have, but we can always put in just a bit more work.

Are you a game developer, artist, musician, writer, or creator working on a passion project? Feel free to share this blog post with your friends and family, especially if they have ever asked you “gee, when are you going to be done with this darn thing?” Let me know what they say in the comments below!

 

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

This has been a project management blog from the creators of Where Shadows Slumber. 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.