Hey, Listen!

Bubbling pools of lava. Rushing water echoing throughout a cavernous aqueduct. An eerie graveyard. A lonely mountaintop buffeted by unrelenting snow.

For the longest time, Jack and I imagined these sounds in our heads as we played the development build of Where Shadows Slumber. Neither of us have any formal audio training, so our game was a silent vacuum waiting to be filled with lively sound. We imagined footsteps clattering on tile, creepy birds in the distance, and the distant growl of mysterious beasts as we dreamed of a day when our game felt complete. Finally, that dream has come true!

To be sure, this game is still very much in development. But we’re finally ready to show off some of the sections of our game that have complete sound. It’s taken many months of recording and composing by Alba S. Torremocha and Noah Kellman, our powerhouse audio team, to get here. All the while, Jack has been diligently programming a complex system of triggers to ensure that their sound plays correctly during the game.

I underestimated the amount of work it would take to set all of this up! But I was right about one thing – our game feels so much more alive now that you can hear things like the crunch of grass under Obe’s feet. Every visual element in the game has taken on a weighty-ness that gives it a sense of place, whereas before everything just seemed to float. If you normally don’t play mobile games with your phone’s sound on, you’re going to want to reconsider when you download Where Shadows Slumber next year.

Without further ado, let’s watch some videos of the game in action accompanied by a brief interview with Alba and Noah.

TURN YOUR SOUND ON! ([ ^_^]);

 

20171110_184952.jpg

At a planning meeting, we discuss scene audio transitions.

 

Interview With Alba and Noah

FRANK. What was the name of that event you guys went to?

ALBA & NOAH. The event was a GANG (Game Audio Network Guild) monthly panel and feedback meeting, one of the only venues where us audio nerds can safely enter the outside world and socialize.

F. How secret was it? Can you tell us anything?

A&N. We can tell you that Tom Salta (Composer for Killer Instinct, Prince of Persia, Halo), Jason Kanter (Audio Lead at Avalanche) and Gina Zdanowicz (Owner of SerialLab Studios, Sound Designer for Best Luck) were all there to give us feedback, and they all had great things to say about the game! They also offered us some really fantastic feedback with good ideas to help us continue to improve the soundscape.

F. What parts of the game did you show off?

A&N. We chose one Level from each of three Worlds (World 0, World 2, and World 6) and demonstrated how the audio interactivity works, as well as our aesthetic sound choices so far.

F. How much audio is done – what have you done so far?

A&N. It’s crazy to say, but we’re almost finished with our first pass of sound for every World except World 7! Whoa. Once that’s done, we’ll head over to the UI sound design and the cutscenes, while continuing to make improvements on the rest.

F. What part of the game are you working on now?

A&N. We’re finishing up music and sound for World 4 and we have some crazy ideas that might hold back the schedule a bit… (oh crap, I hope Frank and Jack aren’t reading this…)

F. What audio features are you most looking forward to creating?”

A&N. We’re really excited to freak out our neighbors with a bunch of strange, deep grunting sounds while we work on Obe’s voice and character sound design. And also, wait, did someone say… string quartet?

 

 

20171110_200108.jpg

What Do You Think?

We’re very proud of the work that’s been done on the game so far. That doesn’t mean the game is finished, though! We’re also not above taking criticism or honest feedback. Now is the time to tell us what you really think – don’t wait until the game is on the store, and you’re agonizing over whether to give it four stars or five stars…

Leave a post in the Comments section below and let us know what you think!

 

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

Thanks for checking out the game’s audio in this blog post update. Please leave a comment to let us know you’re not a Russian Twitter bot scanning this page for mercenary purposes. 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.

State of the Art – November 2017

Welcome to State Of The Art, November 2017 edition! This monthly progress report is written by Frank DiCola and is focused entirely on how the game’s visuals have improved in the past month.

<Don’t forget to add in some lame excuse about Thanksgiving before you post this>

Without further excuses, let’s explore the major leaps forward we took in November!

 

0-1-Header

The Game’s First Level, “Fallen”

It took me a while to get around to doing this Level, because there’s a bunch of triggers I had to animate and I didn’t feel like doing those. For the longest time, Level 0-2 has been our de facto “first level.”

Dec-5-Blog-Forest

But the game really begins here, along this spooky Forest path, where Obe first encounters the Lantern. You can watch the entire Level in the video below, since it’s so short. (Just ignore the missing sound effects and animation polish, all of that comes later.) Jack and I have a rigid philosophical stance when it comes to game design: we don’t like using text to tell players what to do. That’s annoying! So this Level is designed so that people can learn how to walk. It’s impossible to avoid picking up Obe’s lantern because he automatically does that when you walk on the first open space in the clearing.

This Level didn’t take too long once I actually sat down and did it. Since Obe can only walk around the center of the Level, and his light radius is quite small, there’s a lot of art I can intentionally ignore. This may seem lazy, but there have been times in the past where the opposite has occurred! I’ve done beautiful artwork around the edges of the Level only to be dismayed to find the light never reaches there, and players will never see it. But I still see it. In my dreams.

 

Dec-5-Blog-City-Header

Level 4-3, “Ramparts”

One of the most ambitious Levels we planned for the game has you scaling the ramparts of a city wall as you climb to the palace on top. It’s a transition Level, which makes it super important for the story. The first two Levels in this World take place in the slums, and the final two Levels in this World take place in beautiful palace gardens. We need a bridge in between those two, otherwise the jump from one to the other will be too abrupt for the audience.

Enter Level 4-3, “Ramparts,” a vertical bridge between two different worlds separated by economic class and power. It’s easier to show you than tell you! We begin on the street, with the dogs.*

Dec-5-Blog-City-A.png

*Dogs not included

Then there’s the middle section:

Dec-5-Blog-City-B.png

On top, we can see the palace architecture more clearly:

Dec-5-Blog-City-C

