Our Demo: 1 Year Anniversary

One year ago, on November 1st 2016, we released a free Demo build of Where Shadows Slumber to the world. This marketing build has just 10 Levels and a cutscene at the end, yet it’s been downloaded hundreds of thousands of times by gamers all over the globe. We don’t get a chance to talk data often, but this post is dedicated entirely to discussing the performance metrics of our Demo. Towards the end, we’ll answer the burning question on your mind: was it worth it?

 


 

 

google-play-logo-2016

Google Play Lifetime Stats

The Demo performed the best on the Google Play store. I have a feeling that’s because the Demo is free, and people on the Google Play store tend to be younger / less willing to pay for games. When they see a free game that looks beautiful, of course they’re going to download it! Let’s dive into the Google Play Console and check out some of our stats…

GP-Installs.PNG

Left: the chart of app installs. Right: the chart of app uninstalls.

Installs and Uninstalls

First, the obvious: we’re two no-name developers living in Hoboken, New Jersey and 250,000 PEOPLE DOWNLOADED OUR GAME ON ANDROID!!!

\[ 0_0]/

*Ahem*

The lifetime chart of the Demo on Android shows that it went live in November and hit its peak in December, probably due to the Christmas holiday. I think it’s interesting to note that the first two months an app is live appears to be “prime-time.” Look at all those downloads!

Yet, even though we hit our lowest point (since the November we launched) in May 2017, we’ve consistently gotten more downloads every month after that. Rather than plateau, the app continues to outdo itself month after month. That’s crazy. I’m proud of that, and I hope this month’s downloads eclipse October’s, which is 26, 467. That’s pretty tough to beat!

Of course, the downside is that nearly everyone who installed the app promptly uninstalled it, most likely after completing it. I’m not shocked by that. This is just a demo. People want to play it and then get rid of it – it doesn’t really deserve to stay on their phone. I expect this behavior will continue with the final game, save for a few thousand people who feel sentimental and can’t bring themselves to delete it. I’m pretty ruthless when it comes to clearing space on my phone’s hard drive, so I don’t blame people for not sticking around. You might say our “retention” is terribly low. But I also don’t think it matters for Premium games the same way it does for Free games.

 

GP-RatingsAmalgamation

Top: Our rating. Left: A chart of our rating over time. Right: A sample review.

Ratings and Reviews

As you can see in the charts above, our lifetime rating is quite high and we’ve received thousands of ratings. People have responded very positively to the Demo! The majority of our ratings are 5 Stars (4,149) with only a sliver of negative 1 and 2 Star reviews.

The graph of our rating is interesting. Starting with a perfect 5 Star rating at launch, we slowly drip down to a 4.6 (the bottom of the graph is 4.6, not zero!) by May 2017. Then, as indicated, the build adding a finale cutscene goes live. From there, our ratings steadily increase to the point we’re at now.

This is a really important moment in time, because Jack and I were nervous about how the story would be received. It’s a bit off – not quite what you’d expect from a puzzle game made in the image of Monument Valley. We expected more negative reviews. Instead, they’ve been largely positive. We kind of left people on a cliffhanger and they’re eager to find out just what the heck is going on.

At right, you’ll see a common review. Most of them are like this: people love the game, say they’ll buy it, but are disappointed that this is just a Demo. Truly, I have no idea how people missed this! The title of the app is Where Shadows Slumber Demo (Beta). There’s two keywords in that title that would tell you this is not a finished thing! But you can file that under “nothing is too simple for people.”

If you want to read more reviews, go to our Demo’s Google Play app page and flip through them. I could read them all day, but it would make my head get too big.

 

GP-World.PNG

The top 5 countries that downloaded our Demo.

Who Is Playing?

The top five countries that downloaded our game are South Korea, India, the U.S., France, and Mexico in that order. France and Mexico are nearly tied, and the U.S. isn’t too far ahead of them. But India has double our installs, and South Korea blows everyone out of the water. What the heck is going on?

It’s important to note that Jack and I went through the arduous process of paying for 14 languages of translated text and put them into the Demo. That means Indian players see the game’s app page in Hindi, as well as the in-game text. That’s a big deal. It means we’re meeting people where they are across a global market. We didn’t translate the game into any African languages, so it’s no wonder that entire continent is grey except Egypt. (We did translate the game into Arabic…)

Free games are really popular in Asia. To the extent that this Demo is a “free game,” that explains its success in South Korea and India. After all, it is a game that costs no money. So it is technically a free game! I do not expect this same success once the game costs $0.01 or more. We’re going to have to target the Asian market with a lower price than normal, or perhaps even a try-before-you-buy method where the first half of the game is free. Don’t get me wrong, I’m happy that these people downloaded our game and clearly loved it. But when the business model flips and we ask for their cash up front, I don’t expect to see South Korea or India to even make it into the top 10 list.

 


 

 

applestore20copy

App Store Performance

The App Store’s analytics aren’t quite as easy to decipher as Google Play’s… also, our performance on Google Play dwarfed the App Store in every possible way!

Apple-AppUnits.PNG

From iTunes Connect – a chart of our App Units.

App Units vs. Impressions

Our performance on Apple makes more sense to me. We only “sold” 32,285 app units. We got over 200,000 lifetime impressions, but I don’t know what that means! That may just be when someone sees the game but doesn’t necessarily act upon that.

The chart of our downloads follows a pretty standard “flash-in-the-pan” trajectory. This may be partly because we were never able to upload our language translations to the App Store. I’ll discuss that a bit more when we get to my conclusions, but that’s my guess as to why we plateaued in May and never really rebounded.

It should be stated that App Store customers are the polar opposite of Android people – App Store customers probably want paid games and see “Free” as a mark of low quality. I expect these numbers to swap when the final game is released.

 

Apple-Review

Our dashboard for monitoring reviews. Note the total in grey on the right.

Ratings and Reviews

We didn’t get nearly as many reviews on the App Store – just 26 in one year. That’s probably all an indie developer can expect, but it doesn’t explain the disparity between this and Android. The reviewers were quite kind, and we have a 4.9 out of 5.0. However, with such a small sample size, that’s not as impressive.

 

