1. SYNTHETIK 2
  2. News
  3. Dev Update - Development Insights

Dev Update - Development Insights




Hey everyone!
We've got some more inside infos for you today!



[h3]VFX Foundation Work[/h3]
We had a really great idea to streamline and increase quality of VFX effects and their creation.
Right now we have over 900 materials (essentially shading functions based on many varied shaders) for all sorts of VFX effects, like explosions, muzzle flashes and whatnot. This is not unusual and a kind of standard workflow but not nice to behold.



This adds very significant bloat to the project and makes creating any new effects very uncomfortable.
As example there are probably 40 materials just adding some sort of glow, and onother 30 adding some varied rings for varied effects or auras.

In the end, this makes it very uncomfortable in creating new materials and adding to the bloat, to the degree that you want to try out dozens of existing materials and see if something fits by chance. Instead of simply creating what you need by scratch. This hurts both quality and iteration speed greatly.

After realizing that probably 80% of all effects are either based on glows, rings and lines in different styles, and with some good ideas how to streamline the process, we are now building a new foundation for the future.



The first key idea is to use texture arrays (or texture sheets) to build a very small (around 12-16 textures) but very curated selection of textures (different styles of rings as example) and have it all in the same material. Then use a special function to cycle through them, color and animate them them on a particle system level.

Texture arrays pack textures in a 3d stack instead of a classic sprite sheet.

Then we use a noise texture or the same texture array to negatively cut-out shapes on the base shape, which allows for many possible variants. With this design approach you only need 1 single material for all kinds of rings, as the particle system gives you all the control you need to do an infinite variation. Then repeat the same for the other main styles.

Normal Particle:



Interweaved rotations:



Noise Texture based UV distortion:



Magical Secret Multi Distortion:



Now particle system can also control contrast, distortion over time and more :



Final Effect with color, alpha and rotated distortion per curve:



Here you can see some varied effects made for testing with the exact same material, showing the flexibility of the setup. These were also done in just minutes.



The drawback is that these arrays will take more texture memory as they have 12 instead of 1 texture, but with a highly efficient compression (resulting in a memory cost of only around 1mb), smart distortion (hiding the resolution) and with the idea that you use this across the entire project dozens of times, this should pay dividends.

We now have a really next level setup for particles with some very smart interweaving of UV based distortion which gives really stunning results, and as consequence of using the particle system to drive the material values, we can now animate things that would otherwise not work.



[h3]Unity 2021 LTS[/h3]
We did the switch from the 2020 version of Unity, the game engine we built our UniversEdit framework and game logic upon. So far we are encountering one critical crash issue and one with TAA, otherwise the upgrade worked pretty flawlessy. Doing an upgrade in the past (Old unity times) were often unthinkable and something you do for a new game. Even S1 game maker upgrades had months of issues that followed.



https://unity.com/de/roadmap/unity-platform

New Engine features to explore:
Right now we have not yet spent the time to look into all the new things,
however we now have to options to look into GPU performance increases from Nvidia DLSS / AMD FSR, Dynamic resolution and better debugging tools for optimisation.

There is a link to the Unity roadmap above if you are interested, but keep in mind many things are not relevant, implementable or realistically useful even if they look great on the roadmap. Unity DLSS right now seems to have some bugs so we have to wait on that..



[h3]Visual Attachments[/h3]
As part of the item polish pass, we are adding some visual attachments to the characters upon pickup.
These are not for all items, but some select ones where we think it makes sense.
This started when we wanted to add the "shoulder mounted cannon" but it made no sense to add this item without a visual attachment on the character. So we thought "we have the feature, why not add a couple more"

So we made some visuals for a couple of the items here:



We are also thinking about adding some visuals for some few weapon attachments where it would actually be visible, but we'll see.



[h3]Actual Attachments[/h3]

Weapon attachments got a bigger iteration, although not completed yet.
Specific category attachments (Stock etc) got a bigger iteration.
At first the idea of Specifics was that they are all based on the same type of stat.
Stock = Recoil, Front Grip = Run & Gun ....

However when doing the attachment categories this kind of fell apart, as there was a controversy:
If you wanted to match the amount of grips, stocks etc to the amount of Mixed ones, you could not keep following the rule of making stocks about recoil, otherwise it would become very repetitive. However making them more varied robs them of their identity.
On the other hand, having only a few made them feel repetitive as well due to each weapon having 2 specific slots and you see them appear quite often.

Now the new idea was to add 3 mixed slots (Mixed attachments overall feel quite in a good spot even after a double check with new eyes) and 1 specific slot. This would leave the specifics more rare
Also the 1 specific slot is getting around 50% more powerful. Also the specifics should be condensed to their pure essence very much designed throughout.