This Level took forever for Jack to make and for me to decorate. Even now, it still needs an extra coat of paint! The puzzle isn’t difficult, but the vertical nature of it means we need to cover up a lot of the screen. I want to put more plants closer to the top, which I didn’t really have time to do yet. Plant life would indicate that even in this barren desert, the wealthy King who lives in the castle gets to be surrounded by beautiful foliage.

 

Dec-5-Blog-Paradise-Header.PNG

Paradise Begun

The game’s final World is a beautiful island paradise floating in the sky. This is somewhat of a story spoiler, but we’ve blogged about it before so I’m not too concerned. Read on at your own peril, I guess?

It’s taken me a while to return to this beautiful setting. Anything that comes last in a video game usually gets the least attention. It’s regrettable, but understandable. After all, if you see a movie in theatres, you often see 100% of it.  Unless you leave in the middle for some reason, you’ll experience the beginning, middle, and ending. But video games are different. Only a fraction of players make it to the end of the game, but by definition anyone who plays a game experiences the first 5 minutes. That’s why those first 5 minutes are so crucial and get so much special treatment.

I’d like to break the chain, if I can. I want people to feel rewarded for getting to the end of this difficult puzzle experience. Here’s the current progress on World 7, which I just started last week. They’re in rough shape at this stage, but you can get a sense of where I’m going with these.

Dec-5-Blog-Paradise-A.png

Level 7-1, “Ladder” is all about compiling a ladder from a bunch of broken pieces. The ladder comes together using the shadows from that conveniently specific rotating object. It’s harder than it looks! I designed this one and I forgot how to solve it. Good luck!

On the first landing, we get a chance to show off that majestic Bermudian inspired architecture I love so much. If I have time, I’ll even include a cool dude relaxing on a chair just to show how far removed this World is from everything below.

Dec-5-Blog-Paradise-B.png

Level 7-2, “Pond” is due for somewhat of a re-do. The major thing I forgot to include here was a pond in the center where that button is. We want some kind of a sacred grove with a sacred button because that’s how you solve this Level – you need to use the center piece in order to drag boxes around and cast the shadows you need to fix the ending staircase.

This is where design and aesthetics conflict. The pathways we need are very specific and jagged, but the “look and feel” we want is uniform and symmetrical. It’s a tough compromise. I’ll return to this one and remove that weird green rock path (a placeholder) and try to do something closer to my original “Toolkit” Level I posted so long ago:

World-7-Paradise

(This isn’t a Level in the game, but rather spec work I did a few months ago when I was beginning each World’s “Toolkit.” But that center pond is making a comeback, just wait for it!)

Dec-5-Blog-Paradise-C.png

Level 7-3, “Tower” isn’t very far along, but it’s such a cool design I thought I would tease it here. You need to see a video of it in action to really grasp what’s going on, so no more for you just yet! Be patient [ ^_^]!

 

UI-Header.PNG

User Interface Sketches

Generally I prefer not to show off drawings that are not part of the game. But Jack and I just started on the user interface design, so it can’t hurt to show you a tiny bit of what I’m working on…

 

It may seem late in the game to handle this, but we decided long ago that we don’t want a complicated user interface. Above, you can see that our Levels contain all the features that a Main Menu would normally have. We don’t really like having a separate menu detached from the game, so you can access all the key stuff just by “pausing” the game.

Note: this is just a Photoshop design. We haven’t coded this in yet, and not all of the buckets you see above are necessarily being included in the final game. For example, being able to take a picture of the Level is an important social feature, but it’s not essential for the game’s launch and may fall by the wayside.

Interacting with phone features is a big pain and it’s one of the toughest things about game development. Making your game work on every single tablet, flip-phone, e-reader and seashell Kindle out there is a nightmare. Maybe we’ll write a blog about that topic once we get more into the weeds of cross-platform development…

 

christmas2012_alternative_santa_onlycoke_flexible

See You Next Year!

The next time you read this particular blog series, it will be 2018 and I’ll be recapping December. Man, where does the time go? This year has gone blazing by!

This month, I hope to finish World 7 and move on to polishing up each Level. That work is highly specific, which is why it was left until the end.

Polishing the Levels will intersect with working on the game’s cutscenes. That’s because some of these Levels have animated characters in them. I’d like to be sure that the animated characters I create work well in both settings, to save myself time later. So don’t be surprised if next month’s update is a bit of a mixed bag. That’s the way it’s going to be from now until the game launches!

 

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

We hope you enjoyed this update about the game’s artwork. 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.

Inspirations

Almost everyone involved in indie game development these days gets into it for the same reason – we played games, we liked those games, and they inspired us to make our own games. We want to capture whatever it was that made us love the games we played when we were younger. Whether it was the storyline, the art style, or the gameplay itself, these games made us who we are, and they influence every decision we make in our own games.

A few weeks ago, I was discussing game development with a friend when they asked me “what are your favorite video games?” After I rattled off a few, they asked another question – “Why?” This was followed by a really interesting conversation, because the games I chose were so different, and yet they all influenced the way that I design and make games now.

So I’m going to share that list with you now. I’m going to tell you my favorite video games and how they have affected my own game development, and I hope you’ll think about your own answer to the question as well; what games make you want to make games?

 

Monument Valley

Image result for monument valley game

When screenshots of your game are good enough to be your part of your marketing material, you know you have a beautiful game

I’m gonna start here, because I mentioned it last week, and because everyone is expecting it. If you’ve played Where Shadows Slumber, then it probably reminds you of Monument Valley. This isn’t exactly intentional, but I would be lying if I said that we weren’t inspired by Monument Valley in a lot of our design decisions.

There are a few things that Monument Valley did that were very important. First and foremost, it’s beautiful. I’m not one who really focuses on how the games I play look, but Monument Valley manages to be beautiful beyond the point of ‘good graphics’ and actually into the realm of ‘art’. This aesthetic quality is something that isn’t necessary for a game, but if you go for it, it definitely wins some points.

