1. Tank Squad
  2. News

Tank Squad News

Development Status #31



[h2]Dear Tankers,[/h2]

Welcome to our 31st Development Status. You can see on what we were working the last three weeks.

Tank Crew
We’ve added a tank crew into a tank. That means that we are programming different states for the tank, for example, if the gunner is dead, the tank is unable to shoot, if the reloader is injured, it takes more time to reload, etc.
The tank crews will have dedicated animations and players will be able to see their reactions to specific events such as the Tank being hit, reload, shot from the main gun, etc.
We have added basic animations for now, and we will be adding more animations for each crew member during production


Player’s decisions
In the demo version of the game that we plan to release (and then in the final version), players will be able to take a series of decisions that are going to impact the course of the game. At the beginning of the game, at the repair station, players will receive information about the next mission. The information will consist of what kind of enemy units they can expect in what proportions if the area is for close distance or long distance combat if they can expect mines, obstacles, bridges, etc. Also, each mission is going to have different scenarios. You will be able to choose if you want to attack from the left/right flank or center. Each scenario is going to have different characteristics. Players can call for recon to receive additional information, but calling a recon will cost some resources.
Using those information players will have to take a decision on which tanks are they going to use (light, medium, heavy), what kind of infantry are they going to take with themselves, and if they are going to need artillery support or maybe airplane support, etc.
We have to balance each player’s decision in such a way, that if they take wrong decisions, the game will teach them how to make better decisions to win a mission without making it too difficult to learn or without taking too much time. On another side, when players take optimal decisions, we want to reward them for it, but at the same time, we do not want to make the game as a result of their decisions too easy, as it can become boring after some time. We all expect a challenge that is not too easy nor too difficult. The challenging part for us, developers, is that different players are going to play our game.

Soviet anti-tank mine TM-35
TM-35 - A small, rectangular Soviet anti-tank mine, widely utilized during WW2. Comprised of a metal case, carrying handle, and a raised pressure plate in the center. The mine's load was 200g blocks of TNT and could be packed up to 2.8kg of those. Despite being called effective, it did not have the punch required to cripple German armored vehicles sufficiently.


Levels junction
To make the work of our graphic designers and level designers easier, we needed to abandon one large battle scene approach. So to keep battles scale big, we developed a system that allows to easily save a collection of sublevels. Such a collection, in part or in whole, can be loaded in the editor or during the game. It will also make it easier for us to optimize the game. So right now we have game logic, terrain with props, lighting separated in sublevels, which we join together when game is loading.

Panzerfaust animations
Animation set for soldiers with the Mauser Kar98k rifle and panzerfaust as an additional weapon, as we said in the previous stage of development, units with anti-tank weapons will be visible to players.
[previewyoutube]https://www.youtube.com/watch?v=t0mHMzHxkBM&feature=youtu.be&ab_channel=DeGenerals[/previewyoutube]

New team members
Recently two new junior 3D artists have joined our team to help us with creating 3D assets. Their tasks will consist mostly of creating content for the environment of the game but also in creating some weapons and vehicles. TM-35 mine and power set models that you have seen above were made by those junior artists.

Thank you and have a good one!
DeGenerals

Development Status #30



[h2]Dear Tankers,[/h2]

Welcome to our 30th Development Status. You can see what we have been working on for… yeah. It's been a while, right?

For a long time, we managed to publish development statuses regularly. Unfortunately, by focusing on testing, optimization, and documentation, we didn't had anything interesting to show you and we preferred to avoid uninteresting publications.
However, after this break, we are back and we hope that you missed us as much as we missed you!

Vertical Slice