Apple-World.PNG

Who Is Playing?

Surprisingly, China is our top country on the App Store. I didn’t even know we had access to the Chinese App Store! I don’t know if we can trust those numbers. In second place we have the United States, and then Russia, Japan, and South Korea. These numbers are too small to really tell us anything meaningful, except that we should focus our efforts on China for the iOS release of this game!

 


 

 

amazon_appstore_logos

Amazon App Store Performance

The Amazon version of our Demo went up earlier this year, but there’s no way to really see how much traffic it has gotten. My guess is that no one besides Jack and I have seen it, since the only review is one that I left on the company account.

AmazonLOL.PNG

My very serious review

If you have a Kindle or a Fire, please check out the Demo there! We’re doing a lot by trying to be on as many platforms as possible, and we could use the testing feedback.

I hope things will be better in the future with Amazon, but this isn’t promising. The company has gifted us four mobile devices to use for testing, as well as a guaranteed spot on the Amazon App Store feature banner at a time of our choosing. Let’s hope they have the install base to make it worth our time! We will not be coming to Windows Phone since those devices have been discontinued – I hope the same fate does not befall Amazon.

 


 

 

WorthIt

Retrospective: Was It Worth It?

After having our Demo available for free all this time, people often ask us “was it worth it?” What’s the point of releasing a demo so far in advance of the actual game? Don’t you want those people to pay for the real version? Won’t they forget about your game by the time it launches? Does anyone even make demos anymore?

That’s true – mobile gamers who stumbled upon our Demo a few months ago probably already forgot about us. They’re not eagerly anticipating the release of the final game. It probably isn’t even on their phone anymore! Just because this game is the center of our world, that doesn’t mean we can expect the same loyalty from some people who played a 15 minute trial. (Shout out to everyone reading this blog, because the previous paragraph clearly does not apply to you!)

It’s fine though, because none of that was ever the intended purpose of the Demo. All we needed were the following things:

  • A proof of concept that shows we can actually make something great
  • Something that claims the name Where Shadows Slumber before anyone else
  • quickly deployable version of the game to showcase at events
  • An easily submittable build that we can send to judges for contest submissions
  • Something that gives us experience dealing with the App Store and Xcode.

By these metrics, the Demo was a whopping success!

We proved to ourselves and our fans (and shadowy unnamed figures who can’t be named) that we can put together an awesome small indie game. Making something a little larger would take more time, but we already had the talent and the drive.

Judging by a Google search of “Where Shadows Slumber”, no one else has been able to claim that digital territory except for an old song from 2007. We’ve been in Google’s search algorithm for over a year, which can only help us in the long run when people try to find us online.

“The Demo has given us an air of legitimacy that many indie developers never consider when releasing their game into the wild.”

Any time we go to an event and the current build of the game isn’t ready to show real people, we just default to the Demo and it’s no problem! In fact, those events go even smoother than when we try to show off the development build. As for contests, having a no-strings-attached build out in the wild makes online applications a breeze. I’ve already got a folder filled with screenshots, videos, and a recent .APK that I can throw in there. I don’t know how many festivals want to feature our Demo, but at least they’ll remember us when we return next year with a finished game.

The App Store is an odd one. Technically, our Demo shouldn’t even be on there because Apple forbids you from submitting them. We slipped through the cracks five times! I don’t think that’s an endorsement of our talent, but rather an indictment of Apple’s system of judging builds. Perhaps we’re on borrowed time, and they’ll delete it any day now. Who knows? It doesn’t matter – between our Demo and the previously released SkyRunner, we’ll be Xcode pros by the time we jump in there a third time for the final release of Where Shadows Slumber.

In the end, it was definitely worth it to produce our Demo. Yes, it’s maddening to watch our game grow better every day knowing that people’s only conception of it is a year-old marketing build. But it will all be worth it in the end when we get to show the world what we’re working on! The Demo has given us an air of legitimacy that many indie developers never consider when releasing their game into the wild.

In the meantime… (I’ll have to train myself to not say this automatically, because I’m so used to it by now) …download our Demo. It’s free!

 

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

Thanks for reading this long-form business analytics update. If you came here from Reddit, please be kind! 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.

Advertisements

State Of The Art – October 2017

Welcome to State Of The Art, October 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.

Sadly, I was out of town for most of October on business trips to Texas, Los Angeles, and Seattle. Although I got a lot out of them, I did not get a chance to do as much artwork as I would have liked. Sorry that I don’t have more to show you!

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

 

Header5.PNG

World 5, The Hills

Cold, abandoned tombstones. Whining wrought iron fences, covered in moss. An abandoned log cabin, now in ruins. Suddenly, a chill in the air – snow begins to fall.

The Hills represents a turning point in our game, which is represented by the change in weather halfway through. I really love this setting and the mood it conveys, and I’m proud of how the artwork for this World came out. Every Level in the game will need to be “polished” before the artwork can be considered finished, and World 5 is no exception. But I think you’ll agree that these Levels are already looking pretty awesome!

5-1

5-1, “Cemetery” – I can’t wait to change the temporary Phantom model [ v_v]

5-2

5-2, “Family” – Not too much changed since last time, since this Level is so solid.

5-3

5-3, “Ray” – I love how the log cabin came out here.

5-4

5-4, “Drop” – This Level should look snowier, that’s coming later!

5-5

5-5, “Rest” – Ignore the large A’s on this Level, they’ll be replaced!

My favorite little aesthetic touch in this World has to be the stone pathways. It took forever to get those right. I started with massive stone slabs, but it felt too video game-y. Then I went with smaller and smaller pieces until I decided to basically do a mosaic of little flat rocks. Let me know what you think in the comments!

Note: I’m going to change 5-4 to make it snowier. It’s odd that we jump directly to snow, and that was never the intention. I’m just not sure what to do to make it seem like it’s only snowing a little bit.

 

Header

World 6, The Summit

Obe ascends the snow covered steps to the Summit. Darkness falls and his lantern dims in the wintry air. Shivering, he makes his way toward the castle at the peak of the mountain. The journey will be over soon.