Secondly, Monument Valley showed that you can have a game with an incredibly simple concept, yet still have intricate, mind-bending puzzles. Additionally, it does so on a form-factor (mobile) that doesn’t lend itself nicely to this type of intricate, high-quality game, and still managed to do well, despite the industry’s focus on the ‘freemium’ monetization model. Monument Valley showed, most of all, that if you really put a lot of work into making a truly incredible game, you can be rewarded for it.

 

StarCraft: Brood War

Image result for starcraft brood war

Graphics aside, still one of the best games out there

Ah, StarCraft. This is really where it all began for me. This was one of the first games I really got into, and it became a very important part of my childhood. If I had to pick one game on this list as my all-time favorite, it would have to be StarCraft.

When I was talking about my favorite games and StarCraft came up, I tried to think of why it was my favorite game, from a game design perspective. StarCraft is a very complex and strategic game. The skill cap is incredibly high, and there’s always room for mind games and counter-play. I played a lot of competitive games of StarCraft, and I spent hours perfecting my worker split (for those of you who don’t know what that means, just be glad you didn’t have to do it). The depth this game has is fantastic – but are any of those really the reason I loved StarCraft so much?

No – the reason I loved StarCraft so much was the way it created memories of playing with friends. It wasn’t the game itself that made it fun, it was the people I played it with. When I think of StarCraft, I think of the 5-player game where one friend had nothing but a single pylon and about 40 Corsairs – every time someone else won a battle, those corsairs would arrive to finish off his fleet. I think of the time I won a game by building nothing but Ghosts and Valkyries, for some reason. I think of the EMP-Nuke rushes, the epic micro battles, and the mind games. Most of all, I think of laughing with my friends as it all went down, and even occasionally loading up a few replays and just watching them.

Children’s special on the meaning of friendship aside, these stories and interactions are the reason I love StarCraft. Unfortunately, that doesn’t really inform any of our game design decisions – you can’t build any of that stuff into a game. What you can do is make a game that has the potential for these stories. Make it so that your players can do crazy, funny, awesome things. Your game may be strategic, intense, and mind-blowing, but, above all else, you need to make sure that it’s fun.

 

Cave Story

Image result for cave story

I can’t think of a quote for this picture

Cave Story is a testament to what indie games can accomplish. Cave Story was created, music, art, gameplay, and all, start to finish, by one guy in his spare time. And, aside from being an inspiring story, it’s also an incredibly great game!

In my mind, the reason that Cave Story is so good is that it doesn’t make any concessions. Every part of the game is great. The storyline? Funky, but really cool. The gameplay? Skill-testing and engaging. The music? Amazing! For almost any facet of a game that you might ask about, the answer for Cave Story would be “yeah, it has that, and it’s awesome!” It just feels like an absolutely complete game. Comparing a game like Cave Story to a lot of the pretty good, mostly-finished games you see really drives home the importance of actually finishing your game. Rather than saying “yeah, the controls are a little off, but it’s not a big deal”, get in there and fix them!

The other big reason to talk about Cave Story on a game development blog is because of its development. Cave Story has become a sort of cult classic, in a good way. It’s so incredibly inspiring that one guy can make such a great game in his spare time.

 

Rocket League

RL

Calculated.

Rocket League, also known as Hot-Wheels soccer, is the game I’ve been playing the most recently. As such, I have a pretty good feeling for why I like it so much. There are really two reasons.

 

(1) The controls in Rocket League are phenomenal. Imagine you’re playing some other game, and you miss an objective (whether it be a goal or a kill or whatever). Inside your head you’ll end up saying “I would have had it if the controls were better”, or “I was trying to move to the left, but my guy didn’t go where I wanted”, or something like that. You can always blame the game, rather than yourself.

In Rocket League, you don’t have that luxury. Once you figure out the controls, it’s all on you – when you tell your car to do something, your car does exactly that. This can lead to a little frustration, but it also leads to some absolutely incredible plays from the pros, and it means that every time you do something right, you feel that much better about it. There’s no better feeling than flying through the air, using your boost and turning you car in exactly the right way to score a crazy goal, and knowing that it was all you. That feeling wouldn’t be possible without the most finely-tuned controls.

 

(2) The other great thing about Rocket League is what I’m going to call it’s ‘skill curve’. This is different from a ‘learning curve’ – a learning curve implies that the game gets harder as you go, so you have to learn in order to beat it. The ‘skill curve’ is the inverse of this. You’re never ‘not good enough’ for a game; rather, as you play, you get better. This is true of most games, but it feels the most rewarding in Rocket League.

When you first start to play, you have a hard time hitting the ball. With enough practice, you start to hit it pretty consistently – that advance in skill is noticeable, and it feels great. Just as you’re getting good at that, you realize you’re not rotating properly. When you start to master that, you begin doing aerials. You’re always getting better, and you always feel like you’re getting better – your skill level never plateaus, you just keep getting good at the game.

 

Rocket League isn’t what I would call a deep game. There’s no storyline, no (or very few) different levels, nothing really new about the game. Psyonix does release different game modes and new maps from time to time, but the core gameplay remains mostly unchanged. And yet, despite this, it’s the game I keep returning to. It never really gets stale, thanks to its controls and skill curve, which is incredible for such a straightforward game. Rocket League shows that you can give any game a lot of replay value just by making it well.

 

Portal

Image result for portal

In search of cake

Portal is just an incredibly solid example of a well-put-together game. At the time, it seemed to be a sort of ‘add-on’ game, a little nugget that Valve added into The Orange Box. While the other titles in The Orange Box (Team Fortress 2 and Half Life 2) were really awesome, it was Portal that stood out to me, and to most people that I talk to.

Why? Well, Portal wasn’t just another game. The thing that excites me most about any game is when it explores new design space, and that’s exactly what Portal did. There were no guns to shoot (well, no real guns), no enemies to destroy, no princesses to rescue. You’re simply introduced to the world and the theory of portals, and you have to make your way through it. Your only weapon is the portal gun, and your only enemies are the levels themselves. It’s a very simple distillation of the essence of a puzzle. This is something that I aim for when designing my own puzzles – if you still have design space to explore, there’s no need to complicate your levels.

