Creating a living 2D world for Reverie

How do we make the player feel like the world of Reverie is alive? Well there are plenty of things! Let’s talk about the two main way we do this, NPCs and the environment.



Realistic NPCs

One of the obvious things is the other living things of the game: Non Player Characters (Yes, NPCs). An NPC by itself isn’t very exciting. If they have no AI or no interaction with the player, they just stand around taking up valuable game space. Here is an example of that:

This version of Grandpa doesn’t feel alive, he doesn’t move, he doesn’t react to the player’s presence at all.

Now compare that Grandpa to this one (Granny helps too):

This version of the Grandpa looks at the player when they are close to show the player that this NPC has human like reactions, thus making him feel more alive. The Grandma in the above GIF is a good example, if she was just standing still in the hallway, she wouldn’t be very interesting. However, giving her a wandering AI makes her feel alive thus making the world feel alive.

Another thing that NPCs can have to show life is idle animations. Idle animations are what we give to NPCs that don’t have any AI that makes them move around the world. For example, this guy that hangs out in the forest, he shuffles his feet around and scratches his beard, these are two human movement to make him feel real and alive. The flies also help as well, not only do they add movement to the scene, but they also add to his character.

Ok enough about NPCs, let’s talk about the environment itself being alive.

Living Environment

Creating a living and unique environment can be where a lot of the work comes in. Just think about what you would expect to see if you walked outside: flowers, trees, birds, insects, grass, etc. All of these things move. Translating this into a game like Reverie provides a challenge. Having each of these things move definitely helps, but only small animations is essential. Having the grass move as the player walks around is a possibility but that could make the game look a little messy (remember, Reverie is being made for the Vita, quite a small screen).

Here is what a still environment looks like:

As you can see, there is nothing going on here! We have the trees and the grass and the flowers, but everything is static and lifeless. This does not make the world feel alive.

Now look at this:

There are leaves blowing in the wind, there are butterflies fluttering around, the river is flowing up and down the bank. Even with the player’s character standing still the world feels more involved things are happening without the player having to do anything. All of this creates a more life-like scene as the game world acts much like the real world.

Can there be too much?

Although creating a living world is important to get the player immersed in the game, we also have to make sure the screen isn’t too busy. Using the last GIF as an example, if we had our trees rustle around and move, the screen would definitely look more alive, but too much movement can be distracting; especially if there are enemies patrolling the area too! If you pay close attention to each thing that is animating that GIF, you’ll notice that the butterflies are only moving in a very small area, the flowers are only moving up and down, the river’s flow is only subtle, and the leaves blowing over the screen are fading in and out. All of these subtle animations add together to make one big picture; having our tree’s move around a lot will be distracting, and having the river splash up the sides of the bank could get overwhelming too. All of this is something we think about when creating the animations and putting the scene together.

Now to wrap things up

We hope you enjoyed learning more about the behind the scenes of Reverie. If you have any feedback about the length, technical depth or anything else about the blog post, contact us on https://twitter.com/rainbite or https://www.facebook.com/rainbite . We love getting your messages, and we try to reply as much as we can, so hit us up! VivaLaVita!