I’m so excited to show you World 6, the Summit. Inspired by snowy game-ending mountains like the one in Journey and the recent Tomb Raider reboot, the Summit World is a snowy mountain peak with an abandoned castle at the top. It’s just getting started, so these Levels are a little rougher all around. Essential polish things, like actual snow falling from the sky, are unfortunately still on the back burner! Check out what I have so far:

Level 6-1, “Pass” shows off the unique way World 6 works. There’s a hidden shadow world that occupies the same space as the ‘real’ world! Use your shadows to uncover hidden dudes like this walking guy, who can press Buttons for you. It’s one of the coolest things we do in the game with shadows, in my opinion!

6-2

6-2, “Blind” – This Level is all about the secret World waiting for you in the shadows…

6-3

6-3, “Chains” – I may end up moving the gateway toward the center and rotating it.

6-4

6-4, “Watchman” – Finally, inside the Castle! Snow pours in through decrepit, broken windows…

There’s one more Level I can’t show just yet (6-5), because it’s a super work in progress right now and I don’t think you’d be able to see what’s going on. But this is World 6 so far!

What do you think?

 

HeaderUnfinished.PNG

November – Returning To Skipped Levels

Observant readers of this monthly blog will notice that sometimes I skip a Level and never return to it. Those Levels haven’t been cut from the game! They just posed a significant challenge for one reason or another, and I couldn’t find time to dedicate to them.

The theme of November is going to be “returning to skipped Levels.” I won’t spend all month on that of course, but expect to see an assorted, seemingly random collection of Levels in next month’s blog post. It’s all part of putting everything together, which is more important now that we’re getting close to finishing the game.

 

FakinIt

This is the kind of face that makes you want to say “That guy? That guy kind of sucks.”

Please, Criticize Me In The Comments

I don’t normally do this, but this is a call for comments! WordPress lets you leave a remark under each blog post. Please take a look at this artwork and give me some critical feedback. I always listen to it and it will really help to have a third, fourth and fifth set of eyes on my work.

You can tell me how much you love it if you really feel like it, but I’m mostly looking for ways to improve. Stuff like “this part looks a bit off” or “this color stands out in a bad way” or “this section looks unfinished.” That’s what I need to hear! Constructive criticism is welcome and encouraged.

I look forward to hearing from you below, and I’ll try to respond faster than I normally do. Cheers!

 

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

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.

Hacks Versus Designs

I remember back in the day, when computers and programming were first becoming somewhat ‘cool’. Back then, the coolest thing you could be in the computing world was a ‘hacker’. Hackers were awesome renegades who could tear down opposing systems using nothing but their superior intellect. Being able to hack was one of the best skills you could have. Now, after studying and working in computer science for a while, the term ‘hack’ has taken on a very negative connotation.

When you’re writing code, there are several things that you’re aiming for. The two broadest and most important of these are:

  1. The code works – it does what you intend for it to do.
  2. The code is good – it’s efficient, understandable, and easy to use/improve.

It seems like these two things would go hand-in-hand, and for well-designed code, that is often the case. However, the road to that ‘well-designed’ code is often fraught with terrible, terrible code. So, what’s the intrinsic difference between these two goals, and how does it lead to bad code?

 

boolean

Hack First, Ask Questions Later

When you’re working on a large, intricate system, and you need to add something or make a change, these two goals lead to two different types of results – a hack, or a design:

  • A hack is a piece of code with only the first goal in mind – you’re just trying to ‘make it work’. You don’t want to put a lot of thought or time into the implementation, you just want it to work.
  • A design has both goals in mind – you’re spending time to come up with a good solution. You’re willing to work a little harder to end up with a more robust, long-loving solution.

Designing a solution to a task leaves you with good code. It’s easy to understand, easy to use, and easy to update. The algorithm makes sense, not just in terms of “does it do what I want”, but also in terms of “does it make sense with the theory behind it”.

Looking at these two descriptions, it’s pretty easy to see – designs are better than hacks. So why would anyone ever want to use a hack to get something done? There are a few reasons.

Designs take more time. You have to come up with a solution, consider its long-term viability, consider how it will interact with every part of your system, present and future, tweak it accordingly, and make sure that it still matches the theory of your application. A hack, on the other hand, involves simply coming up with a quick and dirty solution, and implementing it.

Designs require deeper understanding. In order to fully understand the impact of your newly-designed code, you have to completely understand the current state of your application, remember all of the assumptions you made when coding it, and ensure that your new stuff won’t interfere with any existing stuff (Note that this is much harder to do on a larger team, as there are areas of the code you may not be as familiar with).

Designs are often much larger in scope. When designing a solution, it will often involve creating a ‘system’ or ‘engine’ of sorts. Not only does this take longer to think through and implement, but it also opens the door to a lot of subtle interactions between systems. Hacks are (usually) much more localized – “I’m gonna make this hack here, but I won’t use it in other places”.

You don’t want to spend a lot of effort on code that will be replaced eventually. This is really just a combination of the above points, but it’s an important reason why hacks exist. If you have to update a small piece of code, but you know that you’re going to come in and change the whole thing next month anyways, why would you put a lot of time and effort into designing a solution when a quick, hacky fix will do the trick?

Looks about right Cropped

This is what happens when you leave hacks in your code!

 

Here’s An Example

Let’s say you’re you’re working on a pretty simple game in a pretty simple game engine, using a pretty simple programming language (hint: this means I’ll be using pseudo-code rather than real code). You’ve got your character on the screen, and you want to make him move back and forth along some flat ground whenever you hit an arrow key. You might start out with something like this:

if (keys.leftArrow) {
  dudeGuy.position.x -= 10;
}

if (keys.rightArrow) {
  dudeGuy.position.x += 10;
}

Pretty simple and straightforward – if you’re pressing the left arrow key, move your dudeGuy to the left, and if you’re pressing the right arrow key, move him to the right.

So, you use this code for your movement, and it works, and you continue working on your game. Then, suddenly, you have an epiphany – what if your dudeGuy could jump? You add a variable and hook it up:

int jumpingTimer = 0;

