Dev Diary #5

Hello everyone!

We are so happy to be back and working on Farmwand! 🙂

The holidays have passed really fast, we hope you all had a good rest during this time and are ready for a new and better 2022. In the first devlog of the year, we will talk about some of the more technical challenges in Farmwand's development, and show you how we have solved them to make Farmwand look unique and pretty.

The challenges

Unity offers three different methods to render the graphics, called rendering pipelines : Built-in, Universal and HD. While HD and Universal are newer and in theory faster than the old Built-in pipeline, they each had problems of their own that we had to avoid in order to develop our game.

The HD pipeline, despite being equipped with all the bells and whistles and more than capable of doing everything we needed for Farmwand, was extremely heavy on our test machines. Farmwand is a game that we want everyone to be able to play, regardless of the kind of devices they own. Because of that, our minimum requirements are on the rather low end (*please remember that these requirements may change as we progress with the development of the game).

Minimum Requirements

The Universal pipeline, designed by Unity with lower end devices in mind was, on the other hand, still unfinished and lacking many features we knew we would need along the road (deferred rendering in order to have many lights shining on objects at once, point-light shadows, etc).

That left us with the Built-in pipeline as our choice for the game. However, there were many technical challenges ahead.

From the moment we started developing Farmwand we wanted to achieve a quite unique look for all the characters and environments, one that reminded people of the illustrations on children's storybooks and small clay toys or figurines.

To achieve this more natural look on the objects of the game we use two properties called subsurface scattering and translucency, which refer to the way the light goes through an object and scatters or breaks when doing so, things that the built-in pipeline cannot do by default and certainly not in deferred mode. This pipeline also lacked other newer features such as dynamic resolution, accurate light attenuation, etc.

Our solution then was to modify as much as we could from the internal Unity systems for deferred rendering, screen output, materials and more, rebuilding them around a new central system we called "Bao Renderer".

Bao Renderer

Our Bao Renderer extends Unity's built-in renderer with many new features that are extensively used by our game. Translucent materials are easy to create with up to 32 different, fully customizable profiles for all sorts of things, from human skin to plants, or clothes, to ice and anything in between.

Bao SidebySide 01

Bao SidebySide 02

BaoScattering Character

It also allows us to render semitransparent materials in deferred mode through a process called "dithering" and automatically can fade any objects that are between the camera and one of up to 4 target objects or "players".

Bao Transparency

We also rewrote the way that lights are handled internally in Unity to more accurately represent their falloff following the proper inverse square formula seen in the more modern pipelines (Universal and HD) as well as different systems that allow us to control all sorts of quality parameters.

The 3D portion of the game supports a fully dynamic resolution that can be set either manually or based on performance while the 2D portion (menus, buttons, texts and any other UI elements) remain crisp and rendered at the full resolution supported by the device.

On top of this, and thanks to the fact that every single one of our models is made by us from scratch, things like crops and other plants have additional information packed right into their geometry to allow for effects such as wind motion or in the case of the characters, to define regions of the face like the eyes and mouth to allow for dynamic blinking and expressions.

The work is not yet done, as we are still adding new features to our custom renderer as time goes by, such as refraction effects for ice, glass and water, dynamic fog, snow coverage and more. However, we are happy with the results we've gotten so far and with how they have helped us achieve the look we wanted for the game.

What comes next

During the next months of development, we expect to add many new gameplay elements to Farmwand that we are very excited to show you, as well as many new characters (human and not) that you will meet during your journey. Of course, there will also be plenty of new crops and plants to add!

Near the end of last year our official website also went live, and on it we are now hosting these dev-logs as well. There is another big thing we are working on to get online soon, but that will be the subject of another devlog 😉

If you have read till the end, we appreciate that our "technical talk" didn't drive you away 🙂

This is our first game project, we've been crafting every piece in Farmwand's world by ourselves and doing every effort to polish it to the last detail to make it better and better.

We hope you like what you see and will continue following the development of Farmwand.

Thanks, and see you next time!

You can follow Farmwand's development on Twitter as well!

Posted in Dev Log and tagged , , , , , , , .

Leave a Reply

Your email address will not be published. Required fields are marked *