# Problem Solving: Design and Complexity

Game design and development is a complicated process. Creating an intricate tapestry of player interaction, incentive, and reward can be quite difficult, and you will no doubt run into trouble along the way. This is a simple fact of game development – in fact, this phenomenon represents most of the time you’ll spend working on your game. Therefore, you shouldn’t worry about it when that trouble finds you! However, an important part of how polished your game ends up, how long it takes to make, and whether or not you even get a chance to finish it is how you handle the issues you run into.

At its core, a game can be described by a set of rules which govern gameplay, and a starting game state. A match-three game, for example, can be described by the following rules:

Simple match-three rules

1. The game starts with a grid of colors.
2. Any three or more adjacent cells of the same color disappear, granting points to the player.
3. If there is an empty cell, the cells above it slide down to fill in the space, generating a new cell at the top.
4. The player may switch the colors in two adjacent cells.
5. The game may end when the player reaches a certain number of points, or when they make a certain number of moves, or if there are no available moves, etc.

Obviously, these rules don’t encompass everything that happens in a game, and the rules get much more complicated very quickly for more complex games. These simple base rules define your gameplay, but they very quickly become more intricate as you add features and functionality. Let’s look at a few updates to our match-three example:

• If we want to add a type of cell which can’t be moved, we would have to change rule #4 to “The player may switch the colors in two adjacent cells unless either of those cells is unmovable”.
• If we want to add an “exploding” cell which eliminates nearby cells, we would have to change rule #2 to “Any three or more adjacent cells of the same color disappear, granting points to the player, and if one of them is an exploding cell, adjacent cells also disappear”.

The base rules handle 90% of the gameplay situations, but we have to add special provisions for exceptions of those rules. In game development (and computer science in general), these exceptions are called edge cases, and, as necessary as they are, they’re super annoying. Your code will include edge cases, and it should, but you have to be careful with them (edge cases may be considered a type of hack, which I discuss in one of my previous blog posts), and you should avoid them when possible. One of the primary ways to do that, depending on your game, is through design – rather than complicating your codebase, you can try to design your game and/or levels in such a way that you don’t need to change your code.

## An Example from Where Shadows Slumber

Let’s take a look at the inspiration behind this post – a case I ran into in Where Shadows Slumber where I faced such a decision.

Ominous!

At the end of each level, there’s a ‘goal’ space. When Obe steps on it, it triggers the end-of-level sequence to begin – the lights fade, Obe walks out of the scene, and then the next level loads. The question is, given the game rules, how can I make this happen? I could have added a specific code path for this case, but I realized that I could use some already-existing mechanics to create this effect:

• The machinery behind buttons can already handle “trigger something when Obe steps on a space”, including a delay for ending the level.
• The machinery behind Obe walking in at the start of the level allows us to redirect his movement.

This is one way of handling an edge case – try to reduce it into an example of something you already have, thus changing it from an edge case into a normal case. Now we’ve changed the ‘goal’ space into a different-looking button with a redirect space.

Now, there’s another situation involving the goal space where I was given a similar choice. In some levels, there’s a space both to the left and to the right of the goal space. This enables a situation in which the player moves onto the goal space, and then away from the goal space. This creates a problem: the end-of-level ‘button’ will trigger, the lights will dim and the next level will load, but Obe hasn’t left the scene – he’s still just standing there!

Well that’s not quite right…

This is a problem I can solve by changing the rules, or by changing the design. The rules for redirecting Obe’s movement only apply when he doesn’t already have a destination. In order to handle this situation, I could add a case that says “if the current node is the goal node, do the redirection”. This requires that I add code to mark a node as the goal node, and to check if the current node is the goal node. While this code would be pretty small and easy to write, it still adds to the overall complexity of the codebase. Is there a way to avoid doing so?

There is, in fact, and it’s quite easy. If we simply remove all of the places where this could happen, then we don’t have to worry it! We’re not “solving” the problem in a conventional sense – if the configuration of spaces were to come up again, the problem would still occur. However, by changing the level design, we remove any chance of that happening.