...

if (keys.spaceBar && jumpingTimer == 0) {
  dudeGuy.position.y += 30;
  jumpingTimer = 3;
}

if (jumpingTimer > 0) {
  dudeGuy.position.y -= 10;
  jumpingTimer--;
}

As you continue making your game, you design some levels where you realize that you want the gravity to be less strong, so you have to account for that:

float gravity = 10;

...

if (keys.spaceBar && jumpingTImer == 0) {
  dudeGuy.position.y += 30;
  jumpingTimer = 30 / gravity;
}

if (jumpingTimer > 0) {
  dudeGuy.position.y -= gravity;
  jumpingTimer--;
}

Then you realize that your back-and-forth movement looks pretty choppy, so you decide to add some ‘smoothing’, so your dudeGuy speeds up and slows down:

int movingLeftTimer = 0;
int movingRightTimer = 0;
int jumpingUpTimer = 0;
int jumpingTimer = 0;
float gravity = 10;

...

if (keys.leftArrow) {
  if (movingLeftTimer < 3) {
    movingLeftTimer++;
  }
} else if (movingLeftTimer > 0) {
  movingLeftTimer--;
}

if (movingLeftTimer > 0) {
  dudeGuy.position.x -= 10 / (4 - movingLeftTimer);
}

if (keys.rightArrow) {
  if (movingRightTimer < 3) {
    movingRightTimer++;
  }
} else if (movingRightTimer > 0) {
  movingRightTimer--;
}

if (movingRightTimer > 0) {
  dudeGuy.position.x += 10 / (4 - movingRightTimer);
}

if (keys.spaceBar && jumpingTimer == 0) {
 dudeGuy.position.y += 30;
 jumpingTimer = 30 / gravity;
}

if (jumpingTimer > 0) {
 dudeGuy.position.y -= gravity;
 jumpingTimer--;
}

And,  before you know it, with only a few changes to what we were trying to do, we end up with a piece of code that’s incredibly messy, almost impossible to understand, and prone to bugs and off-by-one errors. Honestly, I just wrote this thing, and I have no idea what it’s supposed to be doing.

Now, this example is a bit of an esoteric one, just to prove a point. However, it is definitely not the worst code I’ve ever seen (or written), and that’s saying something. What should we have written instead? Well, if you couldn’t guess, the above code is an example of a hack (or a number of hacks put together). Rather than examining what it was we needed in the long run, we repeatedly implemented something that did the job in the short term. So, let’s make a design for this use-case, and think about what we need overall.

We want to be able to move left/right, jump, have different values for gravity, and have smoothing on our movement. This sounds a bit like actual physics, so lets steal some important concepts from them – acceleration and deceleration. We’ll determine some rules that match our design, modify the dudeGuy’s acceleration in each direction based on those rules, and then move his position all at once:

float maxSpeed = 10;
float acceleration = 3;
float jumpAcceleration = 10;
float gravity = 3;
float friction = 5;
float minY = 0;

float vx = 0;
float vy = 0;

...

// If the left arrow key is down, accelerate to the left
if (keys.leftArrow) {
  vx -= acceleration;
}

// If the right arrow key is down, accelerate to the right
if (keys.rightArrow) {
  vx += acceleration;
}

// If the spacebar is down and the dudeGuy is on the ground, accelerate upwards
if (keys.spaceBar && dudeGuy.position.y == minY) {
  vy += jumpAcceleration;
}

// Accelerate downwards for gravity
vy -= gravity;

// Decelerate for friction
if (vx > 0) {
  vx -= friction;
} else if (vx < 0) {
  vx += friction;
}

// If we're going to fast to the right, slow us down to the max speed
if (vx > maxSpeed) {
  vx = maxSpeed;
}

// If we're going to fast to the left, slow us down to the max speed
if (vx < -maxSpeed) {
  vx = -maxSpeed;
}

// Update the dudeGuy's position based on our current velocity in each direction
dudeGuy.position.x += vx;
dudeGuy.position.y += vy;

// If the dudeGuy is below the ground, move him up to ground level
if (dudeGuy.position.y < minY) {
  dudeGuy.position.y = minY;
  vy = 0;
}

While we have a similar number of lines of code here, it’s much clearer what’s happening on each line. Every block serves an easy-to-understand purpose, and making changes to the ‘rules’ of movement is very easy. There are a lot of different ways to improve this code, depending on your game’s overall design, but this is a decent, and most importantly simple, place to start.

Another important feature of this piece of code is that it is well documented. Every block is pretty small, but it still has a comment describing the purpose of the block. This is an extremely important part of programming in the context of larger systems – you want to make sure that you (or anyone else) can quickly understand what your code is doing, especially in complex cases. Even though some complex logic might seem simple to you, it’ll definitely seem more difficult when you come back to it in 6 months!

 

A Necessary Evil

Unfortunately, hacks are a necessary evil. While I would love to only ever have to deal with and implement beautifully-designed code, that world doesn’t exist. There’s always a timeline, there are always changing assumptions and new features, and there’s always someone who wants it to be finished yesterday. Inevitably, you’re going to have to write some code quickly, implement a feature that’s likely to change, or come up with a simple ‘solution’ to a difficult problem. In cases like this, you’re forced to use a hack.

Hack

I mean, it works… technically…

It’s not all bad, though. While hacks in general are pretty bad, they can be manageable if you make sure to use them correctly. In fact, I would be willing to bet that any system currently in production (of a certain size) contains quite a few hacks. There are certain qualities that hacks can have which make them a little bit more manageable, and you should try to aim for them whenever you find yourself implementing a hack:

  • Understandable – It’s important that, whatever your hack is, anyone else looking at the code can understand what you were trying to do, and how your hack works. This means leaving a lot of comments around your hack, as well as simplifying the logic as much as possible.
  • Localized – If you have to hack something in, you want it to only be in one place. Every time that code path is used, there’s a chance that something will go wrong. If your hack only touches a small part of your system, then its negative effects will be much less noticeable. This means that frequently-used code paths should never really have hacks in them, while hacks in rarely-used code paths are more acceptable.
  • Known – This is, to me, the most important part of making a hack. If you hack something in and then forget about it, when your system starts failing, you won’t know where to look. If you make sure you remember it (by writing it down somewhere and then telling every person you know), then you’ll know where to look if something goes wrong. On top of that, you’ll always have that hack in the back of your mind, so you’ll be more likely to think of a good design to replace it.

