Hello all, it’s [TWDEV] Brrr – lead artist for the Indie game Traction Wars – once again taking you through the perilous journey of game development – in this particular case the creation of vehicles in our game! The Panzer IV entered service in German Tank divisions in 1939, we however are basing our Panzer IV one of the later variants that was common in Normandy - the PzKpfw IV Ausf. H.
Hello all, it’s [TWDEV] Brrr – lead artist for the Indie game Traction Wars – once again taking you through the perilous journey of game development – in this particular case the creation of vehicles in our game!
The Panzer IV entered service in German Tank divisions in 1939, we however are basing our Panzer IV one of the later variants that was common in Normandy - the PzKpfw IV Ausf. H! Known for its reliability and speed it proved itself on the front line – the Ausf. H improved upon existing traits with the addition of a 75mm gun and additional side armour. The combination of a high calibre gun and strengthened armour proved deadly against lighter less well equipped tanks like the Cromwell and Sherman.
I began the modelling stage with construction of the tank hull. I ensured that the dimensions of the length, height and width matched precisely with the blueprints. To do this in 3ds Max, three planes were created and placed on X, Y and Z axes. The blueprint textures were then applied to the associated planes – this way in real time I could tell if the model's length and its width lined up with the references.
The modelling technique I used here was to build the tank in progressive layers of detail – from very simple block like shapes and then slowly adding further layers of detailed modelling.
On a big model like the Panzer IV it made sense to use 4-5 separate texture sheets for all the different sections such as the turret, hull, armour, wheels, tracks etc. 2048 pixels was the most common texture size used, smaller 1024 and 512 sizes were chosen for smaller objects like tracks and wheels.
A vehicle unlike regular weapons posed further challenges, for example LODs needed to be made. In addition to that a damage/wreck model was also required. For the damage model to be sufficiently optimised to remain on the map for a long period of time after being destroyed it needed to be further optimised so the poly count was roughly halved along with the textures. The damage model itself used a completely new set of textures; I placed on a dark rusted effect to the textures to ensure that the tank looked burnt and destroyed. A further use of dirt-layering was incorporated to completely sell the effect. Further detail on LOD creation and damage models can be seen in one of my previous dev blogs here
Export the vehicle was complex. It involved amongst other things the rigging of the tank model – which enables the player to control the tanks movement and turret. I handed over this task to another developer – in this particular case the Director [TWDEV] General Naga took the reins. We might right more about vehicle exporting and coding in future development blogs.
One particular hurdle we came across with this stage was the realisation that Crytek had restricted the amount of vehicle wheels to only 18 and we needed 24! After careful deliberation we made a decision to take out one pair of the small running wheels along the bottom of the track. The reduction in the number of wheels isn’t noticeable to the casual eye but tank enthusiasts would most certainly become aware of the change. We've asked Crytek to increase the limit so we can fix this issue and add the extra set of wheels.
Similar material applications were made to the in-game textures as previously discussed in other dev blogs, such as vertex, dirt layer and detail mapping. One aspect I haven’t covered yet is the use of alpha maps in CRYENGINE3.
On the Panzer IV, alpha maps were required to make the set of optic scopes for the mg and main turret. After creating the optic sights in vector format using Adobe Illustrator they were brought into Photoshop for further adjustments, including the addition of a scratch glass texture with hints of dirt and wear. To create the translucent effect I made an alpha map. In an alpha map white areas are the parts of the texture that will remain opaque – the black areas will become invisible. After I created this alpha I copied it into the channels pallet in Photoshop. To ensure the soft gradient transition between translucent and opaque showed in-engine I made sure to save as an "interpolated alpha map" using the compressed file format ‘DDS’.
Back in-game the effect was finished by making sure the alpha level was set to "15". Any higher it would make the edges seem too jagged and distorted – anymore and there would be no transparency at all.
Here is the Panzer IV, with its sights set on an unwitting Cromwell tank in the distance!
Little did the Panzer crew know that they being outflanked by a courageous Cromwell crew – able to pull off a lucky shot onto the Panzer's rear weak spot!
We were delighted to make the Top 100 of Indie of the Year 2012. Thank you to everyone who voted for us! We really appreciate it. Round 2 of the competition is now underway and we need your support once again so please head over to IndieDB and give us your vote!
Vote For Us!
I hope you found this particular dev blog interesting, helpful and entertaining – tune in again next time when [TWDEV] volcol will once again be presenting a new developer blog!
The team is always looking for new talent, so if you think you have a skill we could use please visit our recruitment page to find out more and find what positions are currently open.