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

 

 

Advertisements

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.

Fake It Til You Make It

Alright people. There’s something that’s been bothering me for a while, and I think it’s time we come clean. For the last two years, ever since the first prototype of Where Shadows Slumber, Frank and I have been lying to you.

“What?!” you ask incredulously, affronted dignity ablaze. “How can this be? What have you lied to us about? I must know!”

Well, never fear – we’ve never lied about the game. All of our screenshots are from the actual game, we’ve represented our progress pretty accurately, and we love you as much as we always have. Rather, inside the game, within Obe’s world, basically everything is a lie.

 

2

The video game Hydrophobia was criticized for focusing too much on its water physics and not enough on other forms of gameplay.

Faker!

This phenomenon is not unique to Where Shadows Slumber – in fact, it’s one of the defining features of video games. If you have experience with video game development, you know exactly what I mean. Think about the real world and the way things actually work. Molecules, fluid dynamics, physics – it’s just way too much stuff to simulate. Even if we get rid of all the stupid sciencey stuff and just consider things like gravity, friction, momentum, and basically anything else from classical physics, the real world is far too complicated to quickly and reliably reproduce on a phone (or a supercomputer, for that matter).

And the best part about this is that it’s not a problem. In fact, even if phones could handle all of physics, we would probably continue faking it. After all, if we do a good enough job of faking it, why would we bother actually implementing it?

This brings me to the actual point – when developing a game, we’re not trying to create a world for you to look at and interact with. Instead, we’re trying to create something that looks enough like a world that you can interact with that you think we actually did create a whole world. This is a very fine line to ride – too far toward realism, and your game will lag, but too far toward fake-ism, and people will be able to tell and won’t like it.

lava

How did you even get there? …How are you not dying?!

Think about a character walking on relatively flat ground. You could spend all of your time designing a system which allows you to near-perfectly imitate physics. Every time the character takes a step, you calculate exactly how their foot hits the ground, and how it changes their path. This process has eaten up most of your development time, and is so intensive that your game can’t run at more than 15 frames per second. But hey, those perfect physics are worth it, right?

Well, no. I mean, in this case, the ground is relatively flat, so you could have the character just walk along a straight line. Sure, his feet might hover above the ground or clip through it at times, but it’s close enough. Even if the ground isn’t flat, the point is that a simplification of what actually happens is always ‘good enough’ for your game, and it helps you save where you really need to – both development time and processor time.

 

 

NoShadow

Wait, what’s making that shadow?

Where FAKE Shadows Slumber

Now, when it comes to Where Shadows Slumber, there are two big areas in which we consistently lie.

Physics. This is the case that applies to most, if not all, games, and Where Shadows Slumber is no exception. Everything you see when you’re playing is a carefully constructed illusion. Obe is never standing on the ground – the ground is conveniently and strategically placed so that it looks like he’s standing on the ground. “Physics” covers any physical interactions or representations of objects. This leads to a huge disconnect between what things look like, and how they work. In fact, nothing in the game serves the dual purpose of actually doing something and actually looking like something. In every case, we simply have two game objects – one which interacts with other objects according to the rules of our game (our simplified “physics”, if you will), and the other which is just there to look pretty.

Shadows. Where Shadows Slumber is, obviously, based on shadows. Someone who has played the game would tell you that “shadows change things”. However, this isn’t exactly true – in fact, the shadows in Where Shadows Slumber have literally no effect on the gameplay whatsoever! This is another instance of the decoupling of an object and its visual representation. We show the dark black shadow as it moves across the world, but using that shadow’s location is far too computationally intense to be doing every frame. We could do it, but this is another case where we don’t need to be 100% realistic, as discussed in my blog posts on how our shadows work (part 1 and part 2), we use a much simpler algorithm to determine if something is in shadow. This saves computation time while not sacrificing quality. It’s all about that trade-off!

 

8rgt8bamhlnvicvzsd3pfjof