If you follow these guidelines and make sure to try to go back and fix them, then putting hacks into your code won’t end up destroying you.

I hope this was helpful to those of you just starting out in game development – or anything which involves designing complex systems! For those of you who already know a little something about computer science, I hope this at least reinforced your burning hatred of hacks!

 

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

If you want to know more about how to deal with hacky code, or what kind of hacks are in Where Shadows Slumber so that you can exploit them, feel free to contact us! You can always find out more about our game at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebookitch.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.

Introducing Our Audio Team!

We’ve been waiting a few weeks to announce this, but now it’s official: Where Shadows Slumber will have professional audio designed by Alba S. Torremocha and Noah Kellman. Please extend them a warm welcome to the team!

It would be a shame if I spent this entire announcement post blathering on instead of handing the spotlight over to them, so instead I’ll let them write their own introductions. Take it away, you two!

 

Hey all!

“Here we are! Finally! The last pieces of the Dream Team, reaaaaady to rock! And roll. Mostly roll, since we’re recording A LOT.

Everybody knows that sound guys are always the coolest, but let us introduce ourselves
real quick so there’s no doubt left about it.

Alba S. Torremocha (Music & Sound Design).png

Alba was expelled from Hogwarts for using her wand as a baton.

Alba S. Torremocha (Music & Sound Design) Alba comes from a highly-refined background in classical composition and orchestration. She walks around with an eyebrow raised because well, that’s what snobby classical musicians do. She studied violin for 10 years and then Classical Composition and Conducting in Europe for 4 years, with a strong focus on French orchestration techniques (hence the raised eyebrow). In the US, she won the residency of the NYU Symphony in 2016, and recently received the Elmer Bernstein Award. Her pieces have been premiered and awarded around the world, and she always makes sure everyone is aware of this at all times. Her alter ego appears under the full moon and is a kick-ass film and video game music composer. She recently collaborated with the renowned video game composer Tom Salta (Prince of Persia, Halo, Killer Instinct…) on one of his latest projects. More: www.albastorremocha.com

 

Noah Kellman (Sound Design & Music).png

Noah spits fairy dust when he’s excited. No one knows exactly why.

Noah Kellman (Sound Design & Music) Noah comes from an intensive jazz piano background. He toured the country at the Brubeck Institute while working with many jazz greats along the way. He spent year after year striving to be the best until someone finally said to him, “Your music sounds terrible and I don’t understand any of it, so it must be the best jazz I’ve ever heard!” At that point, Noah knew he was a true jazz master and he decided to pursue becoming a master of other things, including filling his medicine pouch in Horizon Zero Dawn and driving with cruise control set to 11 mph collecting rare Pokémon in NYC. But, in his glorious return to professional sound creation, Noah began creating electronic cinematic soundscapes using acoustic instruments to create strangely familiar yet unrecognizable timbres. Although he works intensively as a composer and sound designer throughout the film and game world, his pride, joy, and utter financial downfall is his independent Cinematic Post-Rock project “Nozart”, which has also garnered him attention as a songwriter, producer and performer in the Indie world. More: www.noahkellman.com

 


 

We often work as a team because, as you can see, we come from very different backgrounds and, when we combine them, really cool stuff happens. Also, it’s more fun to have someone else to blame and panic with when the deadline hits your face. We first heard about Where Shadows Slumber at Play NYC. We played it and were instantly amazed, but we quickly noticed there was no music or sound design.

When we asked them about it, they said: *slo-mo, camera closeup on their lips*

‘We’re looking for a Sound Team.’

(Actual footage of the moment)

Then, a choir of angels appeared and bonded us to this sacred quest. Next thing we know, we’re recording lantern sounds in our living room.

We knew right away that Where Shadows Slumber called for an exceptionally unique sonic landscape. After discussing this in great detail with Frank and Jack, we understood that Obe’s story takes place in a world that bears some nostalgic resemblance to ours, but is actually full of creatures, inhabitants and landscapes of mysterious origin. We wanted our sounds to be surprising, alien, and yet somehow recognizable. We tried to accomplice that goal by using unconventional methods to reflect familiar creatures and landscapes. For example, in the following video of World 0, we used a combination of synthesis and acoustic flutes to create the birds throughout the atmosphere. The two types of birds function differently within the game, bringing the soundscape to life.

We also wanted to break the barrier between music and sound design. Instead of an
inanimate loop that plays over and over, we created a soundscape in which both music
and sound design breath together, affecting and changing with each other as the player makes decisions in the game. For example, different layers of music are activated (or deactivated) with the player’s progress (or backtracking) in solving the puzzle throughout the level.

Overall, Where Shadow Slumber is an exciting challenge, and we love nothing more
than helping transport the player into a completely new, beautiful and immersive world.”

-Alba & Noah

 

Look Forward To More Audio Updates

Jack and I are thrilled that we’re able to bring Alba and Noah aboard! Our game has been a silent vacuum for quite some time, and it gets a bit soul-crushing. Hearing the birds chirping in the Forest for the first time suddenly made the game feel alive in a way that it hasn’t since the Demo days. It really is incredible how one missing crucial piece, like the sense of sound, can cripple the experience.

Well, no longer! Look forward to more audio updates as time goes on. We’re all working on different sections of the game right now; Alba and Noah are making their way chronologically though the Worlds starting from the Forest, as Jack finishes up the game’s ending Levels and I’m somewhere in the middle doing artwork. In time, we’ll converge and show our fan(s) the combined effort of everyone’s talents working together. Until then, you’ll have to be patient!

 

EDIT (Sept. 26, 3:00 p.m.): A previous version of this article mistakenly contained the wrong video file showcasing the game’s audio. The video has been updated.

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

More audio updates are coming in the next few months. Until then, 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.

Dream Team

