Ahoy sailors, Captain Zuff reporting for our next Diary post. Today we have lots of information about what we have been working on and about the next big update!
MaFi Games is growing
Before we get into the game updates, on behalf of the entire MaFi Games team, I would like to welcome Jeremy, our new senior software engineer from the UK. We are so happy to have you join us and help us accelerate progress on the game! Here are a few words from Jeremy:
“Hi everyone! I'm excited to be joining the team and am looking forward to getting stuck in. While I have a background in performance optimization, I'll be working on all parts of the game, from bug fixes to new features. I'll mostly be working in the background so you may not see me pop up in person too often, but hopefully, you enjoy the results of my work!”
And by the way, Jeremy has been recently working on the new upgrade tool.
Update 1 plans
Past weeks we have been busy planning the next big update as well as prototyping what is feasible to do so that we can deliver on the plan. The community feedback played a huge role in this process and we are thankful for everyone who is sharing it on Discord, Steam, feature requests site, Reddit, and elsewhere!
We have a lot of plans but in this post, I will share a smaller chunk that we are working on right now.
Terrain graphics and simulation improvements
A pivotal change of the terrain rendering tech is the extension of the maximal number of supported terrain textures. Players have been asking why they cannot dump various materials on the ground and one reason was that our terrain supports only 24 different textures. This has been a big limitation and we are working on rewriting the terrain rendering to support up to 256 different textures! This will allow us to add more textures to the game, increasing visual variety as well as allowing players to dump more different materials on the ground. Mods will be also able to take advantage of this by adding new custom dumpable materials.
Adding more textures is not the only terrain improvement. We feel that the terrain looks too plain and is missing visual richness and variety. Our artist Miroslav is hard at work improving existing terrain graphics as well as adding new models such as grass, rocks, bushes, branches, tree stumps, etc. Take a look at a mock scene below!
Another important change we are hoping to implement is improved terrain physics simulation. One issue we are constantly dealing with is that the material collapse angle is the same for all states of a material. For example, a solid rock on a mountain will collapse at the same angle as a mined rock from that mountain. This often results in cascading collapse of entire mountains when they are disrupted by mining.
We plan to separate “solid” materials from “already mined” ones and have different collapse rules for them so that steeper mountains are possible. We are also thinking about mining changes so that tall mountains are not always possible/easy to be mined from the bottom. This will need more testing.
This is a big topic, but a long story short is we want to make the game look better and one feature that makes a tremendous difference is anti-aliasing.
Currently, we use the “deferred” rendering pipeline in Unity. It has many advantages such as efficient rendering of lights, or powerful post-processing features. However, one thing that it cannot do well is anti-aliasing (smoothing out jagged edges). Unity implements a technique called “temporal anti-aliasing” that renders each frame slightly differently and averages consecutive frames in time. This technique helps but does not work very well. We were experimenting with a different rendering pipeline called “forward” that does support multi-sample anti-aliasing (MSAA).
The decision on the rendering pipeline is not easy and there are always trade-offs. From our initial testing, the MSAA is such a big visual improvement to the game that we are considering removing lights (currently only used on vehicles) and switching to the forward rendering pipeline. This is a relatively big undertaking since many of our custom rendering code was assuming deferred renderer, but we think it is worth the result.
From the comparison above you can see that the MSAA does a much better job of smoothing out the jagged edges on the models, especially in the distance. Also, you can see that the grass on the terrain is visible much further since most of the grass blades have sub-pixel size which is not possible to be rendered with the deferred renderer.
Another benefit of MSAA is that it produces “stable” images that do not change over time. A big disadvantage of temporal AA used by the deferred pipeline is that small objects and edges tend to flicker. This is part of the algorithm that reduces aliasing, but it can be very distracting to see flickering, especially when the camera is not moving. This is especially visible on bright objects such as molten metals where the flicker can be much more apparent. This issue is not present when using MSAA.
We are also working on improving some of our 3d assets. This is going to be a continuous effort but we hope we are up to a great start.
Terrain and rendering improvements lead us to the biggest and most complex feature that we are working on – the map editor. While we have a simple editor that was used to make existing maps, we cannot simply make it available to all of you since it is using Unity Editor UI. It is also very hard to use, even for us, and we wanted to offer more powerful tools that are easy to use.
Another big issue is backwards/forwards compatibility. Currently, maps are represented via code (maps are procedurally generated) and the representation is relatively brittle. Sometimes we need to do manual changes to the existing maps source code to keep them compatible. This obviously would not scale to community-made maps. We would hate to do some changes to the game that would obsolete all maps made by the community.
The solution here is two-fold. First, design a new map representation that will be as robust to game changes as possible. Second, create a new editor that uses the in-game UI that handles editing of the new map representation.
Making a COI map editor has an additional complication that many other games do not have to deal with: What is under the terrain surface matters. COI has a fully dynamic layered terrain and resources are often underground. This means that the editor has to support this. We are still not completely sure how to implement this but we have ideas to try. We will definitely give you an update on this topic as we work on it.
We are also happy to announce that our artist Ondrej has been working on another 30 minutes of music for the soundtrack. We have nearly 80% done!
What else is planned for Update 1
We also plan to implement tree replanting, better product visualization on conveyor belts, improved unit storage visualization, and hopefully add a few more machines for more processing capabilities. We will cover these areas in more detail once we get closer to working on them.
It is hard to predict exact dates as we are diving into significantly large areas. We aim to deliver the update in Q2 2023. We will also drop at least one medium-sized update this year that has some nice improvements and bug fixes.
We also have a few changes that are coming before any big update arrives. These are bug fixes but also a new tutorial system with goals and active tracking of player progress. We hope we will be able to improve the initial experience when folks are learning the game. This update should arrive in a couple of weeks.
This is all we had for you for now but don’t forget, this is just the first wave. There are more features coming in Update 1 and we will keep you updated as we get to work on them.
Thank you for your continued interest and support and let us know your thoughts on Discord, Steam, or Reddit!