Not 100% perfect but you can see the barrels are condensed to their essence.
All these barrel options to fit the theme (range, accuracy, projectile trajectory changes..) but
also offer some strong choices in between in varied directions.

- Projectile speed & firerate barrel
- Heavy powerful barrel with a downside
- Recoil barrel
- Deviation and range barrel
- Weakpoint barrel

Also a new magazine category was added for weapons all about sustained firepower,
like the Pioneer C900 SMG. Some effects were also switched around as they were confusing roles of certain types.

After the change the category ones already feel much better and maybe the 3-1 change is no longer needed but we'll try it out.



[h3]Moving[/h3]
After some time working from home, we are now back in a small office in the heart of Berlin, which is great for team communication and focus.



[h3]Build Pipeline[/h3]
We have an automated build pipeline which is automatically building the game exe on every "push" (uploading recent changes) and this automatically returns us if the game does not work at all and crashes right away and more. With Unity 2021 fixes, and some improvements, we reduced the time our servers need to compile the game by half but some things need to be sorted out first.



Pic: 70% of our internal server setup

This is really critical because without that pipeline, someone could upload a big issue which would leave unchecked for days, then you would have to go back into dozens and dozens of uploads until you could find it. Even with the build pipeline, it can be hard to find an issue from the last day or so.



[h3]Automatic Error checking[/h3]
In S1 we would just build the game at the end of a patch cycle and check that all is fine. Now we have dozens of automated checks every day.

Another new thing is that we are adding more error logs to the build pipeline. As example making an action mistake (like forgetting to enable stacks in an item) will throw an error. This is being more expanded in the near future.

We also have automated bots which can play the game start to end by themselves and tell us if they got stuck in some level.



[h3]Multiplayer[/h3]
The big awaited multiplayer mode is progressing really well, we are fixing up things, and make sure every strange case is covered. Some similar issues to what we had in the past are popping up, like trying to open a chest simultaneously giving doubled rewards and the likes.



Some new balancing decisions will have to be made. Shops will finally now show the same things for everyone as example. We are not sure yet how to handle chests for more than 2 players, feel free to suggest some things on discord or here.

The playercount is also still a big concern. Synthetik is traditionally a 1/2 player game and maps are designed for single player for most part, but we also don't want to leave out friends while playing.

So our current idea is to have public lobbies be 2-3 players, and allow friend invites for up to 4 players so you can do it if the 4th friend really wants to play, but its not recommended / endorsed for public games. However we need to do more testing and adjusting first before the final decision is done.



[h3]Specific Category Upgrades[/h3]
So far our UniversEdit framework and the Voodoo action editor have a lot of power in terms of flexible upgradeability of actions (abilities, items, perks etc) but the current upgrade system feels a bit too freestyle and experimental. As such we are working on category specific upgrades, to combine both the flexible upgrades with more role-play elements and identity.



This is in experimentation so no ETA for this. The idea is to use the existing categories of items/Abilities, like "Grenade" "Sentry" "Summon" "Potion" "Beam" "Projectile Firing" etc and create thematically fitting upgrades for these. So upgrading any type of "sentry" would give you options like "Double placement" "Laser Attachment" "Missile Upgrade" "Magazine Belt" "Critical Strike" ...

while a grenade would gain things like "Multi-Throw", or a Utility items would gain aura and utility effects. Our current systems already support all this, but it requires creating all the upgrades and icons and some new features to be able to properly target summons. In S1 such things would all have to be hard-coded and nothing flexible could have been possible.

[h3]Item Sandbox / Update plans[/h3]
For items, gradually more improvements are done, such as adding anticipation effects, or making mines have a trigger sound and time before, or like last patch added effects for grenade throws and such things. A stronger core item sandbox design is also being explored but more about that later.

Overall now that the core systems are set up, we are trying to add more quality and polish now overall to all the existing systems and iterating on these. Items will now get improvements, attachments, later the upgrades and so on based on the biggest need. (Not to forget the big enemy update)



[h3]Environments[/h3]
Environments are also in constant improvement and we have come a very long way since the first playable version on steam already. We keep learning new things and adding powerful new systems to improve our workflows.

We are planning to use our special color palette system for the next update which will make a huge difference in variation but also working on general composition and variation of the levels.





You can see, this is the same blue silo level environment you know, but with a different palette.
We are planning on having 3 palette variations per environment and maybe one nasty one for loop.

More work on shaders and terrain systems is also going on, you can see some tesselation and transistion between ground and walls work here:



More variations and improvements for existing maps are also worked on as always.
There is much more going on but we think this is enough for today.

As you know, the next update is coming out in the next weeks and is about environments and item / attachment quality, and after this we are straight on the road towards the big enemy update and the first multiplayer version.

We Hope you enjoy!
- Team FFG