Portal really provides us with a master class on not overstaying your welcome. Really, it was the perfect length for what it was. You learn the mechanic, you get to used it, and you advance through puzzles with it. By the time you reach the end, you’ve explored most of the design space, but haven’t gotten to a point where it’s become timesome or tedious.

Plus, Portal does a great job of indicating its short, jolly mood through the use of its witty writing. This combination of very pure puzzles and inviting storyline is a design marvel, as it makes it very easy to draw a player into your game. The biggest takeaway from Portal, for me, is that more game doesn’t necessarily make for a better game. Content is king, and having more gameplay is usually a good thing, but it is possible to focus too much on length, rather than good design or implementation, and end up ‘overstaying your welcome’.

 

What I’m Most Looking Forward To

In addition to games from the past, let’s take a look at a game from the future! The future game I’m most looking forward to (other than Where Shadows Slumber) is a game I saw at PAX East this year. I only got to play the demo for a few minutes, but I’ve been really excited for it ever since. And the winner is… The Gardens Between!

Image result for the gardens between

Check out the haunting cell-shaded indie goodness!

After checking this game out, I’m sure you’re not surprised that I chose it. After all, it’s an indie game with a cell-shaded art style, a slight metaphysical twist, and gameplay based at least in part on lanterns! How could I not love it?

Parallels with Where Shadows Slumber aside, this game looks awesome. The controls are very simple and intuitive, and yet the puzzles show a depth that promises very interesting and challenging interactions. The game looks relaxing, sleek, and challenging, which, to me, makes for an awesome upcoming game. Props to The Voxel Agents on what looks to be a great title!

 

That’s Not All…

This list is by no means exhaustive. In fact, in an effort to pick my favorite games, I’ve left out some games that perhaps played an even bigger role in turning me into a game developer. There’s the first game that really got me into gaming (Runescape), the game that first got me interested in making games (Block Dude), and the game that I probably spent the most time playing (World of Warcraft), but, as important as these games were to me, I don’t really consider any of them to be in my top 5 favorite games.

Despite their differences, each of these games (and any game I’ve ever played, really) has had an effect on the decisions I make when working on Where Shadows Slumber or anything else. These games are all very important to me personally, and I hope I’ve done a decent job of explaining what each of them brings to the table, design-wise. Hopefully you’ll be inspired to examine your favorite games, and the design patterns involved in them!

 

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

If you have questions about my favorite games, or just want to share your own, feel free to contact us on social media! You can always find out more about our game at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebook, itch.io, or Twitch, 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.

3 Ways Our Art Changed In May 2017

Last week, Jack wrote a general progress update about the game. We hadn’t done one in a while, and we’re trying to get our audience more informed about the process of game development. Inspired by his post, I’ve decided to dedicate the last post of every month to an update about the visual aesthetics in our game. We’ll review everything that got done in the previous month, with a small glimpse of the road ahead and how it relates to the larger goal of completing the game.

 

 

Getting The Ball Rolling On Five Worlds

Our game will feature 8 different Worlds by the time we’re done. Completing the artwork for all of those will take a while, so it’s never too early to get started. I had hoped to get more done this month, but I am glad to report that five of these Worlds have been started. They may never really be “finished” because I’m a perfectionist. Even when the game launches, I’ll still want to change things. But I might as well get them to a place where Jack can say “Frank, stop working! Step away from the computer!”. I’ve included some Work In Progress shots of each World below.

World-0-Forest

World 0 – Forest. This kit needs a lot of work. The bushes are too high-fidelity, and the trees are too low-fidelity. This is a screenshot of the game’s first Level.

World-1-Jail

World 1 – Jail. This kit exceeded my expectations. I wanted to convey the feeling of a claustrophobic, harsh volcanic prison. The brutalist-inspired walls really pull the aesthetic together.

World-2-River

World 2 – River. Inspired by the river styx, this is designed as a swampy, foreboding, gross river. Rickety wooden plank bridges contrast with log-cabin style barricades.

World-6-Summit

World 6 – Summit. One of the toughest to apply modular asset creation to so far. Blurring the grid lines was key to pulling this wintry, icy art kit together.

World-7-Paradise

World 7 – Paradise. This kit is complete, and looks gorgeous. I won’t actively work on it anymore unless something is missing in a Level we’re designing.

Please note that the screenshots included here don’t always reflect actual Levels in the game. Sometimes, to show off how pieces of artwork interact, I design fake Levels in the spirit of the game. Hopefully it gives you a good idea of my progress, and what needs to be done. I also decided to pawn off water effects onto Jack, so that’s why the fluids in these Levels just look like flat planes. (I built them with flat planes) Water will come later. Also coming later – the Worlds I haven’t started yet!

Expect to see screenshots of Worlds 3, 4, and 5 during next month’s update.

 

TwoHeads

Character Faces

One of the barriers I’ve been trying to break through is my Character Design issue. Every humanoid model I’ve created for Where Shadows Slumber so far has been hastily created for an upcoming deadline. The result is a slipshod model that looks nice from 1,000 feet away, but performs poorly when I need it to do something. In a previous blog post about cutscenes, I lamented at how terribly the Demo protagonist handled when I needed to animate him. His clothing had to be key-framed by hand, and his arms were bent out of whack.

But one of the biggest problems was his face. I modeled it the quick and easy way, and as the saying goes, you get what you pay for. I found it impossible to give him good facial expressions when the situation called for it.

HeadAnimations

The protagonist’s new head uses Morphs to smoothly transition between preset facial poses.

Flash forward to this month: I’m taking a new approach where I model character heads separately from their bodies so I can focus on facial animations using Morphs in 3DS Max. As long as no one notices that these heads are disconnected from their torsos, the effect works. Morphs allow me to model facial animations (frowns, smiles, surprise, anger) and move a slider from 0 – 100 to set the Intensity of the animation. How sad are you? Are you 35 sad, or 100 sad?