I’ll have Frank make something more on-theme to fill that space

This is another way of handling an edge case – by making a small change to the level design, we’re able to avoid making changes to the codebase. This prevents our code from becoming needlessly more complex, making it easier to understand and maintain. While not every problem can be solved in such a simple way, there are many that can, and keeping an eye out for them is a great way to avoid unnecessary code complexity.

## Living on the Edge

I keep talking about edge cases and code complexity like they’re bad things. But an entire game is a very complex thing – doesn’t it make sense for the codebase behind it to be complex as well?

There’s nothing inherently wrong with complexity in your code; a well-implemented cache invalidation algorithm is a beautiful thing, complex as it is. What isn’t beautiful is needlessly complex code. The logic in this code is usually hard to follow, makes assumptions, and leaves a lot of small bugs that you’re unlikely to notice right away. This is a recipe for disaster, because every time you try to make a small change, you have to wade through a swamp of half-thought-out code paths, and you end up adding more complexity just so that you don’t have to deal with the complexity that’s already there!

The biggest problem is that it’s very hard to tell the difference between code that’s complex because it has to be (good) and code that’s complex when it doesn’t have to be (bad). The way I deal with this is to try and realize when the code I’m writing is starting to become very complex. Even though I might only be fixing one bug or working on a specific part of the implementation, I try to take a step back and look at the problem that I’m trying to solve, and how I’m solving it. If the problem is a complex one (cache invalidation), then I accept that it’s gonna be a complex algorithm, and keep writing it. If it’s not a complex problem (sorting), I take another look at my code and see if there’s a better way to do what I’m trying to do. In this way, I continuously re-evaluate the complexity of my code, and whether or not I need it.

Six while loops isn’t too many, right?

I know that “I just know when it’s too complex” might not be the most satisfying answer for those of you who often run into issues of complexity. That feeling is something that you pick up as you do more and more coding, and especially as you revisit your own code – “wow, I can’t believe I wrote such stupid code”. For those who want a more concrete answer, here are some of the ‘red flags’ that I try to keep an eye out for when assessing the complexity of my code:

• A lot of ‘if’ statements – If your code has a lot (and I mean a lot) of random ‘if’ statements (especially nested ones), then you might want to take another look at the design.
• “I don’t know…” – If you can’t quickly and easily determine what each piece of your code is meant to be doing, your design might be too complex.
• Guessing – If you ever find yourself just “trying things” and “seeing if they work”, it’s a clear sign that you don’t understand your code well enough. Take some time and get to know it!
• Duplicated code – If you have the same block of code copied into a few places, you should revisit your design. Either that block belongs in a helper that you can reference, or the control flow of your code needs to be reconsidered.
• Asynchronicity – If you’re doing anything asynchronous, you should give your code another look. I know you probably did it right the first time, but asynchronicity is one of the most difficult parts of computer science, and it’s always worth double-checking.

There are a lot of other things that you might notice about your own code and its complexity – these are just a few quick guidelines off the top of my head. Hopefully they help!

## But Game Development is Fun!

Anyways, I hope I didn’t scare you away from computer science. If anything, I wanted to instill a healthy fear of needless complexity, and I hope that you’ll do what you can to reduce that complexity – whether by redesigning your code or redesigning your levels!

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

If you have any questions about code complexity and how to design around it, or if you have any other questions about Where Shadows Slumber, 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

# Frank Opinion: Why Our Game Is Premium

Believe it or not, Jack and I don’t spend every waking minute of our lives with our heads buried in our computer screens working on Where Shadows Slumber. Occasionally, we take the time to read up on current events in the game industry!

The big news of last week was Star Wars Battlefront 2’s controversial loot-box system, and how EA and Disney tried desperately to pull up as their starship careened toward the surface in a full nose-dive. I’m not a journalist, so I’ll let you look up the story on your own. Personally I’m a huge fan of this YouTuber YongYea – watch the last 5 or 6 videos on his channel and you’ll get the full story. (Coarse language warning – YongYea gets pretty passionate about this subject.)