As Frank mentioned a few weeks ago, we’re getting closer and closer to the release of Where Shadows Slumber in Spring 2018, and as such, we’re going to try to take on a bit more of an active role in terms of publicizing the game. To that end, I’m going to take some time today to answer a question I’ve been asked a few times, that’s very vaguely related to the topic of publicity. “If you guys were to start another indie game development project,” they ask, “how would you want to expand your team? What skills and responsibilities would you want from your new team members?”

This is an excellent question – pursuing a decently-scaled project requires a lot of forethought and planning, and none of it is more important than designing your dream team. After all, you’re going to be working with these people for a while – so what does your dream team look like? The best way to answer this question is with experience. I’ve been working on this project on a two-person team for over two years now. What’s my dream team?

a-team_1

I will never cave and get Photoshop or something else “professional”!

 

In The Beginning…

When Frank and I first embarked on Where Shadows Slumber, we felt like we already had a pretty good team. Our personal dynamic was good, and we knew that together we had the set of skills that would be required – I would do the programming and design, and Frank would do the art and sound. Boy were we in for a rude awakening!

You see, for our first project, SkyRunner, we did the same thing. We built and released it, and it never really felt like our team had a gap in skills. It didn’t do so well, but we viewed it as a learning experience either way, so we never felt that we had failed to do anything in particular. When planning Where Shadows Slumber, we tried to do the same thing – design/programming, and art/sound. What we didn’t realize was that there was a huge gap in our skillsets. One of, if not the most important skills was something that we simply didn’t possess. We’ve been managing okay without it, but everything would be going a lot smoother if we had thought about it up front.

 

Where We Are Now

Before I get into the things that we don’t have, let’s talk about what we do have. We have a very lean, very agile team, with pretty strong design, artistic, and programming skills. There hasn’t really been a point when I’ve thought “man, I don’t think I’m gonna be able to implement this” or “wow, I really wish Frank were better at art” or anything. These are our strong points, and these are the things that we’ve consistently done well throughout development. I don’t think we need to do anything to improve on these skills at the moment.

On the flip side, there are a couple of areas where we are lacking. You’ll notice that I previously listed ‘sound’ as one of the tasks, but I didn’t mention it above. That’s because neither of us has any training or experience in sound design. Frank heroically took on the sound for the demo, since it sort of feels like a more artistic endeavor, but we quickly realized that we would need someone else to do the sound design for Where Shadows Slumber if we wanted it to have a real professional sound.

However, sound isn’t the thing that we were missing at the beginning. We’ve been looking for sound people, and we’re confident that we’ll be able to incorporate great sound design into the game. No, there’s something else, a huge blind spot, something that could potentially destroy us all and leave us with nothing, something that we never realized we needed, but can’t live without. There’s one more task that encompasses everything we’ve already talked about, and is perhaps more important than all of them put together.

 

Publicity!

A successful game is one that a lot of people download. The idea is that if your game is really good, people will download it. Unfortunately, this idea doesn’t always pan out – in order to get people to download your game, you need to give them some reason to. This is where a marketing and publicity expert really helps.

press

“Our game really speaks for itself.”

This can be a tough pill to swallow – paying someone who may literally never contribute to the actual game itself can feel pretty awful. Despite this, your publicity expert will probably end up being the most important person on your team.

Think of this person as a salesman, helping you sell your product. It doesn’t matter if you have a billion units of the best product on the market – if you don’t have someone to sell it for you, you’re not going anywhere. Infrastructure like the app stores make this a little easier, since you can publish a game yourself, but you still need someone advocating for you and getting people to download the game.

We don’t have the experience or know-how to actually do this. It seems easy – just talk to people, tell them about the game, take any chance to promote it. But the reality is much more difficult. In reality, it’s a full-time job. Talking to bloggers, reaching out to potential publishers, doing interviews, even writing blog posts, all of it adds up to a lot more work than we had anticipated.

In the same way that your game’s name is the first thing people will see about your game, any efforts you make at publicity – ads, going to shows, posts on Facebook – are going to be right up there in your first impression. Why wouldn’t you do everything you can to make sure you make the best first impression possible? It doesn’t matter how great your game is if no one feels like they want to play it!

 

“Doesn’t Play Well With Others”

Getting back to the question at hand – what would I take into account when picking out my DREAM TEAM?

Well, clearly, more people working on any aspect of the game means that the work will be done faster, right? While this is true, it’s also subject to diminishing returns. This means that two people doing the job will get it done faster than just one, but not twice as fast. In the same way, the third person on the job adds even less.

This effect is compounded by the fact that coordinating the implementation of a complex system is a tricky business. If I’m the only one working on my game, then I completely understand the whole system, and I know what changes I need to make and how they will affect the rest of the game. As soon as someone else is involved, we each have to coordinate all of our changes and work to understand the whole system. This overhead can slow things down quite a bit, to the point where it seems like it might be more efficient if just one person were working on it. You’d have to ask Frank, but I assume the same thing goes for coordinating artistic styles and assets.

how-complex-systems-fail

“Alright, new guy, here’s our system. It’s really pretty simple…”

Now, it probably sounds like I’m a crotchety old programmer who refuses to change or take a second opinion on my work. I like to think that this is not the case – I work with a handful of other programmers every day at work, and we do awesome stuff. The difference is one of scale, timing, and goals:

  • Where Shadows Slumber is a small enough project that one programmer can conceive of and manage the entire system. If I were working on a bigger project, you bet I’d want more programmers, just so that we could wrap our collective head around the tasks at hand.
  • We are nearing the end of development for Where Shadows Slumber. There’s still a long time and a lot of work left, but we’re about 80% of the way through development. Bringing someone on now would require spending a lot of time bringing them up to speed. Since there’s so little time left anyways, adding another programmer might actually cost us time, rather than save it.
  • As the only programmer and head designer for Where Shadows Slumber, I think of it as my baby, my brainchild. When working on it, I have very specific ideations and goals – hiring another programmer would mean there’s another person with their own ideas and goals. If they don’t line up with my own, then we’re gonna butt heads a lot throughout development.