Otherwise known as “what happens when two hacks collide.”

Potential Pitfalls of Constantly Lying

While I strongly advocate for this type of simplification, there are cases where it can cause some trouble. A great example of this came up when we were doing the finishing touches on the original demo for the game.

We had added ramps that Obe could walk on to some levels, to give them a little more depth. It  was working very smoothly, and made the world feel less game-y. Separately, we also came to a decision to have a drop shadow for Obe. It felt weird that Obe himself didn’t cast any shadows, but it didn’t make sense for him to, or everything behind him would be in shadow. We ended up with a circular shadow underneath him. Even though it didn’t make sense from a literal standpoint (since the light wasn’t directly above him), we found that players simply knew what it was, and it added realism, since they were so familiar with the concept of shadows being ‘underneath’ something.

StairShadow

Something looks just a little off…

This was all fine and good – both of these ideas were strong ideas (in fact, the latter is a great example of a place where simulating a very fake shadow was much better than attempting to use a realistic one). However, it was when we combined these ideas that we ran into trouble. You see, the drop shadow we made assumed a flat floor – we just plopped it down with a little transparency, and it looked great! Until Obe got to the stairs, that is. Once he started up a ramp, half of the drop shadow ended up being invisible (because it was underneath the ramp), and the other half was at the wrong angle. We had come up with a great simplification, but it ended up totally ruining the illusion!

These situations do come up, and pretty often – two great ideas can combine to form one horrible edge case. However, this situation in particular came about due to a bad design process. At some point near the end of the demo’s development period, we realized “Oh shoot, Obe needs a shadow!” We hacked together the drop shadow solution without considering the long-term design implications. The important thing about making this type of simplification is to understand that it is inherently “wrong” on some level, since it doesn’t perfectly respect the way the world works. This is fine, until it comes up against other things, which are themselves “wrong”. In these cases, you must be extra careful to think through your design decisions with respect to everything they’re going to interact with. This is yet another reason why it’s important not to make design decisions or changes toward the end of your project.

 

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

I hope this gave you a bit of an insight into what’s actually happening in Where Shadows Slumber! If your confidence in us is shaken and you have any questions about what else we’re lying about, 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 – July 2017

Welcome to State Of The Art, July 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 July!

 

MountDoom

Pictured above is our classic scene where Obe throws the ring into Mt. Doom

World 1 (The Jail) Is Ready

It looks like the entire first real World, our volcanic prison that you must escape from, is ready! I say “ready” and not “finished” because nothing in the art world is ever truly finished. But these five Levels are “ready” because I’m ready to move on to something else without worrying about these all the time. They look good. They look pretty done. Will I need to tune them up later? Absolutely. But I’m not going to spend more time getting these Levels from 90% to 100% when there are some Levels at 0%.

Having said that, bask in the molten glory that is World 1!

1-1.png

Level 1-1, “Light” is the first Level of the Jail World.

1-2.png

Level 1-2, “Detour” shows off some of the cell blocks in this prison.

1-3.png

Level 1-3, “Lock” contains a rarely used side-exit door.

1-4.png

Level 1-4, “Pressure” needs a different back wall than the one currently shown.

1-5

Level 1-5, “Ascent” has a lot of annoying overlapping lights and we’ll fix those later.

What do you think of these Levels? Please leave a comment with your feedback, as I have a few concerns of my own and I want to see if casual observers would notice them. Maybe I’m just paranoid!

 

Obe

Obe’s Clothing Is Ready

Our main character has quite the wardrobe. He’s wearing a lot of complicated clothing! Some of it is made from animated mesh, but other parts are physically based cloth that Unity simulates in real-time.

Getting this right has taken me a long time. But now I’m done messing with it and I’m ready to give it the ultimate stress test – cutscenes, weather (wind and rain!), and lots of animation. I believe his accessories can withstand the stress and remain looking cool.

Obe-Pants.PNG

Dude what happened to your pants?!

