Happy New Year 2017!

Posted on Leave a commentPosted in Sane

Happy new year everyone!
Lets celebrate with the first environment screenshot!


Here is hoping for an even better 2017, well start releasing more screenshots, gameplay and information about our game “Sane” very soon!

-the Mind Games Interactive Team!

Moss Material Layer Tutorial!

Posted on Leave a commentPosted in GameDev, Tutorial

Feels like all we are sharing recently  are tutorials and no real updates on the project 😀
I can assure you that the content of these tutorials actually goes into the game!
Were currently doing a final art pass on one of our environments so I will be able to share some ingame screenshots for that soon, I think it looks amazing and I hope you will think so too!

With that said here is another tutorial:

This one covers out moss material layer and how to create it yourself. Hope these are useful to some of you 

-Lukas

Meet Zoè and her German voice – Maria Kepner

Posted on Leave a commentPosted in Sane

This is the first in a series of blogposts which are going to highlight some of the main characters in our game “Sane” as well as their German voice actors!

We start with Zoè, a confident and smart but bitter and cold young woman.

She is the daughter of the Conrells, the family that takes Ameliè, our protagonist, in after she looses her parents during the events of WW1.

While the head of the family has his own reasons for accepting Ameliè in his house, Zoè has nothing but disdain for her.
She reminds her of her own childhood, as she too lost her mother early on and her father, Arthur, neglegted her in favor of his work ever since.

That Arthur acts more like a father now than he ever did before puts her on edge and makes her cruel towards Ameliè.

 

 

The german voice of Zoè is the talented actor “Maria Kepner”!


Since graduating from the Film Acting School in Cologne in 2013 she has played in the famous german tv show “Galileo” and quite a few other shortmovies and theater plays.

We had a great time during our first recording session and would like to thank her for her great work!

For a full list of her works check out her profile @ schauspielervideos.de

 

Thats it for today, stay tuned as we have quite a few more characters to tell you about.

 

-Lukas

Mossy Rocks!

Posted on 2 CommentsPosted in GameDev

We added a moss material layer to our rocks!
It has some nice parameters and should allow for really fast placement.

Its xyz-worldaligned so that we can use it for nice blends between meshes.
The parameters drive how much of the rock it covers, how strong the normalmap should influence the result and if there should be a color overlay on the edge of the intersection (for nice brown moss around the edges)
Vertex color is used to mask the whole effect by hand.

 

Let me know if this is something you would be interested in seeing a breakdown for.
Ill do one… someday… 😀

 

-Lukas

Bringing the world to life!

Posted on Leave a commentPosted in GameDev

Movement and interaction is a important part of an immersive world so we started adding wind and player interaction to our foliage:

Our system uses vertex color to drive the world position offset of the material, very similar to what you can find in the unreal engine content examples.

The reception of the breakdown for the landscape material we did yesterday really surprised us (in a positive way). Please let us know if you are interested in more content like that.

-Lukas

Landscape Material Breakdown!

Posted on 10 CommentsPosted in GameDev, Tutorial

By popular request Im doing a quick breakdown of the landscape material that we showed in our last post!
If there are any questions or if you would like an even more indepth look at it in form of a video tutorial or something let me know in the comments 🙂

This is the material we are talking about:

It has distance based tessellation, height blending between the textures and procedural puddles that you can paint on top.

Lets start with a look at the complete material:
material01

And its settings:

materialsettings

Its not using a mask since we dont need holes but it should not be a problem to add that to your version.

And this is what an instance looks like with all of the settings that are exposed to the artist:

materialinstance

The interesting part here are ofc the puddles.

So lets break down the Material, starting with the UVs:

material02_uv

Nothing too crazy here, just a world position and a multiply to control the tiling. This means the texture will stretch on steep angles, not important for us since we wont be using it there but you might want to change this if you plan on using it for rocks and stuff.

Next up is one of the material layers:

material03_layer

We put our materials into functions to keep the graph from getting messy and just expose the relevant settings as parameters. Were also feeding it the world position uvs.

Detail shot of the function:

material04_layerdetail

Pretty simple and regular setup with a few inputs for the parameters. We have the roughness, height and ao stored in one texture to save memory. Since the material attributes do funny things to the scalar value of the heightmap and were going to use that to mask stuff I created a separate output for that.

Important: If your using a lot of textures or layers you need to set the texture Sampler Source to Shared:Wrap.

We then use a regular Landscape Layer Blend node to blend the layers:

material04_blend

The important part here is having an unused alpha blend layer as well as having one layer that is going to cover the whole landscape as weight blended. We use this to get rid of problems with black spots on the landscape as well as it not compiling properly and showing the grey worldmaterial when more then 3 layers are used with tessellation.

We also use the separate heightmap output for the height input on the blend node.

Since we arent using the material attributes for the height information we need to blend that separately:

material05_blendheight

Here we sample the layers mask information and use that to lerp between the different heightmaps.

Once the materials are blended we add the puddles ontop:

material06_puddles

This layer has a lot of parameters that arent really necessary, I was experimenting with my procedural setup which is why I have so many 😀
We input the blended Material as well as the blended heightmap and the layer information for the landscape “puddles” layer that we sample here into this function.

This is  screenshot of the puddles function:

material07_puddlesdetail

Its still really messy as I havent found the time to clean it up yet. Its basically a custom blend, using the heightmap to blend between the terrain material and constants as well as a 3-vector for the puddle values. The cool stuff is in some features like normal blending and wetness on the edges, color and opacity for depth or dirty puddles and a option that allows us to shift the height of the puddle from nothing to covering the whole area. All of this is then masked by the puddle landscape layer information.

You can take a look at some other puddle tutorials to get similar results, most of them use vertex color to blend in the puddles, just use the layer information instead.
Edit: Added detail shots of this graph for anyone interested in what exactly it does.

Final step is the tessellation:

material08_tessellation

Here we use the heightmap information to get our worlddisplacement for the landscape material (upper right).
Our tessellation  setup is dependent on the camera location and has the vector length in there since unreal likes to tessellate the whole object otherwise (which we obviously dont want) We have some extra parameters to control the fade distance, offset and tessellation resolution.
We use a material parameter control to input our overall tessellation strength since we want to be able to control the effect via the users option menu (on all our materials at once).

And there you have it!
Keep in mind that this is a pretty expensive material and we only use it on the highest settings, its probably not something you should use on very big terrains and fewer layers is always better for performance.
Let me know if this was of any help or if you have any questions in the comments!

 

-Lukas

Behind the scenes: Terrain shading!

Posted on Leave a commentPosted in GameDev

Continuing the work on our textures we have started work on our terrain materials and just finished the first of many:

terrainmaterial01 terrainmaterial02

It blends between the textures with their heightmap and has distance based tessellation so that we can displace it and give it some real depth.
We can also paint in procedural puddles that conform to the underlying textures:

terrainmaterial03

Here is what the same scene looks like without puddles:

terrainmaterial04

The puddles have settings like depth to control their color and opacity or edge wetness which makes them very versatile.

Since they are completely procedural their material function is rather complex and we still havent really cleaned it up so it looks like a spaghetti monster:

pasta

We still need no make some tweaks but were already happy with the result!

Were also scheduling the voice recordings for the demo right now so we are going to be able to share details on our actors and their roles soon!

 

-Lukas