We’ve been focusing the most on transitions between repair and battle levels. When a player launches the game, the first thing they see is the main menu. They start a new game, first, they are going to select a campaign and create a room so other players can join them. Once they start the game, they begin at the repair station, where players spawn the vehicles they want to use, prepare them for battle, load ammo and fuel, customize them, select a strategy for battle, manage resources and choose some support units. Then during the battle, players' tanks will receive some damage, they will spend resources, gain new resources, lose some AI support, etc. After the battle, players depending on if they have won or lost the battle, will go back to the previous repair station or move to the next one. Also, they will be able to restart a battle. All the information between players and levels has to be transitioned and synchronized.

Panzerfaust animations

A series of animations for soldiers with Panzerfaust and Mauser Kar98k Carbine. In gameplay anti-tank grenade launchers like Panzerfaust will be visible on units if they are equipped with them to inform the player that such unit is a bigger threat than the rest of the soldiers, of course in case of Panzerfaust it will be thrown away after use.
[previewyoutube][/previewyoutube]

Repair Scene

We are making a new design for the repair scene. It includes:
  • Headquarters
  • Quartermaster
  • Human resources
  • Field hospital
  • Infantry
  • Logistics/sappers
  • Scouts
  • Repair Stations
  • Player spawner/despawner
  • Vehicle parking
  • Graveyard
  • Spare parts
  • Rearm station
  • Refuel station
  • Paint shop
  • Bergepanther


On the repair scene, we’ve been developing an interaction system with NPC. It required some changes in the configuration of characters. Players can approach NPCs and interact with them, which will be required to gain or convert resources, gain or sell vehicles, set a strategy for a mission, etc.

Game economy

We’ve begun to work on the game economy. Here are some basic questions that we have to answer:
  • How many resources and vehicles player will gain with each mission?
  • How many resources will we drain from players in each mission?
  • How expensive are going to be parts and vehicles?
  • How much fuel will the vehicle consume in each mission?
  • How much power will the player gain during the progression of the game?
  • How quickly vehicle parts will need maintenance?
  • How expensive is going to be a new vehicle?
  • How much AI support will the players be able to take with them to each mission?

The difficulty in designing and balancing the game economy in Tank Squad is in the fact that we have to balance repairing vehicles, balance battles and do all the balancing for 4 players in multiplayer simultaneously. So we are going to do a lot of iterations and testing to find an optimal solution. Sometimes a small change in the game economy can decide if the game is going to be too easy, too difficult, or impossible to finish in certain circumstances. We are going to use mathematical calculations and statistics in developing game economy but we won’t rely only on that. We are going to play the game over and over again and take some intuitive decisions as well.

Economy structure (code)
We’ve written code for economy structure. It contains:
  • Resources pool
  • Resources container
    - Static
    - Mobile
  • Resources migration
  • Resources converter
  • Resources inventory
  • Pricing
  • Resources source
  • Resources drain

The game will feature a variety of gameplay when working with resources. For example, two separate mechanics were developed for using a liquid type of resource (fuel and oil) and for a solid type of resource (for example, ammunition for a tank). Thus, we want to bring the player as close to reality as possible and add interest even to such details. We have also made progress in interacting with such objects. For example, now the player can refuel his tank using a canister, which first must be filled at a special point on the repair station map. We’ve written a code for moving a resource from one place to another using a special container (in that case, a canister).

Environment: Railroad

As you’ve probably seen in previous development statuses, we are working on the Prokhorovka map. It contains a railroad and train station. So we’ve been working on that too. Here is a screenshot of new 3D models for that specific map.


Thank you and have a good one!
DeGenerals

Development Status #29



[h2]Dear Tankers,[/h2]

Welcome to our 29th Development Status. You can see what we have been working on for the last two weeks.

We’ve been asked recently by a member of our community discord, if we could explain what do we do to optimize our game to make it possible to run smoothly on regular PCs. Today we present some of the techniques that we use to achieve that.

Level of detail

Most 3D models in our game have a LOD (level of detail) version. Each LOD version is shown depending on the distance from the player’s perspective. The main difference in LODs is the number of triangles and vertices in the model. This optimization technique is applied in 3D models of environment, vehicles, characters, weapons. A model seen from far away does not need the same amount of detail as a character seen from close. Each model has got a so-called LOD group.