Undoubtedly, his clothing is going to get messed up sometimes. We’ll just need to identify those situations and preempt them with special scripts that manage his robes and keep them from going haywire.

Obe-Detail.PNG

Currently, the robe can clip through his white alb and skirt. This should be fixed by launch.

What do you think of his clothing? Is it worth it to have such a detailed robe on such a small character? I promise, for these close up cutscenes, it will look great!

 

River

What To Expect In August

This month, I’m going to aggressively go after the Levels in the River World. I’ve been so excited to work on that one for a long time! It’s wide open (as opposed to the claustrophobic Forest and Jail) which is a nice change of pace. The color scheme is totally unique, and the assets are really interesting. There’s some creepy story stuff happening there as well.

I also want to get cutscenes rolling, probably the first two (Intro to Forest, Finale to Forest) since they are the first things players will see. I don’t like the idea of waiting until the very end of the development cycle to start cranking out cutscenes. These things are going to be trailer-fodder and they need to look awesome. A rushed cutscene is probably going to end up being a cut cutscene 😛

See you again on September 1st!

 

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

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.

Designing Obe, The Mysterious Protagonist of Where Shadows Slumber

For years, Jack and I have been referring to the main character of Where Shadows Slumber by euphemisms such as “the main character”, “the protagonist”, and “little lantern dude”. Now that the game’s story is coming together, we have finally given him a name! In this blog post, we’re going to do a deep dive into how we gradually got to this point in the character design process.

 

Obe

Meet Obe (oh-bee)

In Where Shadows Slumber, you guide Obe on his journey using magical shadows that emanate from a mysterious lantern. But the lantern is not the only thing that’s full of mystery. Who is Obe? Why has he come to this strange land? And is that a yarmulke?

We can’t give too much of the story away at this time. You’ll have to play the game when it comes out next year to find out the full story. Suffice it to say, Obe is an elderly man at the end of his life on a quest to set things right. (We would have called the game Old Man’s Journey, but someone beat us to the punch.) Obe didn’t ask for his lantern, but he would be lost without it.

The artwork above is the final rendering of how the character will appear in-game. Once I rig his cloth chasuble to work properly, I’ll post some videos of him in action. Before I do that, let’s take a journey through time to see how we got to this point.

 

thresh_by_predator95-d6zmsh6

You Inspire Me!

From the beginning, Jack and I knew that we would need a character that the Player could guide through the world. Something about our game’s shadow mechanics made us feel that it had to take place in a dark, mysterious landscape. We couldn’t go “full abstract” and make the main character a capsule or something. (Though, that would have made my job as an artist much easier!) We needed to show the shadows interacting with real objects in a real place, which meant the protagonist needed to be an actual humanoid. Moreover, the protagonist either needed to emit light or carry some kind of light source with them. We decided a lantern would look cool, and started exploring characters in popular culture that would inspire our character’s design.

maxresdefault

Jack suggested Thresh from the online game League of Legends. A sinister character, Thresh uses a lantern and a hooked chain to grab his enemies and pull them to their doom. He traps people’s souls in his lantern and tortures them for all eternity.

This was a bit too evil for an indie puzzle game. Thresh looks like a take on the grim reaper, and his lantern isn’t even in the forefront of his design. But still, it was an inspiration! If you ever get creeped out by Obe, that’s because of the Thresh-y part of his design.

tonberry___color

Then I suggested to Jack the design of Tonberry, a strange little green character from the Final Fantasy series. This enemy is apparently quite rare and super dangerous, despite its innocent appearance. Though it has many abilities across multiple Final Fantasy games, the recurring theme is that he slowly advances toward a party member until he is close enough. Then, he stabs them with his knife, delivering an instant kill.

I’m not sure why every character with a lantern in video games is a psycho murderer. That’s a little weird, don’t you think? Surely Where Shadows Slumber will change that perception!