Hopefully these points do a good job of explaining why I’m still the only one doing any programming work on Where Shadows Slumber. If I were to start another project, these are the things I would think about when hiring a programmer.

 

The DREAM TEAM

DREAM Team

Dreamin’ of the Dream Team

So, if it wasn’t obvious from everything above, my first addition to the team would be a professional, dedicated marketing and publicity person. Alongside that, I would want a sound designer – which, fortunately, we are actually working toward.

Those two roles, in addition to Frank and myself, would put us in a pretty good place, in my opinion. If I were to continue expanding the team, my next move would probably be to get another artist and programmer to help with the heavy lifting. The best way to avoid diminishing returns, I think, would be to divide the work into discrete parts – for instance, the art could be divided into the art for the game itself, and the cutscenes. If I were to bring on another programmer, I would want someone with expertise in graphics and aesthetics, since those are my weakest areas.

So, if you’re looking to put together your own dream team, my recommendations are to make sure that you don’t overload any one person, and to definitely, definitely not underestimate the value of a dedicated publicity expert. Otherwise you’ll end up posting blogs full of crappy MS Paint art and thinking “Eh, it’ll be fine”.

 

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

If you want to know more about how our team is put together, or are curious about building your own dream team, feel free to contact us! You can always find out more about our game at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebookitch.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

 

 

State Of The Art – August 2017

Welcome to State Of The Art, August 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. Without further ado, let’s explore the major leaps forward we took in August!

 

Rekt

Obe’s Feline “Friends”

This part of the update is directly tied to the cutscene discussed below, but I wanted to give it special attention just because I like how they turned out. I modeled some cats! They really only appear during a few short cutscenes during the game, but making each one took quite a long time. Here’s the Leopard:

Leopard

The spots on his coat came out way better than expected, although the top of the head is a bit off.

And the Lion:

Lion.PNG

The way his mane frames his face gets me every time!

I especially like the Lion’s mane. It was a struggle to get it to look as simple as it does. I kept making overly detailed 3D hair but it just looked wrong. At one point I considered using Cloth to simulate a glorious flowing mane, but I knew Jack would probably kill me so I backed off. I ended up going with a simple cylinder with a rotated back and it just looked right as soon as I saw it. I stepped out of my comfort zone and ended up with something super cool! Throw on Jack’s shader and voila – a glorious, friendly* Lion.

Astute observers will notice a few things about these models. For simplicity, they’re actually using the humanoid torso + limbs combo that Obe uses! But the reuse doesn’t end there. The Leopard and the Lion both have the same Head model, just with a different texture. The Lion’s mane does even more to differentiate them. A+ if you noticed this without me telling you!

* Watch the cutscene.

 

Rivah.PNG

World 2 (River)

The River World took a giant leap forward during the month of August. I’d show you a bunch of screenshots, but I made a pledge last month to show more videos of the game in action instead of just screenshots. This is part of pushing ourselves to be better – if the game doesn’t look good in video format, we need to work harder! You’ll notice of course that there’s still no sound, but we’re working on that.

 

The core pillars of the River’s design are its gross yellow water, jet black dirt, log wall structures, and rickety boardwalks. There’s a really cool interplay here between the water and the black foliage – it makes it look like more things are in shadow than there really are. I love how the trees look, stretching out into the water / sky. This is one of my favorite Worlds!

Enjoy the highlight reel of all five Levels in World 2, above. Don’t worry – there’s no spoilers for puzzle solutions, just a walking tour of what each Level looks like.

 

Cutscener.PNG

“Wardens” – The First Cutscene

You walk through the forest, alone and lost. You come to an intersection… which path to take? Suddenly, a Lion appears from behind the shadowy veil. To your left, a Wolf! As they bear down on you, you wonder if they are friend or foe. And what’s that sound behind you?

This cutscene is not quite 100% finished yet, but I’ve reached the point where it’s time to leave it and move on. I’m going to throw some facial animations in there, but I’d like those to coincide with sounds (roaring, laughing, screaming) so I’m avoiding it for now. Of course, as a final pass, we’ll need to add sound effects.

There are also minor touch-ups to his clothing that I need to do. I didn’t have to animate his robe or his chasuble, which was a godsend. But with automated animation comes other issues… notice how his clothing clips through his body and the ground sometimes. It’s possible to fix this – and it’s possible it won’t even be noticeable on an iPhone – but it’s one of those things you need to leave until the end of the project. Focusing all my energy on it now means neglecting the rest of the work on my plate, so it’s not an option.

 

Enjoy the cutscene (above) and look forward to a 100% version later, with sound!

 

CityWIP

What To Expect From September

This coming month, my first task is going to be World 3 – the Aqueduct. We’re pretty much going chronologically here, so that’s next. I’d also love to move on to World 4 – the City. The City has been started, so one Level is already basically done. Getting those two Worlds finished would be awesome! Time will tell.

I’m satisfied with how I animated the Wardens cutscene, which means I might take a break from cutscenes for now. I really just wanted to get that first proof-of-life cutscene done so our audio crew can have something to work on as a reference for how cutscenes work.

Speaking of audio, that will also be my focus this month. I won’t be working on audio per se, but I’ll be paving the way for an audio person to come in and start adding stuff. That means some light scripting and a lot of brainstorming. It’s not visual, but it counts as “aesthetic”. Maybe I should rename this monthly post State of the Aesthetic? Is greater accuracy worth wasting one of the greatest puns of all time? Surely not…

 

See you again in October!

 

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

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.

The Name Of The Game

As you (probably) know, Frank and I have been working for a while on a certain game-development project. And, as you also (most likely) know, the name of that project is Where Shadows Slumber. For as long as any of you have known about it, that’s what we’ve called it, so it might seem strange to think of calling it something else at this point. But the name wasn’t always Where Shadows Slumber – for quite a long time, our game didn’t even have a name. How did we get from there to here?

When I first came up with the idea for the game and we started on the proof-of-concept, we didn’t have any particular name in mind. We weren’t thinking about it at all, and we didn’t even have an idea of what kind of name we might want. That apathy followed us through the early phases of the game, up to the point where we started going to smaller events, showing it off to people, and getting feedback. We discussed different naming options, but we never considered it a huge priority, and didn’t dedicate much time to it. Before too much longer, we came to the realization – we need a name for this thing!

 

