After finishing up with combat logic I started to work on game world and assessing amount of work. And I figured that there is a LOT of work… Also I started learning new software but lets go step by step.
Game world settings
In one of the previous devlogs I already explained the structure of game world.
We can split the game world into 3 parts:
- Introduction. This is the tutorial part of the game where character acquire all his abilities and learn how to use them.
- Exploration. This part contains main hub and 4 big areas to explore. There is the boss at the end of each area.
- Finale. In this part player meets the final boss of the game.
I decided to focus first on Exploration phase and define 4 big locations. For each of them I had to
- Define visual setting - how the area will look like, the mood and vibes.
- Gather references and concepts.
- Find unique game mechanics for each setting. Ideally each setting should offer a new approach to how to use player’s special abilities. So even if player will come to the area without having some of them she still will have some new experience.
Also each are should contain at least 1 unique enemy, but this is beyond the scope of this article.
Visual settings and references
When I was choosing visual settings I was taking into account not only my personal preferences but also how these settings will work with each other to create interesting contrast.
I decided not to spend time on my own concept arts and focus on searching suitable references with their following adaptation. So I spent a couple of days in Pinterest and gathered enough material to work with.
After some brainstorming and filtering I ended up with following locations/
In this area there is a lot of open space, relatively small platforms, a lot of jumps and falls. To reach the boss player has to climb higher and higher to the very top.
In contrast with floating islands there ruins create feeling of a closed, cramped space. Player has to go deeper and deeper to reach the boss.
This is organic location. There are straight lines and spikes and acid play role of hazard for the player. Mushrooms are important part of level topology, they can be size of a tree and player can run and jump on them.
In contrast with organic mushroom kingdom this area is monolith built with strict straight lines and sharp angles. There is no grass of trees or anything green, but a lot of cogs and mechanisms.
Gathering images in internet is fun but sooner or later you have to make assets for your game.
I already mentioned that the scope of the projects is quite big. If I would try to sit down and model and texture every single asset it easily could take months if nor years. I had to find another approach.
Of course you can buy assets. I personally don’t think that it’s a good idea but it is very hard to avoid it completely. You can save some time by buying some “filler” objects on the background that don’t attract a lot of player’s attention. Another option is some generic objects like rocks. But they still need to be adapted to fit your visual style (at least shader and material).
Those who follow me know that I spent significant amount of time on shaders and some procedural stuff. For example I made procedural animations for spider legs and snake and fully procedural tentacle that generated in runtime. You can read about it in dedicated blog post. In general I really like this stuff.
If you are also interested in procedural generation you probably heard about specialized software for simulations and procedural generation. I’m talking about SideFX Houdini.
My introduction to Houdini
I was thinking about give Houdini a try since long time ago. In the internet you quite often can see phrases like “Houdini is weird”, “It not fer everyone”, etc. but despite of that I decided to spend some time and dig a deeper to see how it works in reality.
I found some useful YouTube channels with great Houdini tutorials and also started to reed official documentation.
Procedural generation is great and Houdini bring this process to whole another level. But when I was thinking about pipeline it felt weird. You generate procedural asset in Houdini, export it as FBX, import it into Unity. It is more or less the same as modeling in Blender but with procedural tools. It doesn’t give you much boost in productivity.
But then I learned about Houdini Digital Assets and it changed everything…
Houdini Digital Assets
When you work in Houdini you create a nodes structure that generates geometry based on provided algorithm. Houdini Digital Assets (HDA) is basically a container for your nodes that allows you to pack them and transfer into game engine (Unity or Unreal) and create procedural assets right in your game scene. To be able to do so you need to install Houdini Engine plug-in for your game engine.
As an example here is a video from official SideFX web site. You can see that you can feed simple primitives to HDA and generate new geometry based on them. Basically, you can generate game-ready assets based on your blocking mesh.
I realized that this could be a game changer for me. I downloaded free Apprentice version of Houdini and started to learn. My idea that I will be able to create tools that will allow me quickly generate a lot of variations of assets. In long term it should save significant amount of time especially when we are talking about environment assets.
After a couple of weeks of reading manuals and watching video tutorials I started to feel some confidence and decided to make something on my own. Not something abstract or generic, but something that I can directly use in my game. First of all I upgraded my Houdini license to INDIE and installed Houdini Engine for Unity.
Then I had to choose what to do. Something not very complex but not so primitive. I could have start with trees for example. But there are already tons of tools for trees generation. Rocks are not so exciting. I checked my reference sheets to find something interesting that can have a lot of different variations…
Based on these criteria mushrooms seemed to be the perfect candidate for my very first HDA. I double checked references and listed all the parameters that will help me reach required level of variety.
After a couple of days my first HDA was ready and I exported it into Unity. Ten minutes later I had these procedural assets created directly in Unity:
Also I created special shader that HDA automatically assigns to all created mushrooms. There is no textures, everything is controlled by vertex color. Also I tweak shading, rim light and glowing areas.
Apart from fantasy mushrooms you can create more realistic variations:
And also mushrooms of odd shapes:
The process of creating these mushrooms looks like this:
I’m very satisfied by the result of working with Houdini. I’m planning dig deeper and learn more stuff on that topic. In parallel I’m going to start creating library of tools to create procedural assets inside Unity. I will showcase some of them later in this blog.