What we enjoyed about Tonberry’s design was the simple, monk-like burlap robes and a nondescript lantern. His disarming appearance was also a huge inspiration for Obe. Now, Obe doesn’t carry a weapon around and he also isn’t a lizard, but his design was heavily influenced by this character.

 

ConceptArt-Inhabitants_Body

The Drawing Board

With a few key characters in mind, I set about drawing lots of pictures of what the game’s protagonist could look like. I began by deconstructing Thresh and Tonberry and distilling them into “mobile” versions. Remember, our game takes place on a small screen, so the character’s key elements must be clearly visible from far away.

ConceptArt-Protagonist-Sketches

What would chibi-Thresh look like? What elements can be stripped away and still retain the design? What elements are not necessary for a peaceful puzzle game?

ConceptArt-GhostCharacter.png

Simple designs for the character. Bottom Left: an unused design for a horrifying shadow creature that only appears in darkness and eats the souls of its victims.

ConceptArt-Protagonist-Body.jpg

The character’s robe became a central part of the design here, acting like Thresh’s gathering shadows and unearthly aura.

As you can see from the drawings, I tried to straddle the line between “cute and disarming” and “somehow a little sinister”. It was important to us that the Player trust the character in the beginning of the game, and then question their motives a little later on. Also pictured above, you can see the beginnings of some other character designs that would use our humanoid model. From an early stage we knew that if there were other humanoids in this universe, they would look like the main character – just slightly altered.

 

boat

First Character: Rayman-like

While this was happening, Jack and I were working on the very first iteration of Where Shadows Slumber. It was still just called “Light / Shadow Game” and we needed a character. Based on my drawings – but too scared to actually try using Unity Cloth – I created a simple character in 3DS Max.

Check out the character in action in the video above. He has a little cone shaped lantern, nubby little arms and legs, a fake robe and hood, one rhombus-shaped eye (!), and fingers. While this design is still near and dear to me, it had a lot of flaws.

One Eye Messes With Depth Perception: So apparently when a character only has one eye, it’s super difficult to tell where they are looking or when their head is turning. As humans, we’re much more used to the human face. We subconsciously compare both eyes to each other and make a judgment call about the way the head is turned based on that. A single eye made it difficult to animate the character properly.

Rayman Limbs Mess With Shadows: I love Rayman limbs. By this, I mean “floating hands and feet that aren’t attached to the torso in a visible way”. I think it’s an underused design. However, as much as I love it, it doesn’t work in a game where characters need to cast shadows and have silhouettes that make sense. We had to cut it.

 

screen_2432x1368_2017-01-24_13-34-45

If At First You Don’t Succeed…

For the next draft of our character model, I took the chibi style to heart and tried to think of a purpose for the character’s robes. It’s not enough to say “he’s wearing robes because he’s traveling and it’s a cloak”. I wanted to give them some kind of a purpose or possible religious significance. Now the character looks more like a cardinal or some kind of priest. This fits with his nondescript age of “old” and allows the Player to begin projecting their beliefs onto the character.

CharacterDesign

This model ended up being really close to the final design, but it just wasn’t there yet. Troubles with rigging the arms, face, and clothing meant that I needed to take one more shot at it. Still, we’re getting there! This character model appears in our Demo. Check out how the character looks in the Demo’s finale cutscene:

What were we saying about all lantern characters being really violent? Oh well… I guess some stereotypes really are true!

 

Happy.PNG

Welcome Home, Obe

Designing a character for this long almost feels like searching for a missing person. There are a lot of promising leads, but none of them pan out until finally you happen to stumble across what you’re looking for.

I feel that our main character has finally come home. He has a personality and feels like someone I can’t control anymore. It’s a strange feeling, but I take it as a sign that he will bring joy and intrigue to players around the world that want to unravel his mysterious story.

 

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

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

Keeping it All in Your Head