On the left, there is the most detailed version of the character. As you can see, its topology is the most complex one. On the right, there is a simple version of the model which will be seen from far away. Fewer triangles being rendered on your computer at the same time means better performance.

In some cases, the last LOD (farthest from a player) is just a 2D image of a 3D model. From far away you can’t tell the difference but the difference for the GPU is very noticeable. A 2D image has got 6 triangles, meanwhile for example a whole tree can have 15k triangles. This 2D image is what is called an impostor or billboard.



Another trick that we use is that we do not render shadows for objects that are far away from the player.

Bullet pool / VFX pool

To optimize the performance of our game we are developing an object pooling system. During gameplay, each object dynamically spawned in game, like bullets, effects, etc. is stored in a dedicated pool. Each time we want an object to appear on the scene, instead of creating it, we take it from the pool of previously created inactive objects and activate them with proper values, then instead of destroying we deactivate it and restore it back to the given pool. This way of reusing previously created objects helps to relieve the processing power of the CPU.

AI

For AI we split it into separated logics, so it can combine them as we want, but we save Ram and CPU this way. This also allows us to switch between commands, so it saves CPU as we have only the current one and previous command (only if needed) at a given time on all squads. We also made that finding big obstacles is only made by the squad leader, and he sends that info to others in his squad. A similar thing is with finding enemies, Leader checks if any of the units have an enemy, if he has it, he checks whether this enemy is still within range, whether the unit still has a weapon for that opponent, etc.
  • If there is at least one such unit, then it should be searched for a new enemy, only then the leader looks for potential enemies
  • If he has a list of potential enemies, on its basis, the unit that needs a new opponent selects the enemy accordingly, checking whether this enemy meets these requirements above (I have a weapon on him, he is within range)
We use our custom pathfinding that bases on the system that is used also by the game Easy Red 2, made by our friend Marco. It is more optimal, dynamic, and easier to use than Unity NavMesh, as we only have to set which collision layers are obstacles, and AI will find them.

For Infantry

Now code of AI infantry of player that follows tank is executed on this player client side, before that all AI was executed on the host side. Infantry gets logic of taking covers only when they are got near them, thanks to mentioned before commands system, so another CPU save.

For Tanks/Vehicles

In the case of Vehicles, we rewrite the way of syncing them in multiplayer. Now they send/receives only info about their movement as position and rotation, but we already had one idea of how to make it even more optimal. And all other calculations are made on the client side.
For Cannon and Turret, we send only info about rotation on one axis (x and y, respectively) and only for a weapon that is currently used.

BattleManager

We use BattleManager to control the course of the battle, it collects references to all objectives, events, and AI spawners in a given battle scenario, in the form of so-called Dictionaries. This allows us to use one of PhotonView instead of having a separate one for each of these objects. It also deals with their synchronization, as well as turning on / off further objects under a given scenario.

Animations

Also in the last two weeks, we’ve prepared some hand order animations using motion capture technology.
[previewyoutube][/previewyoutube]
The list of hand order animations:
  • Attention
  • Unite
  • Stop
  • Lie down
  • Move left/right/forward/back
  • Follow this way
  • Stop/Start engine
  • Move slow
  • Move back

Thank you and have a good one!
DeGenerals

Development Status #28



[h2]Dear Tankers,[/h2]

Welcome to our 28th Development Status. Check out our two weeks of work.

Motion Capture
We’ve rented a large room to record animations using motion capture technology. On the floor, we’ve stuck a tape in 8 directions every 45 degrees, which is long enough to make 3 steps. We’ve bought some ASG replicas of Luger, MP40, and Kar98k.

- Walking
- Walking with weapon
  • Pistol
  • Pistol while aiming
  • Submachine gun
  • Submachine gun while aiming
  • Rifle
  • Rifle while aiming

