We made a short video of what the build of the game looked like (on Built In in Unity, around October/November 2023) of the demo version compared to the current version of the game from the latest builds.
We have already covered the whole thing in previous dev statuses, what the changes consisted of and why we decided to do it. In the video, you can certainly see a big difference in the quality of the graphics and much more.
In the video below Outskirts of Morton... yes we know, there's that mission again - on defence, it's one of those missions where we test and embrace the latest innovations before we implement them on subsequent missions/scenarios.
Additional effect like suppression, damage indicators
As you can see on video above we have added also few basic effects. When receiving an direct hit fr example from enemy anti-tank gun or a tank we would see a suppression effect / vignette animation on our screen. Also when actual damage is being taken, another effect is visible - slight red overlay. This is purely a cosmetic change. Design was to make it slightly visible and for sure to not be annoying or intrusive.
Optic ocular improvements
Another new feature is the change in eyepiece magnification when aiming. The closer we zoom in, the larger the eyepiece becomes. The change is also accompanied by a pleasant sound effect.
Extinguishers
After adding a molotov cocktail to every single soviet infantry soldier we’ve ran into problems. Driving into a group of soviet infantry ends in our tank becoming a barbecue. That’s why we’ve added a quick fix - electric extinguishers that just extinguish all fires on top and close around our vehicle.
We know that electric extinguishers were very rare, especially not really exsitant for soviet vehicles, but this is a temporary approach, just to stop a critical bug of being forced to respawn after receiving few molotovs on engine bay.
Proving Grounds
What we are also working is the proving grounds. A place where you will be able to test any tank in the game at will, check ballistics penetration etc. When we will add the X-Ray system it will be an excellent diagnostic place in the game. In the next dev status we will try to record a dev log showing this scene in action.
Thank you and have a good one! DeGenerals
Development Status #64
Dear Tankers,
Welcome to our 64th Development Status.
Long time no see
It's been a while since we've been heard from, we're hard at work optimising the game in everything from code, animations, missions, tanks or weapons. We've been working on everything to reduce RAM and increase FPS. And what specifically have we done? Read more about it below.
Ballistics - Behind Armor Effects and X-Ray progress
We’ve been also working on adding the long awaited X-Ray feature, our current progress is adding dedicated armor for few tanks and adding few new ballistics features:
Spalling (when penetrating vehicle armor)
Shrapnels (every explosion)
APHE effect (explosion after triggering HE fuse and reaching designated meter offset)
HEAT effect (as a cone after first fuse trigger)
Effective armor calculation - based on attack angle
Effective projectile armor penetration - also based on attack angle
AI Infantry anti-tank behaviour
Now that we've added periscopes (not just for the Tiger), we've extended the damage system to the periscopes. Now enemy soldiers with AT rifles will prioritise them when firing at an armoured vehicle.
This is also a part of the game where, later on in development, we want to add vulnerabilities or points on vehicles where a particular soldier or weapon will do the most damage. So, for example, a light AT gun or rifle will not just shoot at the centre of the tank, but try to see if their weapon can damage the main armour, if not then try to see if they can damage tracks, wheels, etc.
If the distance is too great, or the available target is too hard to hit, the unit should remain silent if not attacked - but this is something to be added later.
Playtests status
The main target of our last few months was to implement feedback from the demo, optimize the game and start a small playtest of a new mission. This is taking forever as our new mission was very heavy on performance and required a lot of work - that is still not yet finished.
Right now grab a small peak from our internal playtesting of the map, as we’re trying to get a stable and acceptable FPS and RAM usage.
Right now the FPS is getting where we wanted it to be, but RAM usage is still above 13-14 GB at peak on that mission. We have to lower it at least to 11-10 to even think about sending it to a playtests so still takes time.
PzKpfw V Panther Ausf. A
During the last development status, some of you noticed that the Panther tank can be spotted in the video. We added it to the game when we were working on the optimisation, but there wasn't much opportunity to 'officially' introduce it. So we are doing so now.
Desync fixes
We've been working on a problem that made the game completely unplayable at one point - the desynchronisation of the game. This was caused by large lags, for example when spawning many units at once, especially vehicles, and caused the game to lose at least a few dozen frames. When frames were lost, the synchronised OnChange property notifications were lost. Clients would not respond to the property change and desync was imminent.
We've just finished rewriting much of the project to take a different approach, optimising what and how we load during unit spawn. The desync is gone, but the spawn time can be further reduced and the lags spread out - still to be done.
CPU - GPU Optimization
The biggest optimisation problem we've encountered so far in Tank Squad was related to the way objects were sent to RAM and VRAM. Previously, each texture in our scene, was sent as an instance, but was sent independently. That is, each unique material was treated as a separate object that had to be mapped to the graphics card's memory.
Each graphics card has a limited capacity to process unique textures simultaneously, no matter how much VRAM it has. If we exceed the parallel computing capacity of the graphics card, the system starts to compensate for this problem by creating special paging files in which the CPU will hold textures in RAM ready to be sent to the graphics card. This generates a huge consumption of system memory. This problem already existed in our old demo, which you still have the opportunity to play.
Our solution was to create texture sets that are sent in packets to the graphics card, so that we can store them on VRAM, which the graphics card can access much faster. The difference is that the GPU treats the texture packets as one composite texture. This managed to halve the system memory usage, and resulted in a much more stable Unity experience.
This solution required us to make fundamental changes to the way objects are rendered, which was a laborious and lengthy process, but it has had the intended effect.
At the moment we are still in the process of testing the changes we have made. Our aim is to achieve optimal performance on computers with 16GB of RAM.
Thank you and have a good one! DeGenerals
Development Status #63
Dear Tankers,
Welcome to our 63rd Development Status. Lets take a look what happend during development last weeks!
Devlog #6
VFX update
We are working on updating the battle VFX in our game. Currently the focus is on tracers and muzzle flashes and smoke trails. Generally we are in the middle between being historically accurate and having fun gameplay - some effects will happen more often. For example tracers - some will be exaggerated (enemy muzzle flashes, AI tracers) and some kept smaller. Our vehicle dust generation from shooting and driving, so the player can actually see something.
Thank you and have a good one! DeGenerals
Development Status #62
Dear Tankers,
Welcome to our 62nd Development Status. Lets take a look what happend during development last weeks!
Visors
Over the last few weeks, after Christmas and the New Year, we have continued to work on a new feature in the game, namely crew slots in a tank. As we wrote earlier, it will be possible to choose in-game whether to have players in slots during missions, e.g. driver, commander or gunner.
On the visual side, we are adding and improving the interior elements of the tanks, including the scopes. Pictured here is the new driver's visor on the Tiger I. In addition to this role, there will be new visors for the commander, radio operator and gunner.
Mission overview - Push to Vinogradovka
Preview of the design (subject to change)
Push to Vinogradovka will be the 7th mission in the Germany campaign, and it has a different approach to the gameplay mechanics. The map is divided into 5 sectors. In the middle is a road that the Russians use to retreat. Our task as German tankers was to catch up with the USSR tank regiment, but the Russians were prepared for such a scenario and made the main road impassable.
Each time you play this mission, the sectors available to the player are randomly selected, making it always entertaining and different.
Preview of the map (WIP)
Each sector will have unique terrain and give you a different way to engage in combat. The whole map is a tree labyrinth, so with our approach you will always be going through a slightly different place.
We are currently testing this type of map design and would love to hear your thoughts on it. Our focus here is to maximise the use of the terrain for gameplay purposes, while still making it fun and streamlined for the player, without unnecessary detours just for the sake of it.
Thank you and have a good one! DeGenerals
Development Status #61
Dear Tankers,
Welcome to our 61th Development Status. Lets take a look what happend during development last weeks!
Environment Overhaul
Change from built-in to URP, had to spawn new approach to our visual fidelity. With new technology, came new tech art pass. We had to rework our shader for trees, and other vegetation, because it didn’t meet our new expectations. With that in mind, we got back to the basics, addresing the problems You, our Community had in demo tests couple of weeks ago:
Performance
Overall look & feel
For fixing our performance, we had to cut geometry from trees. GPU Instancing of 30 000 trees with 3-4K trisses, inputted heavy strain on GPU. So we cut triss numbers in half, which gave us much more resources to work with.
Because of these changes, less geometry directly impacted how our game looks from the distance. Unity auto-optimized rendering hides geometry, if said geometry was smaller than one pixel to render (tree leaves started to vanish unnaturally). Our new shader had to compensate this problem. Chosen approach was to use higher values of alpha cutout threshold with the distance from player camera. This way our trees from afar look better than previously, beacuse they are blending better with environment. We also introduced specular, and emission fading, to boost volumetric feeling of vegetation. With this “alpha trick”, we added special depth pass on the shader.
Depth pass write into Z buffer geometric information of every mesh on the scene, which prevents overdraw in actual forward+ pass for semi transparent materials (like leaves for example). This way we are minimizing numbers of one pixel being rewritten by the GPU. To push this approach even further, here comes the reduction of alpha cutout, mentioned above. With this trick, tree leaves obscure more screen space, which reduces even more pixel rewrites.
Also we use atlas textures for every tree and grass in the game. With this approach we are reducing use of RAM, VRAM, and cycles of GPU work to render everything.
For overall look, with URP came new lighting model. Physical Based Shading use physics principles for lighting. The main change is conservation of energy. Light dissipates more naturally in the scenes. Previously our lighting model was based on Blinn-phong approach, which is quite nice approximation of natural lighting, but has nothing to do with realistic lighting.
We also added new tech to the shader itself. Our vegetation now have simple implementation of subsurface scattering, which gives feeling of light going through leaves. We also baked Ambient occlusion to the vertex color, to boost volumetric feeling, and make trees look less “flat”. With vertex information, we additionally changed vertex normals, to make shading more smooth and natural.
Additionally to all, Tank Squad presents its first steps towards dynamic time, and weather. Everything on the scene is computed in real time, no baking involved.
Changes also come in for our sky, fog, and clouds. Now environment as a whole, feels more connected. We introduced to our workflow implementation of decals.
Tank tracks, or some other smaller details will be added to Tank Squad with next development cycles, which give us another tool in creation of believable terrains.
With URP also came in Screen Space Ambient Occlusion, which unfortunately is not meeting our expectations, so we are swapping SSAO for HBAO+. AMD FidelityFX Super Resolution will make its appearence too, so for people that struggle with performance, this should help them resolve this issue to some extent.
AI enhancements
We’ve been pushing the next phase of AI enhancement process, this time focusing on attacking and ambushing.
Quick summary of both behaviour types:
Attacking means either level designer sets up an event with Attack Command for specified squads to:
Move towards specified place or along waypoints
If units get engaged while moving towards the target position they switch to assault behaviour:
The squad is divided into 2 groups, where one group assaults, second group is prone and provides support fire
Every X seconds the groups switch and rush toward their enemies
enemy is close enough (is lvl designer set this as trigger to start combat, we call this ambush radius)
enemy has triggered a specified collider on scene
When combat starts all units switch to one of two behaviour types:
Standard - when they are set to be defensive, so they just stay where they were and open fire
Attack - start actively seeking contact or directly assaulting the enemy that triggered the ambushers
We would like to showcase this in future dev log or even dev stream how this works, as our plans to extend the AI are big. But we have to focus on many different aspects of the game. Thats why we now want to finalize and iron out current AI features and go on to those other aspects.
Thank you and have a good one! DeGenerals
Development Status #60
Dear Tankers,
Welcome to our 60th Development Status. Lets take a look what happend during development last weeks!
Moving project to Unity URP
Ok, a moment but what is all about?
So far we have used an older rendering method when working on the Unity engine in the project. This is referred to as built-in. The switch to the new system has been on our minds for some time now. We had a choice between URP and HDRP, and our decision was that URP was the better solution for the needs and scale of our game. So the time has come and we are in the process of moving the project from Built-in to URP.
What is URP?
The Universal Render Pipeline (URP) is a prebuilt Scriptable Render Pipeline, made by Unity. URP provides artist-friendly workflows that let you quickly and easily create optimized graphics across a range of platforms, from mobile to high-end consoles and PCs.
Summary
We hope that this move will ensure that our game takes advantage of the latest solutions that Unity offers, while also improving the visual aspects and helping to make our game perform better.
The first thing we want to do is to finish the move to the URP. Then we will try to organise playtests using the tools on Steam around December/beginning of the year as soon as we have sorted out and improved the performance and stability issues.
The demo version, which is still playable, will probably also receive an update.
We have a feature in development with the possibility of driving a tank in several players as one crew. More about this in the next dev statuses :)
C1M6 - Ozerovskii Logging Plant
There is a lot in the works for environment. Vegetation will be completely overhauled, and it will be more realistic. This change hopefully will get rid off wierd dark spots within trees and bushes, as you can see on screen above.
AI attack behaviour
We are also pushing what the infantry AI does while attacking. Previously they either rushed into the waypoint of attack careless of a shootout or dropped to the ground immediately when they got in contact with any enemy.
Right now we want the AI that attacks to be more aggressive, use leap-frogging/bounding overwatch (simplified for now) to:
Keep the pace of the advance tied to being suppressed or not, having valid target or not, the enemy that is defending is currently suppressed or not
Move the attacking squad in parts, one part of the squad is static and provides covering fire (with exception of heavy weapons soldiers), other part rushes forward. Every few seconds the roles switch - first group rushes, second covers
AI commanders will use smoke grenades to cover the attack while suppressed or when preparing to launch final assault (close enough to the attack pivot/target)
PzKpfw T-70 743(r)
Another vehicle, this time the T-70 light tank that we had the pleasure to have a look at some time ago. It, too, has captured version that will be used in the campaign.
Thank you and have a good one! DeGenerals
Development Status #59
Dear Tankers,
Welcome to our 59th Development Status. Lets take a look what happend during Next Fest demo festival!
Demo Summary
First of all, we would like to thank everyone who took part in the Nest Fest festival of demos on Steam and had the chance to play our game! We received a lot of feedback, suggestions and reports that we are still reviewing (because there are so many) and learning from.
Thank you for the conversations, questions and discussions for the whole community on our Discord, Steam Forum etc... Thank you also for the videos/streams of our game on Twitch or YouTube.
Releasing a playable version, in this case a demo version, was very important to us. We are aware of bugs, things that are still broken or the amount of content. Our goal was for you to be able to give you something that we are still working on with some missions and tanks. We are very happy that we have managed to deliver a playable game and show you almost 3 years of progress.
The overall feedback we have received from you can be summarized into few most important issues:
focus on adding multiple-player crews in single vehicle
focus on better optimization, so the game runs smoother
focus on tank controls and physics
focus on ballistics and penetration simulation
focus on improving AI vehicles and infantry behaviour
0.3% - Independent (we threat surrenders as “no faction”[/td] [/tr] [tr] [td]Germany tanks controller by AI killed by AI:[/td] [td]60.5% - T-34/76
19.2% - ZiS3 AT gun
17.4% - KV-1[/td] [/tr] [tr] [td]Soviet tanks controller by AI killed by AI:[/td] [td]86.1% - PzKpfw III Ausf. M
5.2% - PzKpfw IV Ausf. H
3.4% - T-34/76
3.3% - PzKpfw VI Tiger Ausf. H1
1.7% - ZiS3 AT gun[/td] [/tr]
[/table]
Whats next?
At the moment we plan to keep the demo available. If we decide to take it down, we will let you know well in advance.
We are planning to run playtests on Steam in the near future to test new things and suggestions from the community. Initially around December. We will let you know - for sure! :)
Beutepanzer
One of the things that was possible in the demo was to capture and repair wrecks after completing missions in the campaign with Soviet tanks, i.e. KV-1 and T-34/76. However, we did not have time to introduce fully functional tank customisation. Nevertheless, below is an example of what you will be able to do with a captured tank in the game - in this case a T-34/76, i.e. a PzKpfw T-34 747(r).
The Germans, who introduced the units into their army, designated the T-34 as the Panzerkampfwagen 747(r). According to the literature, the acquired T-34s took part in Operation Citadel in 1943, and Das Reich units had a dozen of them in stock. Would you like them to be available at the start of the campaign? Let us know what you think in the comments.
The KV-1 heavy tank was also used under the designation Pz.Kpfw. KW I 756(r). More about this probably in the next development status.
In addition to the most important things, there will certainly be more content, more missions, even if you're not just playing as Germans, etc. etc.
Thank you and have a good one! DeGenerals
Demo Update #3
Dear Tankers,
Our first demo update is out! Check the changelog below for more info:
Demo Update #1
Fixed:
Fixed error with trying to leave turretless vehicle on repair section
Pz IIIM and PZ IVH visualizations of engine and turret
Adding queue to tree damage synchronization
An error while loading main menu and game detected that there is no settings.cfg file
Minimap position of markers to match minimap texture
Sounds for Pz IIIM and Pz IVH engines should now not only play idle sound
Battle Progress GUI Item
Vector Aiming setting
Assigned missing DamageableData to all damageables
Footsteps volumes (added limiter)
Added:
Invert Y axis for FPP (when walking as character, when in interior mode (vehicle) or in commander mode)
New sound to T-34 engine
New sound to KV-1 engine
Two version outskirts of morton
Morton Defence, endless infantry squad that support the tanks
Morton Outskirts, Added additional spawning slots and rotated the spawn
Improved:
Outskirts of Morton, added second main objective
Infantry, AA, AT, Static MG indicators
Aim movement smooth for Tiger I in max zoom / fov setting
Thank you and have a good one! DeGenerals
Demo Update #1
Dear Tankers,
Our first demo update is out! Check the changelog below for more info:
Demo Update #1
Fixed:
Fixed error with trying to leave turretless vehicle on repair section
Pz IIIM and PZ IVH visualizations of engine and turret
Adding queue to tree damage synchronization
An error while loading main menu and game detected that there is no settings.cfg file
Minimap position of markers to match minimap texture
Sounds for Pz IIIM and Pz IVH engines should now not only play idle sound
Battle Progress GUI Item
Vector Aiming setting
Assigned missing DamageableData to all damageables
Footsteps volumes (added limiter)
Added:
Invert Y axis for FPP (when walking as character, when in interior mode (vehicle) or in commander mode)
New sound to T-34 engine
New sound to KV-1 engine
Two version outskirts of morton
Morton Defence, endless infantry squad that support the tanks
Morton Outskirts, Added additional spawning slots and rotated the spawn
Improved:
Outskirts of Morton, added second main objective
Infantry, AA, AT, Static MG indicators
Aim movement smooth for Tiger I in max zoom / fov setting
Thank you and have a good one! DeGenerals
Join our Stream in Steam Next Fest!
Dear Tankers,
We would like to invite you for Steam Next Fest broadcast of Tank Squad, which will take place tomorrow (13.10.2023) at 10:00 AM (CEST) on our Steampage.