When you study computer science, or first get into toying around with it in your spare time, you find yourself working on a lot of small projects, just to get your feet wet. ‘Hello World’, a program which simply prints the text ‘Hello World!’ is perhaps the most-written program of all time. As your projects get bigger, the code behind them gets more complex, and you, as the software architect, have to keep track of everything that’s going on. This seems like a pretty easy task when working on a guess-the-secret-number game. But what happens when your codebase becomes BIGGER THAN YOUR ENTIRE BRAIN?!

 

Untangling The Web

In case you couldn’t tell from all the words about code, computer science, and programming, this post is gonna be one for the more technical folks out there. However, that doesn’t mean that there aren’t lessons to be learned by anyone else – keeping track of complex systems is a skill that applies to any project management task!

Real-world systems are incredibly complex – even more so than they appear, even after working with them for a while. As you add features, fix bugs, and increase the overall complexity of your code, you suddenly find yourself stuck in a tangled web of your own design. Now, the best way to combat this is simply to write good, clean code and follow good design patterns. However, if you want some advice other than “just do everything exactly right”, then read on!

Where Shadows Slumber isn’t the most complex game, but the implementation behind it is very intricate, and I definitely didn’t do everything exactly right. As the only developer on the project, I have to keep track of everything, which is a lot of stuff. Here are some tips I’ve developed for not going crazy trying to understand a system that you yourself created!

 

Tip 1: Divide and Conquer

The first application of divide and conquer is exactly what it sounds like – take the whole system, divide it up, and give a different part of it to each team member. While this doesn’t really apply to the development of Where Shadows Slumber, it’s still worth mentioning. If you’re in charge of one part of your project, and someone else is in charge of another part, there’s less minutiae for you each to keep track of. You only have to know how the pathfinding (for example) works on a higher level – the intricate details of the exact implementation are left for the ‘pathfinding team’. And if you do need to understand how pathfinding works, there’s someone who knows all about it – and that’s what teammates are for!

The other application of dividing and conquering is what I’ve heard referred to as ‘the Google Maps approach’. When you’re looking at a map of the world, you don’t need to be able to see every single city. But if you’re looking at a map of a state, you probably do want to see them all. So, the amount of detail you get depends on the context in which you’re examining it.

How can we apply this to project management? It’s really just a state of mind. When you’re thinking about your whole project, try to think of it from a more abstract point of view, rather than considering all of the details of the implementation. This kind of thinking happens naturally, but we want to actively embrace it. You want to think of the smaller parts of your project as a ‘black boxes’ – you give them some input, and they give you some output. You don’t know (or care) how it gets figured out, until you need to look at that code – at which point, you shouldn’t be thinking about the rest of the project. By only caring about the part of the project you’re currently working on, you free up a lot of space in your head.

 

Tip 2: Keep It Simple

The best way to prevent your project from becoming too complex is, obviously, to keep it simple!

Honor Societies

This comic is a comic [Image credit: xkcd.com]

“But how do you keep your project simple?” I can hear you asking. The key is in how you think about your code. For the most part – and there are notable exceptions – you should be able to think about or describe the function of different parts of your code with ease. Doing so might require the context within which that piece is working, but given that, it should be relatively simple.

Now, don’t get me wrong – your code itself will probably be very complex. However, it’s important that any code has a specific purpose. If some piece of code doesn’t have an easy-to-determine purpose, consider why it’s there and what it’s doing. If possible, see if you can move parts of it into the appropriate parts of your project.

Additionally, when describing the purpose of a section of your code, make sure it’s a relatively simple purpose – the best way to do this is to avoid the word “and”. If the purpose of a file is “to perform pathfinding and determine nearby enemies”, it would probably be best to split that into two different files.

By keeping your code as simple as possible, at least from an organizational perspective, you won’t have to strain yourself every time you try to remember what your code is trying to do.

 

Tip 3: Organization

Speaking of organization, keeping your project organized is one of the best ways to keep it under control. This can be tricky and surprisingly time-consuming, which is why people so often shy away from it, but it can also be crucial to your success. The key here is to create sensible patterns, and then follow them.