- Crouching
- Crouching with weapon
  • Pistol
  • Pistol while aiming
  • Submachine gun
  • Submachine gun while aiming
  • Rifle
  • Rifle while aiming

- Crawling
- Throwing grenade
  • Stand
  • Crouch
  • Crawl

- Melee combat
  • Pistol
  • Submachine gun
  • Rifle
  • Kick

- Fall
- Hand Signals
  • Attention
  • Turn on/off engine
  • Come to me
  • Go right/left
  • Slow down
  • Stop
  • Move back


And others,

Overall we’ve recorded over 200 animations.

[previewyoutube][/previewyoutube]

[previewyoutube][/previewyoutube]


New programmer
Two weeks ago our team joined Robert Biały, a new programmer who is responsible for the configuration of vehicles, which includes:
  • Assigning correct model parts to its functions (hull, turret, wheels, tracks, engine, etc.)
  • Assigning collisions
  • Optimization
  • Armor system
  • Penetration of armor depending on the bullet, distance, and angle
  • Crew slots
  • Shooting system
  • Driving system
  • Configuration of interactive parts
  • Customizable parts
  • UI integration
  • Assigning sounds
  • Assigning VFX
  • Configuration of shaders and materials
  • and much more…

Configuration of vehicles for Tank Squad is complicated and it requires a lot of work and skill. Simultaneously we’re working on a vehicle template that will make configuration easier and also we automate some configuration processes.



Stielhandgranate
Stielhandgranate was a German hand grenade easily recognizable by its distinct wooden handle. It was a standard grenade for the German Empire during World War I, and Nazi Germany's Wehrmacht during World War II. Its unique appearance led to it being called a "stick grenade", or "potato masher" in British Army slang, and it remains one of the most easily recognized infantry weapons of the 20th century.




VFX inside the tank
The life of the tank's crew it's not always a bed of roses. Here are a few VFX from the gunner's point of view on not very pleasant situations: hitting tank by AP bullet and bullet shot through his visor.
[previewyoutube][/previewyoutube]

Thank you and have a good one!
DeGenerals

Development Status #27



[h2]Dear Tankers,[/h2]

Welcome to our 27th Development Status. You can see what we have been working on for the last two weeks.


DT machine gun

The DT is an extensively modified version of the DP machine gun, intended for tank use. The changes mostly included dimension ones, so that the weapon will fit in the more or less universal gun mounts. The magazine was reduced in width, but made slightly higher, making it accommodate 60 rounds, more than in a standard DP pan magazine. The stock was made collapsible and a pistol grip was added, instead of a wooden fixed stock. Lastly, the barrel shroud and flame suppressor were removed and a ring for the tank mount was added. One feature of the gun is if needed, the gun could be quickly dismounted from the tank, the bipod could be mounted and the stock extended, making the gun usable for infantry purposes.



Data Base

We’ve created a database for the content of the game. It contains the most important information about the campaign, mission, and units. It will improve and optimize workflow and allow us to configure quicker content for the game. For example, now we can set what kind of units with what specific characteristics should spawn. For example, an infantry squad that contains riflemen, AT, leaders, etc.

Trenches

This week we have also continued our work on modular trenches. As you can see on the screenshots below, we have used additional assets such as wooden planks and sandbags to make them look more realistic and attractive to the players.



Animations

We have prepared new animations for PPSH and MP40
[previewyoutube]https://youtu.be/hNneuZI0OJE[/previewyoutube]
[previewyoutube]https://youtu.be/uwo5nRwg87s[/previewyoutube]

Impacts
There are some effects of impacts of infantry weapons on different surfaces like concrete, bricks, wood, dry and wet sand, mud and water. VFX artist is currently working on effects of other surfaces like trees, bushes, metals, fabrics and more complex ones, like truck's windows and lights and house's windows.

[previewyoutube]https://youtu.be/F1htIWyiXKc[/previewyoutube]

Thank you and have a good one!
DeGenerals