So far I modeled the main character’s head, along with a mysterious Wolf that no one knows about. The main character’s facial animations are done. In the future I’ll model two other mysterious figures that need facial animations… but I won’t give them away now!

Expect to see more character head animations during next month’s update. I’ll also do a more in-depth blog post about Facial Animation Using Morphs.

 

EveryUI.png

Main Menu User Interface

This piece of artwork is still in the planning stages. Unfortunately, I ran out of time this week and had to resort to paper-planning. I would have preferred to mock this up in Photoshop, but my computer died on me before I got around to it (more on that below).

HammerUI.png

Left: The main menu splash screen you see when loading up the game on your device. Right: The Settings and Junk page you see when you press the hammer button on the splash screen.

The plan for the UI is to make it as minimalist as possible, and refrain from using unnecessary text. To that end, I’m currently envisioning a bare bones splash page that just has the protagonist relaxing by a campfire and two buttons on it – a hammer and an arrow. The hammer is meant to indicate “Settings and Junk”. When pressed, it takes you to a side page where you can toggle various togglers™, such as the game language, in-game sound, and auto-skipping cutscenes. Team credits will be displayed there as well. An “X” at the bottom represents “go back” and I’ll try to keep that consistent throughout the whole game.

20170530_143221.jpg

Left: A screen of World 0. Center: A screen of World 1. Right: Half of a screen of World 2, which is locked and cannot be accessed.

The World menu is more involved. Pressing the arrow moves the camera to the right, where we see a 2D view of the first World, Forest. From there, players can swipe left and right to see the other Worlds. Worlds that they aren’t ready to play yet will be locked behind a padlock icon. (No need to reinvent the wheel there) When you’re looking at a World, I want the sounds of that World to play quietly in the background.

20170530_143238.jpg

Tiny overworld map of World 0, which begins with a cutscene “Level” and then has three real Levels. Some are blocked by the shadow.

Pressing the big juicy button with a number on it will take you to the Level Select menu for that World. This will look like a top-down map, with little circles representing the levels each connected by solid black pathways. As you beat more Levels, this map floods with more light. Pressing on a circle will take you to that Level.

That’s the flow I have in mind for the game’s menu. This doesn’t even cover menus that appear INSIDE the game’s Levels, such as when you press the pause button. But in any event, I believe I’ve covered everything the outer menu needs. I just hope this isn’t too much fiddling for a casual audience that isn’t used to games. Getting casual players over these hurdles is always a struggle!

Expect to see a digital version of this UI during next month’s update.

 

DAxOPKeVoAAK6FY

And now his watch is ended.

Tempus Fugit: Memento Mori

Normally in these blog posts, I showcase my cheery optimistic attitude. But not this time.

Late last week, my laptop suffered a blue screen crash and would not reboot to Windows when I tried turning it back on. I’ve been having rolling blue screen crashes for a while, but it usually restarted afterward. Now my computer is in the repair shop, and I’m getting the impression that it doesn’t look good. Probably because the technician told me “this doesn’t look good.” That’s what I get for ignoring the crashes all this time and refusing to pay for cutting-edge anti-virus software.

As I write this blog post on my old college ASUS laptop, I have mountains of artwork to do and very little time to do it. This laptop crash is going to set me back. The worst part is, it’s a waste of time that didn’t need to happen. Fortunately, no artwork was lost because everything is always on GitHub. I’m mostly worried about losing time.

My next update may be a little scarce, but hopefully it will include good news about my computer’s physical (and mental) health. Always back up your work online, kids! You never know when your next blue screen of death will be your last.

 

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

We hope you enjoyed this update about the game’s artwork. 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), Facebook, itch.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.

Object Pooling

Alright, it’s finally getting a little bit warmer around here as spring comes and goes, so let’s celebrate by jumping into the pool! That’s right, today we’re going to be talking about an ever-important pattern in game development, the concept of Object Pooling. Object Pooling is a design pattern which involves creating a set of objects – a ‘pool’ – and reusing those objects, rather than creating/destroying objects throughout a game.

pool

Object Pooling involves recycling objects

This is a very important concept in game development, and it’s the first topic we’ve reached that is almost entirely associated with the optimization of a game. For mobile game developers, resources are limited, so it’s important that we don’t waste anything. Object pooling helps us save resources, and is less of a mechanic, and more of a general design pattern. We used it in Where Shadows Slumber, but it isn’t even one of the more defining features of the game. However, it’s still an incredibly important concept.

So, without further ado, let’s dive in!

 

Why do we need Object Pooling?

Unity is a pretty cool system, and it gives you some pretty cool toys to play with. Two powerful toys it gives you are Instantiate() and Destroy(), which allow you to create a new instance of a GameObject, and to get rid of an instance of a GameObject, respectively. I assume that other game engines provide similar functions. If you’ve played around with some simple stuff in Unity, you might have seen how useful these functions can be.

The problem with Instantiate() and Destroy() comes when we try to use them a lot. You see, every time you call Instantiate(), Unity goes into your memory, finds a chunk of memory big enough to store the new object, and allocates it. Conversely, every time you call Destroy(), Unity finds that object in memory, clears it out, and marks that memory as ‘available’. This whole process is aided by the use of a garbage collector, which runs occasionally, making sure that deleted things were actually deleted.

Those of you familiar with computer science may see where I’m going with this. Basically, this isn’t great. Calling Instantiate() or Destroy() every once in a while is fine. But when you call them all the time, Unity starts to slow down. Memory allocations and deallocations are somewhat expensive, meaning the garbage collector will be running a lot, sucking valuable power away from your game! Every time the garbage collector runs, your game might lag a tiny bit. This is doubly true for environments where resources are limited (say, on a mobile device).

So, our clever brain gets to work. ‘Hmm’, it says, ‘if calling these functions is bad, let’s just not call them!’ Brilliant, brain, as usual! Surprisingly, in this case, the first idea that pops into our head is actually pretty good – we just won’t use Instantiate() or Destroy(). Problem solved!