Why Do You Need a Name?

We were just getting started with a new, unknown game, and, against all odds, it was actually going well! People seemed to really enjoy playing our game. They seemed interested in our process as a small team. We had been perfecting our ‘pitch’ at every event we went to, and we know exactly what to say to people when we showed them our early prototypes. That’s when we realized the mistake we had made.

People liked the game, and they wanted to know more about it. They wanted to hear about updates, they wanted to know when it came out. The problem was, the game didn’t have a name – how can someone keep up with it if there’s no name to search by? That was when we stopped messing around. Making a game is hard, and making a successful game involves making the correct decision at every point in the process. This was a place where we had screwed up, but we resolved to fix that mistake immediately, and I think that our fast action was an excellent decision that did a lot to move us toward success. The decision we made was to meet up in person the following week. We would sit down and figure out a name, and neither of us would be allowed to leave until we had decided on one.

 

What’s In A Name?

Now, choosing a name is a surprisingly difficult thing to do. The biggest hurdle for us, I think, was the dedication that it implied – once you pick a name, once people start using it, you can’t really go back. What if we chose wrong?

whatsinaname

MS Paint forever!

While this was a scary proposition, it was also one of the things you want most out of your name. You want people to remember it and recognize it – you want it to last, and you don’t want to go back. Which just means you have to be that much more careful about choosing it. So lets look at all the things you want from your chosen name.

Recognition – The most important part of your name is that people associate it with your game. For us, when people think of the words Where Shadows Slumber, we want them to think of our game, and only our game. This is associated with having ownership over the name – nothing else is named in a way that’s too similar to Where Shadows Slumber. Take my name for example – Jackson Kelly. Go ahead, give it an image search, I’ll wait.
Do you get a bunch of pictures of my beautiful face smiling back at you, or a bunch of guitars? That’s right, the name Jackson Kelly is already ‘owned’, to some extent, by a guitar company. If I were choosing a name for a company or product, I definitely wouldn’t choose Jackson Kelly, because people (and Google) already associate it with something else.

“Pre-loading” Information – When people sit down and play your game, they won’t always know what to expect. There are some people who aren’t part of your target audience, and they might not like your game. Some games require the right mood or mindset. These are all good examples of how your game’s name can “set the mood”. If your game sounds like a puzzle game, then puzzle gamers will know that it will be good for them. If your game sounds like an endless runner, people will know what to expect. This leads, perhaps even subconsciously, to people more often playing your game when they’re interested in the style of the game, and when they’re in the mood for it. This also applies to people following your progress and keeping up with your development.

Telling a Story – Every game has a narrative of some sort – not necessarily a story in the conventional sense, but something you want your players to experience, outside of the mechanics themselves, when they play your game. For a game like Where Shadows Slumber, this is a literal story – something is happening in the world of the game, and the player gets to watch it happen. Other narratives aren’t so straightforward; take Candy Crush, for example. I’ve never played it, but I assume there isn’t really a huge storyline. Rather, what you want the user to experience are the rules of the candy world, and why the player should be connecting the candies.

Whatever the narrative, everything about your game should speak to it, should play a part in making it happen. The name, as the first part of your game users will interact with, is a vital piece. It’s where the journey begins, and you want to make sure that it helps tell your story.

Representing Your Game – Every part of your game should be great, but the most important part of your game is the beginning – can you get a user “hooked”? The name of your game is the first part of your game a potential user will experience, so it should, arguably, be the best part of your game. If you clearly didn’t put a lot of thought into the name, how can people trust that you put any effort into the game itself? [Editor’s note: see “Mr. Game!” for reference] The name is part of the game, and it should be treated as such.

 

How We Came Up With the Name

As I mentioned earlier, the way we came up with the name was to have a few rough ideas in our heads, and then to sit down and get it all done in one session, cagematch-style. Perhaps this wasn’t the most efficient way to get this done, but it stopped us from dragging our feet, which had been the biggest problem. So, we met up at 10 am on a Saturday, and got into it!

naming5

A spattering of words and concepts we considered using.

The first thing we did was to brainstorm – not for names, but for emotions. People buy most of their entertainment products based on emotion, and games are no different. What emotions do we think players will feel while playing, and what do we want them to feel? What kinds of emotions will motivate them to buy it and to keep playing it? By answering these questions, we started to figure out the tone our name should have. The emotions we decided to shoot for, to various degrees, were mystery, fear, suspense, and hope.

Once we had some emotions, we started to focus on the actual content of the name. Our name should be indicative of the things in the game, and, in particular, of the story players will find within. What are our main mechanics and story points? What words can we find for those things that fit within the emotions we chose? Again, we’re not thinking about actual names yet (for the most part), but just building up a collection of words. We ended up with quite a few, but some of the major ones were umbra, nimbus, slumber, wraith, and plenty of others.

After that, we finally got started on actually choosing a name. We tried to combine the words we had come up with into sensible, interesting names. We came up with quite a few, decided on our top four favorites, and made a little bracket. We discussed each of the names at length – what will people think, will it help us connect with players, are there other games with similar names – and eventually narrowed the search down to Where Shadows Slumber!

naming4

The final four!

This whole process took upwards of eight hours. It was an exhausting day, but I think we ended up with a pretty good name at the end of it all.

 

Aftermath

When we first decided on the name Where Shadows Slumber, I was pretty apprehensive, and I think Frank was too. We didn’t want to commit to a name that might not have been 100% perfect. That said, we knew we had to make a decision, so we did.

In the end, I’m really glad we settled on Where Shadows Slumber. I think the name does a lot to describe what our game will be like, we have good ownership over the name, and it really just seems to fit. It was a heck of a process, but I think we made the right choice at the end of the day!

 

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

If you want to know more about our naming process, feel free to contact us! You can always find out more about our game at WhereShadowsSlumber.com, find us on Twitter (@GameRevenant), Facebookitch.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.