ORGANIZED

Everything is right where it should be!

The easiest way to apply this is in directory structure. Make a decision toward the start of your project how you’re going to organize everything, and then stick to it. For Where Shadows Slumber, as you can see, we sort most things by world. All of the levels, materials, and textures for World 1 are in the same folder, since they all apply to the same levels.

However, notice that there are some folders which are not organized by world. Scripts and prefabs are examples of things which span across worlds. While a model or texture might be specific to a certain world, the shadowCharacter.cs script, or the pathfinding node prefab are not, so why should they be sorted by world?

Thinking through your project and deciding on a directory structure that makes sense can make it a lot easier to understand what’s happening in your project. And, every so often, you should re-examine your organization, make sure it still makes sense, and make sure you’re actually following it. In this way, you can be organized, stay organized, and know that your organization is actually effective.

There are also organizational paradigms that you can apply to your code to keep it clean. One of my favorites is the idea of data ownership. The idea is that every piece of data in your project (the location of the character, a bullet’s speed, the number of points a player has, etc.) should have an owner. It’s usually pretty easy to figure out who the owner should be, but sometimes it can be tricky – and it’s in those cases where it’s important to know. If my shadowCharacter.cs script is the owner of the character’s position and velocity, then no other code should be allowed to mess with those values. That way, if there’s a problem with the character’s position, you know exactly where to look.

This is just one example of an organizational coding pattern, but the concept behind them all is pretty similar – at every point, you want to make it easier to understand what your code is doing. It’s a whole lot easier to make changes, fix bugs, and implement new features when the things that your code is doing actually make sense to you.

 

Tip 4: Not Too Complex… Yet

Every project starts out small and simple, and yet we constantly find that our projects have gotten out of hand, growing into sentient monsters, taking over our lives and ruining any chance we had of success – who knew that project management was so much like parenthood?

Incredibly clever comments aside, if our project starts out simple and ends up complex, there has to be some point when it started to go awry, right? And if so, there’s probably a point when we could have noticed it going wrong and steered it back on track. Thus, it’s important, as you’re working, to be constantly considering the state that your codebase is in. Every so often, ask yourself; is this code still clean? The more often you ask yourself this question, the sooner you’ll know when you start heading in the wrong direction – it’s much easier to fix this problem if it’s only just started to go wrong!

This is the concept of technical debt – every so often, you add in some bad code, just so that you can meet a deadline, or get some functionality off the ground. Every time you do that, you’re increasing your technical debt – and if you don’t pay that debt, it adds up until your code is unmanageable. It’s always good to keep your technical debt in the back of your mind, and address it as often as possible.

In my experience, there’s one really good way to determine if your technical debt is getting to the point where it’s impairing your development. If you ever find yourself writing overly complex code, it probably means that you have an overly complex system.

The longer the conditional the better

Genius!

Again, I’m not advocating against complex code in general, as it has its place. But if you find yourself writing complex code to do something simple, or repeatedly thinking “it should be easier to do this”, that’s a big red flag. If you ever fix a bug by ‘trying something’, but you don’t know exactly why it fixed the problem, that’s a sign that you don’t fully understand your code, and code that has exceeded your grasp is exactly what leads to very subtle (read: hard to fix) bugs.

When you get to this point, you should take a step back (and maybe a break), get a fresh look at your code, and spend some time cleaning it up. No one likes spending time on housekeeping tasks, but trust me, it’s a lot more fun spending an hour here and there cleaning up your code than it is mucking through an overgrown garden of technical debt.

 

…And Beyond

This is by no means a definitive list, nor will every part of it apply to you or your project. Rather, these are just some of the philosophies I try to keep in mind as I’m coding and software architect-ing. There are plenty of others, but hopefully adding these to your repertoire will help you reign in your projects and keep them from becoming too complex!

 

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

If you have questions about managing complex systems, or want to share your own tips, 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.