Introduction

eXiin is a small indie game company based in Brussels. Officially open since March 2015, it all began with two people. After two mobile games release, Seb decided to come back to his first main interest: making an adventure game for PC and Consoles.

Ary and the Secret of Seasons: How Did It Start

I had the idea of season changes in my mind for a while. In 1997, as a kid, I had made a small game prototype using RPG maker in the corner of my room, it was crappy as hell but the base was set.

That idea remained in the back of my mind but I didn’t know how to bring it to the next level.

In June 2016, in the train to Unite Europe with a few friends, I pitched the idea of season bubbles. I had no idea how to make it and our conversation concluded in “we dare you to do it!”.

I took it to heart and dug around Unite to find all the resources and knowledge to concretize my long time project. Luckily it has proven to be quite easy as the panel of experts was quite big there at the time.

Back from that event, I’ve spent a few days on making my concept work. And that’s how it all began.

Software Used

Simon:

Houdini is one of our main programs here.

For the artists, we have ZBrush, Houdini, and Substance. With those 3 programs, we can make all the models we need for our game.

We have a variety of ways of using Houdini, like modeling, rigging, animations, destruction, procedural tools, Houdini terrain and many more features we haven’t explored yet.

High poly models of characters and organic models are made in ZBrush. All other models (Hard surface low and high) are made in Houdini. Most models we make in Houdini are not fully procedural because they don’t need to be, but there are some exceptions where we put in some more time to make procedural models, like a gear.

The boolean of Houdini is really awesome. It is quick and clean and if the results are not that clean we can procedurally clean it up. For blocking out models this is really great.

Workflow

Simon:

Our workflow can be divided into 2 groups:

High poly from ZBrush

The High poly is done in ZBrush and then we use Houdini for retopo of the High poly. Once the retopo is done we can unwrap the resulting low-poly in Houdini. For the baking and texturing we use Substance Painter.

No high poly from ZBrush

Without a high poly from ZBrush, we often start by making the low poly in Houdini then unwrap the model. To get the high poly, we use some features from Houdini such as “PolyBevel”, it can set a value so only the necessary edges are chamfered.

The second way of getting round edges is by using the round edge shader of Houdini. This gives us a normal map of the low poly in just a few minutes. Using the round edge shader, the maps are baked in Houdini and texturing is then done with Substance Painter.

Round edge shader result:

Building the World

Simon:

For building levels, we, of course, start with blocking out the level. After that, it gets several iterations on it. For filling them we have a few procedural tools to fill levels faster. Note that these are small tools and we don’t have the time for making large procedural tools and maintaining them.

Rock generator (high and low model from Houdini and procedural texture from Substance)

Bridge Tool in Unity

Seb:

The non-destructive aspect of Houdini changed our workflow quite drastically. Very commonly, the level designers start using the temporary assets already textured and while working on the level, everything gets updated and more refined.

Before then, we used to wait for the assets to be finished and then started to integrate it, now we can work in parallel, it’s pretty intuitive and efficient.

Simon:

For the world map, we are still in a block out stage. We are planning to use the Houdini terrain tools for making a detailed version of our map.

VFX

Simon:

All the VFX in the game right now are not in the final stage. Some VFX are just in front of the camera like snow, so if Ary walks in another season we can change the particle in front of the camera.

We also often use the tools of Houdini for the VFX like destruction. The destruction simulations are procedural and by changing the model input of the simulation, we can quickly have different models that are being destroyed.

Barricade Destruction

Changing Seasons Technique

Simon:

Big parts of changing the seasons are shaders, and for that, we have a custom shader.

To be honest, for me it’s a bit of a black box, it was already done when I joined.

But it’s very easy for the artists to make the levels, as we have 4 buttons in Unity, one per season, and we can change the main season at will.

Seb:

As you can imagine, we can’t really disclose the techniques used in our core gameplay, especially in the middle of the production.

What I can say is that it’s not a single trick, it’s a compilation of lots of different features, from shaders to specific 3D assets. All the aspects of the game are influenced, we even send the seasons’ info to the animator, so animations can change accordingly.

In the end, the trick is to use millions of techniques and make it look like it’s just one simple trick!

Texturing

Kwanbo:

For texturing, we use Substance Painter for unique textures and Designer for tiling textures. Houdini here has less influence unless we used the round edge shader, then Houdini bakes all the maps.

In Substance Painter, we start with custom material and smart materials. A procedural way is used here. By using the baked textures we quickly have a base to work on. For example, using the cavity to get the lighter edges and roughness variation in the edge. After a base is made we add some manual touches.

The look of our game is a bit like the classic stylized PBR, Overwatch is definitely an inspiration for us.

Further, we have post-processing in Unity and that makes the models feel more unique and everything fits better in the game.

Animation

Bruno:

Usually, U anticipate the animations that will be performed by the character as I rig it. In this way, I know what I have to implement on the rig to help the animation along and know which animation I will not be able to create.

My workflow is the following: first, I make a basic animation with only the Key Poses and its timing. After that, I commit it to the team and see if the animation is approved. If it is, I polish the animation. Otherwise, I tweak it until the approval of the team.

When animating the characters and enemies, I take care of the gameplay. For example, the attack of the enemy takes more time to ”launch” because otherwise, it will be too hard to predict it. But for Ary, the attack launches way faster and has no latency on it. It depends on the gameplay of the character/enemy.

Lighting

Simon:

For the lighting of our game, we use dynamic lights and the reason for this is because baked light has GI information which contains a color. For example, if we bake an area with grass there will be green values in the lighting data, but if we change season to winter, the grass will be gone and the green light will bleed on the snow… That’s not very clean, let me put it that way.

What also makes a big difference is the custom shader we have and how light reacts with it. This result in a unique look and not in a default Unity look.

Also, post-processing plays a part here where we can increase the brightness of the colors and make everything fitting better together. The post-processing used here is the standard one of Unity.

Challenges

Seb:

Our biggest challenge was financing our project in Belgium. It’s awfully complicated; for a while, one would be paying more taxes than you have incomes. And in the end, you just have to wait until it passes. After about almost 2 years we have found a publisher who is helping us a lot not only with financing but also keeping track of the project.