Hello Saeges!
It's been a while since our last post and there is a reason for it. We've been doing a lot of work on the technical aspects of the game, something that often goes unseen but is the backbone of everything to come in the near future. This little post is dedicated to those of you who love to take a look behind the curtain and see what game dev looks like. It will be split in parts, so let's begin!
Part one : Rendering
Early on we decided that the "default" look of Unity was not what we wanted for our game. The materials looked a bit flat, the lighting was too simple and we could not achieve the right "tangible" look on our models. We wanted them to feel like old-school stop-motion figurines come to life, and to do that we needed them to have the slightly squishy look that translucency provides.

Unity offers such features on HDRP, one of its new rendering systems. However, this new system is not fully compatible with lower end devices and is considerably more demanding. This went completely against our guiding principle that Farmwand should be experienced on all sorts of PCs and, at some point, the Switch. Its other new rendering system called URP, while fast, lacked a lot of the features we were looking for at the time. Thus, we decided to work with the older "built-in" rendering system, open everything we could and modify it to our liking. We called our custom fork of it "Project Bao". And the very first thing that "Bao" provided us with was a unified materials system with full support for up to 32 unique translucency profiles with a virtually unlimited amount of lights.

As time went by, we added more and more features that integrate entirely with our system. We added an obstacle detection pass that automatically fades any object blocking the camera from seeing the player, which runs entirely on the graphics card:

And lately we have been working on even more features, such as fully interactive vegetation and objects that can be bent as you run by or flutter in the wind. Little systems for cloud shadows, snow and rain coverage for those stormy seasons, emission based lights and more are being added, all while keeping the whole thing running at 50+FPS during stress tests in an old Intel HD 620 (of course, with several settings in low-quality mode). But we will talk more about this in a moment.
Most of last month was spent rewriting our shader code to target much lower end devices while keeping the visuals intact. This means the game runs at a slightly higher quality on older devices, and much faster in newer ones. But the rendering quality is not the only thing we worked on.
Part two : A segmented world
For many months we were building our world using a series of tools from the Asset Store, as that is what you have to do most times as a tiny team to save precious development time that you can then put into the actual game. We had tools to manage our terrains, tools to manage snow, tools to manage the vegetation and more. But there were some big problems.
Each system handled some things in a different way, each one had limitations that had us finding workarounds for different features of the game and each one had unexpected issues when interacting with each other. Some tools were even abandoned while we were making the game.
We could not leave the world of the game up to something we could not trust 100%. So, we decided to get rid of most of those tools and focus on making our own set that we could ensure would work on consoles and any device we targeted, tools we could fully tailor to what Farmwand is. We talked a bit about this in our previous post, but now you can get the whole picture. The pros of switching to our own tools greatly surpassed the cons of spending extra time, in a way, reinventing the wheel.

Our new vegetation system is now well in progress, with tons of small editors that allow us to set up & optimize each blade of grass and flower and how they will interact with the player and other creatures / objects in the world. It is part of our "segmented world" approach, which splits the game into tiny sectors, each of which has its own piece of data for everything it contains. These sectors are processed and adjusted in parallel which makes them very efficient, and since all of them can be modified at will that means that everything in the game can, in theory, be interacted with or used in some way by you. That makes the world feel more "alive".

We are also letting go of Unity's terrain and going for a more old-school approach, where we will model our landscapes externally and use our own rendering tools to handle them in game. This will be not only more performant but will also pair very nicely with all the weather effects we are working on.
Part three : A more open development
And finally, it's time to talk about what is to come for Farmwand. We are approaching the two year anniversary of the start of this project, and while a whole lot of the first year involved planning and early prototyping, we are now more prepared to share with you a bit more about how the game is coming together. Very soon you will be able to see on our
official Discord server a new channel dedicated to our roadmap. There you will be able to see the different features of the game as they move from planning, to integration and finally into completion. In
Discord as well as at
Patreon and
Reddit we will post some more in-depth updates on the different portions of our roadmap and ask our community for feedback, so this is the perfect moment to join if you haven't already!
And very soon we will be preparing a series of posts detailing what exactly you can expect from Farmwand, especially if you are on the fence about what makes our game truly special.
We are very excited to have you all on board and to include you all a bit more into the development of the game, sharing our steps (and missteps) as the game grows and evolves, and letting you have a look at how its world takes shape.
Until then, and until next time. See ya!
J & D
[ 2023-08-28 18:38:55 CET ] [ Original post ]