Honestly, the headlines of these videos alone are enough to give you the idea. Are you an expert on lootboxes and the EA controversy yet? Yes? Great, let’s dive right in!

It may seem odd to bring up EA and Star Wars Battlefront 2 in a blog that’s dedicated to following the progress of our mobile puzzle game. However, Jack and I write these blogs for a few reasons. Progress updates are great, but sometimes we like to take the time to spill our guts and let you know exactly what we’re thinking and why we made certain key decisions along the way.

Recently I attended the Mobile Games Forum. As I wrote in my blog post, I felt a bit out of place at that conference. Industry executives are really moving away from premium games! Nearly everyone I met was either a free-to-play developer or an ad network executive trying to sell us their services. Sometimes I felt downright insulted by the comments these guys made towards me and my “ancient” business model. I heard things like “the market is only 7% premium these days” and “game developers are the only ones who miss the premium model.” At the limit, I heard the scariest thing imaginable: The premium market is dead.

So I’d like to take this week’s blog post as an opportunity to talk about the recent controversy with EA, and relate it to the apparent death of the premium business model. But first, we need to define these terms in case I’m using technical jargon you’ve never heard before. (This is an educational blog, after all…) Then we need to mention some disclaimers so people don’t flame me in the comments section.

## Disclaimers and Definitions

Before we dive in – what the heck am I talking about? To someone who doesn’t study the entertainment industry, this blog post is probably a bit confusing so far. Here are the terms I’m going to use, and what I think they mean. Hit me up in the comments if I make a big mistake and I’ll update the blog.

PremiumYou see a game on the App Store. It costs 5 dollars. You pay the money, and download the game. You play it. You never have a reason (or the ability) to spend more money in-game after this point. There are no advertisements or “time-wasters” in the game.

Free, With In-App Purchases: You see a game on the App Store. It costs 0 dollars to download! You download it for free and play it. During the game, you notice that certain player abilities, player accessories, or levels are locked. To unlock them, you need to spend either an in-game currency, or a real-world currency like USD. The in-game currency doesn’t go nearly as far as the real-world currency, usually at a conversion rate of something like 100:1. You can do everything in the game without paying money, but it takes a ton of time.

Grind: Known as grinding or “the grind,” this is the process of doing something repetitive in a game in order to earn enough currency to buy something. I assume the name came from the agonizing process of pushing a millstone around in circles in your bare feet.

Lootboxes: Digital grab-bags filled with randomized treasure. Lootboxes are often purchasable in-game with in-game currency, but the grind to get them is time intensive and dull. These lootboxes can always be purchased at a great discount with real money, so the incentive to pony up is always there.

Finally, I want to mention that there are plenty of free games I have played and enjoyed.

I used to play League of Legends with my friends when we were all into the game – that one is Free, With In-App Purchases. Because you never were able to buy powerful items in League of Legends, I never spent money on the game or even felt like I needed to. In that game, you only purchased different costumes for your heroes. I felt it was a good way of doing that model, and Riot Games has been quite successful.

Currently I really enjoy the digital card game Hearthstone, which is also Free, With In-App Purchases. That one is dicier because they have lootboxes in the form of card packs. Since you can buy card packs to get good cards and put them in your deck, they’re essentially selling power. I think they get away with it because Blizzard still has a good reputation. Also, this business model is as old as the real-world card game Magic: The Gathering. Perhaps players are used to it by now. However, the pay-to-get-good-cards model is harming their ability to capture new players, so not all is well in the land of Azeroth. The impact of this business model remains to be seen.

Nintendo’s Animal Crossing: Pocket Camp just launched today and I’m definitely going to play it no matter how weird it is. I love Nintendo, I love Animal Crossing, and I’m well aware this is probably going to be a free, with in-app purchases minefield. By this point though, I’ve gotten pretty good at playing these games without paying a cent.