The only remaining question is how to maintain the functionality we had before. We were, for example, using a gun, and every time we fired, we would instantiate a bullet. Every time the bullet hit something, we would destroy it. How can we get that same functionality without using Instantiate() or Destroy()?

 

Object Pooling

The answer to the above questions is, obviously, to use object pooling. The concept is pretty simple – rather than creating a new bullet every time we fire our gun, and then destroying every bullet individually, why don’t we just reuse the bullets? They all look the same, so no one will know the difference!

NonVsPooling

Object pooling in a space shooter (image credit: raywenderlich.com)

This is the idea behind object pooling. Rather than creating and destroying a bunch of bullets every frame, which can get expensive, we simply create a bunch of bullets at the beginning of the game, and reuse them. We store all of the bullets in a ‘pool’ – they’re all deactivated and unmoving, so they have no effect on the game. Then, every time we fire the gun, we grab a bullet from the pool, change its position and velocity so it looks like it’s coming from the gun, and enable it. The bullet flies through the air, and then strikes a wall, or moves off of the screen. At this point, we simply disable the bullet and return it to the pool to be used again!

If this seems a little weird, think of it like extras in a TV show or movie. In the first scene, we need a crowd, so we hire a bunch of actors to be people in the crowd. The next scene is in a different city, but still needs a crowd. Do we fire all of the extras we already hired, and then spend more time hiring different extras? Well, nobody was really paying too much attention to the extras in the first scene – let’s just use them again for the second scene! This is pretty common in TV and movies, and there’s no reason we can’t do the same thing here.

“I gave a very memorable performance as the nurse, and now, suddenly, I’m the waitress? That’s gonna confuse my fans!”
– Phoebe Buffay, Friends

Using object pooling, we can avoid the need for our expensive allocation/deallocation functions (other than at the beginning/end of a level, where slowness is more acceptable) by reusing all sorts of objects. There is a tradeoff here – using an object pool means that, whenever we need a bullet (or any object), we have to be sure that there will be one in the pool. This means that we actually need to store more copies of the object than we ever expect to use. While object pooling makes it easier for the CPU to keep up with what we’re doing, it uses up more memory.

This is called the space-time tradeoff, and it’s pretty common in computer science. The idea is that, in order to optimize for time (make your code run as fast as possible), it generally uses up more space (in the form of RAM). In this case, time refers to time spent in the CPU – saving time means less lag, which makes for a better game. In general, on mobile platforms at least, saving time it more important, so this is a tradeoff we’re happy to make by using object pooling.

 

Where Shadows Slumber

So, how did we use object pooling in Where Shadows Slumber? We don’t have any bullets, so what else can object pooling be used for?

Honestly, object pooling wasn’t incredibly important to the core game – all of our levels are pre-made and we don’t have any projectiles or anything else flying around. Where we did use object pooling was in ‘special effect land’. Every time the main character takes a step, a small sound plays, and in some levels you can see a puff of sand behind him. These are what we have taken to calling footfalls, and they’re one of the main things we used object pooling for.

Footfall

This group of particles is a footfall, and was pulled from a pool rather than instantiated!

In fact, sometimes you may have used object pooling without even realizing it! You see, one of the primary uses for object pooling is within particle systems. A particle system may emit a burst of hundreds of particles at once. Imagine trying to instantiate that many object in the same frame – your game would lag for sure! However, if the particle system uses object pooling, it will simply enable all of those objects, and your game will keep running without a hitch. This allows you to get high-quality particle effects without having to worry too much about the impact on performance.

Hopefully this quick conceptual intro to object pooling helps you out, and saves you many CPU cycles! I should mention that I got an image from this blog post on object pooling, which coincidentally is a very good resource if you want to get a good look at an implementation of object pooling.

 

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

If you have any questions or comments about object pooling (or anything else), you can always find out more about our game at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebook, itch.io, or Twitch, 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.

Time Tracking, When Done Wrong, Is Useless

My good friend, this week you are in luck.

For starters, I’m going to forego my usual wordy style and cut right to the chase. I’m typing this well in advance of the deadline, because I’ll be on vacation when this is posted. That means I don’t have time to blather incessantly about artwork and other such nonsense. (Really, who has the time?)

The other reason you’re in luck is because I’m about to save you about 14 months of hassling when it comes to proper time tracking. They say that good judgment comes from experience – and that experience comes from bad judgment. Well, let’s talk about my experiences with time tracking. Then we’ll get to my bad judgment near the end.

 

Jack

A sample time sheet from the veeeeeeery beginning of the Demo Phase.

 

Time Tracking: An Intro

Before we go on, a quick definition is in order. You’re probably wondering what time tracking is. (If you already know, you’ll save time by skipping this section.) Time tracking is the continuous project management process of collecting data on how members of a project are spending their time working on that project.

In theory, you’re supposed to do it for a few months and then look at the data. If you find out everyone is spending 5 times as long as they should working on some task (A), then you’ll change process (B) so that task (A) doesn’t take so long in the future. That’s the hope, anyway.

In practice, it means filling out time sheets (see above) like a madman every time you do anything related to your indie game. Done incorrectly, it will actually take time away from your project and give nothing back in return. Done properly, it gives you keen just-in-time insights that let you wisely cut features and move staff around before you hit that impending deadline.

 

Old Sheet

On the surface this time sheet may look good. However, on further inspection…

How To Do A Bad Job

I want to tell you how to do time tracking properly, but you won’t appreciate the correct approach until you see it done wrong.

For the entirety of our time working on the Where Shadows Slumber Demo, Jack and I tracked our time with a time sheet I devised. This Google Spreadsheet had an entry for every sprint (a period of 1 or 2 weeks, usually the time between team Skype meetings) with a bunch of headings: Day, Start, End, Total, and Task. Here’s what they meant:

  • Day – What day during the Sprint did you work on this Task?
  • Start – “Punch in” at a time to begin working on the Task.
  • End – “Punch out” at a time to stop working on the Task.
  • Total – The number of minutes you worked on the Task.
  • Task – What you worked on.