Now that you know I don’t hate every single free-to-play game, let’s talk about why this business model can easily be corrupted.

## The Right Way and the Wrong Way To Do This

Let me tell you what I like about free games when they are done correctly.

In my view, when a game lets you download it for free and largely ignore the in-app purchases, consumers will enjoy the experience. I get a strange sense of accomplishment knowing that my Hearthstone deck, which I built over time for free, can beat some nerd who paid \$100 in card packs. The reason why I don’t play games with ads is because there’s no way to ignore them – they are shoved into your face on purpose.

This is what makes Star Wars: Battlefront 2’s lootbox system so egregious. They’ve gone with the controversial Premium, With In-App Purchases model. Recently, this has only been done successfully by Overwatch, probably due in no small part to Blizzard’s stellar reputation in the industry. More importantly, Overwatch’s lootboxes never contain any items that materially affect gameplay. It doesn’t matter how beautiful your costume is – you’ll still get dunked by a regular player who didn’t pay for lootboxes if they are better at the game than you are.

EA has flipped the script, totally ignoring cosmetic items and focusing instead on selling Star Cards: boring passive abilities that make your character better in unexplained, unrealistic ways. By selling players the random chance to get incredibly powerful abilities and forcing other players to grind their way to these same powers, EA is simply setting free players up to fail. After you’ve paid \$60 for Star Wars: Battlefront II, you really haven’t finished paying for the product. What’s worse is that now you don’t even get the option of laying out more money to get what you want – such as the ability to play as Darth Vader – but instead you need to gamble with your time and money. Whatever happened to video games just being fun experiences? Aren’t we in the entertainment industry? One side (developers) is not respecting the other side (players), and the players are largely just accepting this brutal beat-down.

Finally, the conversation can return to Where Shadows Slumber, our upcoming premium mobile puzzle game. It took me a while to lay the groundwork for this, but I wanted to show you where my thoughts were coming from.

Jack and I didn’t choose this business model flippantly. It’s not like we had the chance to make a free-with-ads game and then said “eh, what the heck. Make it premium. Who cares?” There were a number of factors at play when we made this decision, back in 2015.

1. Inspiration from Monument Valley: As we’ve noted many times, the premium smash hit Monument Valley and its successful sequel inspired us to make this game. They offered the game for a premium price, and only charged players more money later when they created more levels. That always seemed more than fair to us. If they made millions, why can’t we?

2. Game design: Similar to the point above, we decided that a linear level-based puzzle game just couldn’t be reconfigured to work with a free-to-play business model. Our entire game was based around the business model: an assumption that this was a relaxing, creepy puzzle experience waiting to unfold before you. Your character can’t die in our game, and there are no enemies. That means we can’t sell lives or power-ups. Since the game is a finite single-player experience, we wouldn’t get much mileage out of selling cosmetic items. Who cares what the character looks like? The game lasts just a few hours and there’s no one to impress. We could put ads in-between levels, but there aren’t even a ton of levels so we wouldn’t make much money per player. We simply never had any desire to mutilate the concept of our game in order to make room for a pigeonholed free-to-play business model.

3. Hedging our bets against free-to-play: Every bubble bursts eventually. Right now, the business executives making these decisions are looking at the success of their competitors and simply copying them. This is often called reactive development. Responding to the environment around them, business executives see that every game is free to play and decide to follow suit. But I think it’s better to be proactive and look toward the future. Next year, when our game launches, what will players think about the game industry? Will they have a negative or a positive reaction to a \$0 price tag on a game? Has Star Wars: Battlefront II poisoned the well? Jack and I are taking a gamble by pursuing a business model that makes very little money. But we do so with the confidence that free-to-play’s stock is falling, and an informed group of players are getting tired of seeing good games get ruined by the greedy demands of executives.

### This Industry Needs Mutual Respect

The thing that combines the three points above is the principle of mutual respect. Call me old fashioned, but I’m used to the traditional way of doing things.

As a player with money to spend, you scan the market for interesting video games. Something catches your eye – it’s a beautiful indie puzzle game about a strange priestly-looking dude with a lantern. The puzzles in the game are weird. Objects in the level change with shadows? You’ve never seen that before.

Before you take a leap of faith with your money, you try the free Demo on the store. It’s polished, the puzzles are quirky, and the story ends on a weird cliffhanger. Curiosity overwhelms you and you’ve made up your mind! You’re going to buy “Where Shadows Slumber.”

It may not seem like it, but this is a sign of respect. You’ve trusted us with your money. You respect us enough not to pirate the game or just watch someone playing it on YouTube. You trust us to deliver on what we promised in our Demo. You believe that our screenshots are genuine, and not Photoshopped to make the game look cooler than it is. Even though we’re indies straight out of college, you take a chance on us instead of taking your business elsewhere.

In turn, we as game developers should respect you. We should respect you by delivering on our promise, giving you an entertaining experience that matches or exceeds the value of the money you’ve paid. This is where my disdain for in-game advertisements comes from. It’s impossible for me to see it as anything other than a show of disrespect. When someone entrusts you with their time, how could you shove a commercial in their face and then demand they pay up to prevent their time from being wasted?

Time is the most precious thing we have as human beings. I’d gladly pay any sum of money for more years on this Earth, and more years for the lives of my loved ones. This is impossible, but the urge is always there. That’s what EA is exploiting when they devise a system that requires players to grind for 80 hours just to unlock one character. They’re holding your entertainment hostage and asking you to make a terrible choice: give up your time (precious) or an unknowable sum of money (also precious, in large quantities). By some estimates, you would have to spend close to \$2,000 just to guarantee that you’ll unlock all Battlefront II has to offer. You’d never spend that much on a game upfront and they know it. In a sign of disrespect, they’ve devised a system to coerce you into playing their game or paying a ton of money over time without realizing it.

If that’s what the premium business model died for, it died in vain.

## Moral Arguments Require a Virtuous Community

It should be obvious by now that I’m not making a business case in favor of the Premium model. It’s dead or dying, and I get that. I don’t have any numbers to back this up. All I’m saying is that there’s a morally right way of delivering entertainment, and a morally wrong way of doing it too. Some publishers like to dance close to the fire, and EA jumped right into the furnace. (There’s a business argument for you – reputation matters.) But since this is a moral argument, it requires a community that cares about right and wrong in order for it to carry any weight.

Jack and I will need your help to pull this off. We want to be able to pay Alba and Noah and give them a good bonus through sales of the game. We want to be able to repay Caroline for her work on the website. I want the sales of Where Shadows Slumber to lay the foundation for Game Revenant’s future so I can be in business on my own. I want this game to make enough money so Jack never has to work another day in his life, especially after the sacrifices he’s made to create this beautiful game.

Remember that there are four ways to vote in this marketplace:

1. With your money – a symbol of what you place value on and what you do not.
2. With your voice – what games are you talking about and sharing on social media?
3. With your ratings – a sign of how you think other players should view the game.
4. With your time – everything is tracked these days, and play time equals support.

Premium isn’t dead – but it will die when the gaming community overwhelmingly votes to support disrespectful business models and neglects to support indies. Big publishers like EA are probably beyond saving, but Game Revenant isn’t.

Not yet.

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

The views expressed in Frank Opinion don’t represent everyone working on Where Shadows Slumber. 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.

# 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?

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…

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.

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.

#### 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.

## 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!

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.

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.

#### 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 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.

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.

## 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!

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

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

# 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!

## 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, “Cemetery” – I can’t wait to change the temporary Phantom model [ v_v]

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

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

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

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.

## 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, “Blind” – This Level is all about the secret World waiting for you in the shadows…

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

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?

## 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.

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

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.