As you can see, this tells us a lot about how I spent my Sprint. But none of this information is relevant to project management in the long term. There’s no indication whether or not I actually completed the Tasks I worked on. (Some have percent complete markers, but those are just guesses anyway) Looking at this, I have no idea how the project moved ahead during the Sprint. Our only real metric is the number of hours I worked – nearly 19. But… who cares? It’s not like I’m charging anyone by the hour! Jack and I do this as a labor of love, with salaries to come from proceeds from the final game.

This time sheet makes the critical error of measuring the wrong metric. I must confess that some weeks, I tried to just work for a long time instead of working effectively so I could feel good about logging impressive hours. That’s a sign of bad project management. As a manager, you ought to offer incentives for behavior that gets the project completed on-time and at a high quality.

The results? Internally, we had a lot of arguments about this process as Jack felt it was unnecessary. Because I never returned to the data we created to analyze it, we got nothing for all our tedious efforts. Jack stopped tracking his time, and that was a warning sign that I needed to change things up. Our time tracking was costing us time to do, with no benefit to the team. Time for a change!

 

TimeSheet

Time Sheet: Version 2.0!

 

My Time Tracking Strategy

Here’s how I altered the process for the final project. Starting April 4th, I began tracking my time the way shown above. The headings this time are Task, EST, ACT, Error, and Status. Let’s deconstruct that jargon:

  • Task – One entry for the Task this time, no matter how long it takes.
  • EST – Short for “Estimate”, this is an educated guess about how many minutes this task will take to complete. You’re supposed to guess at the beginning of the sprint.
  • ACT – Short for “Actual”, this is the actual number of minutes this task took to complete. You’re supposed to fill this in as you go. It’s the only thing that requires active time tracking while you work.
  • Error – This is automatically calculated with an Excel formula. It’s the percentage of error between your guess (EST) and the actual time (ACT). You want to get 0%, meaning that your guess was perfect. The larger the number is, the worse your guess was. The formula I use here is =(ACT – EST ACT.
  • Status – The most important part! Each task is a discrete item within the larger project that is either done or not done. We want a full list of check marks at the end of this sprint. If a task is left incomplete, there had better be a good reason!

As you can see, now the spreadsheet is setup with the Task as the most important thing. We’re measuring whether tasks are complete ( ) or incomplete ( ) instead of measuring how many hours someone has worked. That’s important, because people tend to maximize whatever they’re being graded on if you observe them working.

It’s changing my behavior, too! Instead of acting like I need to fill my time sheet with useless “minute points”, now I feel the pressure to get my estimation right. Of course, I can only be right if I finish the Task. The incentive structure of this time sheet is way better! We begin with an incentive to make a good guess. Then we have an incentive to conform towards that good guess so we don’t get “mark of shame error percentages”. Finally, we have an incentive to finish each Task so it doesn’t remain a permanent “X of shame” forever. Perfect!

This will lead to actual progress on the project and helpful information about our estimation ability at a glance.

 

innovation-think-big-act-small-fail-fast-and-learn-rapidly-7-638

In all seriousness, though – I did fail.

The Lesson? Get It Right The First Time

To conclude… I have bad news. If you’re a project manager, listen up! You need to get this stuff right the first time. Putting your teammates through a tedious process of time tracking gets on their nerves after a while. People can only put up with that for so long, especially if they don’t get anything out of it.

I’m still doing time tracking, but Jack has become disillusioned with the process. I don’t blame him, but it’s still a shame. Had I gotten this right the first time, we might still be on the same page.

Don’t reinvent the wheel like I did on my first attempt. Use a proven method that works, read some software management books, talk to an industry professional, and communicate with your teammates during the early stages of the project. If you do, people will find time tracking fulfilling. Otherwise, they’ll fall by the wayside. And remember – you can never force anyone to do anything, you can only offer irresistible incentives!

 

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

Thanks for taking the “time” to read this “clock”. Have a question about time tracking that was not answered here? You can find out more about our game at WhereShadowsSlumber.com, ask us on Twitter (@GameRevenant), Facebook, itch.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.

 

Where Shadows Slumber: Working On A Small Team

Editor’s Note: The post was almost titled ‘Working with Frank Suxxxxxx’, but I decided against it (mostly because it’s not true).

So, you want to be a game developer, do you? You want to be the voice behind the games that so molded your childhood? You want to create an experience for generations ahead to enjoy?

Well, the best way to do that is probably to get a job at-

What’s that? Oh, you want to be in charge of the game development. You don’t want to work on a game, you want to create a game. You don’t want to help someone else make their game – you want to make your own game, in your own voice.

In that case, it looks like you want to become an indie game developer. You get to design your own games the way you want to, which is a thrilling concept. However, it’s not all fun and games and I-don’t-have-a-real-boss, and you should probably know exactly what you’re getting into.

MNCvsStartup

Choices, choices…

Now, I’ve never worked at a professional game development studio, so I can’t give you an entirely clear picture of what you’re missing out on there. I do have some experience with different-sized companies though – my last job was at one of the biggest banks in the world, my current company employs no more than seven people, and I, of course, am on the two-person Where Shadows Slumber team. So, hopefully I can give you a good overview of the differences between these types of jobs and companies, so that you know what you’re signing up for.

There are a lot of differences between small teams and large teams, and there are a lot of similarities. I’m going to go over some of the things that are better about each. These lists won’t be absolutely complete, but I hope I can sketch out a rough image of what life looks like at these different jobs.

Also, real quick, I just want to mention that if I say something bad about working on a small team, I am not necessarily referring to Frank, or anyone at my current job. I’ve been on a lot of small teams over the years, and these are just my general observations, not passive-aggressive pain points meant to make my colleagues feel bitter.

 

The Bigger, the Better

BigFactory

Cubicles, as far as the eye can see!

For the most part, when I tell someone working in technology that I worked for a large bank, I get a negative response, or maybe some sympathy. It seems that it’s not viewed as the ideal technological job. While bureaucracy isn’t exactly my thing, I will say that I did enjoy my time there, for a number of reasons:

  • Responsibility – The thing I liked most about working at a big company was a lack of responsibility. Maybe that’s my 16 year-old slacker self talking, but there’s something really satisfying about not having to worry about the future of the company. Had a bad quarter? As long as I still have a job, I don’t really care! There’s a tough decision to be made? Glad I don’t have to decide! While this isn’t the best way to be thinking about the company that’s providing your livelihood, it is a somewhat calming thought.
  • Funding – I suppose this one is the most obvious reason why a big company might do well. There’s a lot of cash money floating around in the company, so any project the company decides to pursue will be well-funded. Along with this comes a lower chance of failure. Since you already have funding, and you already have a name people recognize, most of your projects will be much more likely to turn a profit. They say that 90% of startups fail very quickly, making startup jobs very volatile. Getting a job at a large company, however, might end up lasting far longer than you even want it to!
  • Specialization – When I worked at the bank, I was on the identity management and access control team. If someone had a question about SSO, security, trading, or anything else, they wouldn’t come to me. I only had to worry about identity management and access control concerns. You end up specializing in a certain area, and that area is your only concern, so you can really learn a lot about it.
  • No Personality Clashes – This is one you don’t really consider that much, but it can be a biggie. Working in close proximity with the same people day after day will probably happen wherever you end up. However, that situation gets a lot more interesting when you have to continuously make difficult decisions with those people. If you disagree, how will you resolve it? There’s no ‘boss’ you can go and ask – you have to work it out. This doesn’t sound too bad, but that’s only because we don’t really notice other people’s personalities until we’re already in the crucible with them. Maybe your partner is incredibly stubborn, and you can’t convince her to change her mind about something. Maybe he’s really arrogant, and he’ll never even consider that your idea might be better than his. Whatever the situation, you need to be able to resolve it. (again, this doesn’t refer to anyone in particular).
    This situation, however, is less likely to occur at a large company. If you disagree with a colleague, you can ask your boss, or quote company procedure, or ‘escalate’ the issue to their boss. In the majority of cases, you’ll only have to work with that person a handful of days out of the year anyways!

 

Less Is More

booth

Just one booth?

As good a case as I made for big companies, working on a small team has also been really awesome. Here are some of the reasons:

  • Decision Making  The first and most important benefit of working at a small company (or, in particular, your own company), is being involved in the decision-making process. When you’re one of the only five people making decisions about your product, you have a lot more say in the outcome. People take your opinion seriously, and you can actually make a difference in the product. This, I imagine, is the biggest reason that people like to work at smaller companies – if I want to make a game that’s really mine in some sense, then the bigger an impact I have on that game, the better.
  • Creative Freedom – This is another biggie, and it’s very similar to the above. I don’t want my boss to tell me that the Ring of Blood item should be red – I want to make that decision myself – maybe I want it to be green! That might not be a great idea, but at least it’s my decision.
  • Pride – When you make something awesome, you have a lot of pride in it. When you’re one of the main reasons that a project is completed, you feel a lot more pride in it than if you only helped out a little. Saying ‘look at my awesome game’ feels a lot better than ‘look at my company’s awesome game’.
  • Learning – When you’re working on a large team, you might end up being a ‘guy’. You might be the ‘shader guy’, or the ‘pathfinding guy’, or whatever. However, when you’re working on a small team, you have to be all of the ‘guy’s. For Where Shadows Slumber, if there’s anything that counts as a programming task, I’m the one responsible for it. That means I have to be an expert on everything. This can be viewed as a bad thing (and I even listed it as a benefit of working at a big company), but I prefer to think of it as a learning opportunity – I know a lot more about shaders now than I would have if I had a ‘shader guy’ to take care of it for me.
  • Working with Friends – Yes, I listed this as a startup-con before, but there’s still something to be said for working with your friends. While it can lead to some messy situations, it can also lead to some brilliant teamwork and a very fun working environment. You just have to make sure you know how to deal with each other before you start working together.

 

The Dream Team

So, what is the ideal team to work on? In particular, what is the ideal team for you to work on? What’s your dream team? Unfortunately, I can’t answer that question. What I can do is tell you about my experience with small teams, and what I’ve learned from it.

17159203_1817437325174646_6524966612565150056_o

This is it. This is the dream team.

Striking out on your own is an exciting prospect. Thinking forward to a future where you’re publishing a game and making enough money to not die is awesome, and knowing that you get to make any and all decisions about that game, making it truly yours, is inspiring. You’ll sit down at a booth to show off your game, someone will ask you how big your team is, and you’ll get to smugly reply ‘it’s just us’. You don’t answer to anyone, and you’re the only one who gets to change your game.

This is also an exhausting experience. Continuing to work hard on your game, knowing the chances of failure, can be very discouraging. Working on the same project every single day, seeing the glacial progress, and still believing that you’re going to ‘make it’ is sometimes impossible. Arguing endlessly with your team members and looking forward at another year of difficult decisions, knowing you still have to work with them every day, is a near-insurmountable mental and emotional hurdle. Not to mention the pressure to succeed, especially if you’ve decided that this will be your only occupation. It’s a task that not everyone is cut out for.

The option I went for ended up being a blend of both. I worked at a big company as my actual job, and worked on Where Shadows Slumber as a side project. This allowed me the freedom to create my own game in my own voice, without having the stress and pressure of living on an indie game development salary. This is an option I would recommend, although I will say that it can be more difficult than either of the alternatives, since you end up doing more day-to-day work, but your game takes even longer to complete.

 

I can’t tell you exactly what kind of team you should be trying to work on, or if indie game development is the career for you. No matter what I say, if you’re meant to be an indie game developer, you will be. All I ask is that you know what you’re getting into before you take the plunge.

 

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

Hopefully this gives you some insight into the world of small teams, and I didn’t scare you off too much. If you have any questions or comments about working on a small team (or anything else), you can always find out more about our game at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebook, itch.io, or Twitch, 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.