• Register

Ferocious Alpine warfare will test your tactical skills in this authentic WW1 FPS. Battle among the scenic peaks, rugged valleys and idyllic towns of northern Italy. The Great War on the Italian Front is brought to life and elevated to unexpected heights!

Report RSS Devblog #58 - Meet the Dev 04

In this devblog, another programmers shows off a bit of his work, especially towards the console build of Isonzo! Additionally, we have some exciting news for our players on Steam.

Posted by on

Hello soldiers!

The devblog is arriving early this time! And besides meeting another member of the devteam, we have exciting news for our players on Steam.

steam overview final 1200x620


Yes that’s right, Isonzo now has Steam Trading Cards & Point Shop Items! We know many of you have been asking for it, and we’re happy to finally share this with you. Time to Isonzo-fy your Steam profile!

background fade


Survey Reminder

In the previous devblog, we’ve asked you all to fill in our player survey. This is to make sure that we’re putting our development focus in the right areas, and to keep our fingers on the pulse of the WW1 Game Series community.Many of you have already done so, thank you very much!

This is a reminder for the people who might’ve missed it (or forgot it). You can click here to be redirected to the survey.

We’ve heard some of you struggling to fill in the survey due to the Google login requirements. This is a safety precaution. We’ll look into other alternatives for future surveys.Now let’s meet another programmer in our team!

Meet the Dev

Hello! Could you introduce yourself

Hi, my name is Nico, I’m 39 years of age and I live in Utrecht, right in the middle of The Netherlands. I studied Computer Science at the University of Groningen and moved here to Utrecht in 2012 to work at a game company. After moving back and forth between different fields of software development for a few years, in late 2015 I decided to start a freelance career.I was introduced to the WW1 team on literally the first day of being a freelancer, and worked with them on Verdun for a few months initially. I didn’t become a full-fledged member of the team until the end of 2017 though, when Tannenberg was in development.

What is your role in BlackMill Games and for the games?

“Officially”, I’m no longer a member of the BlackMill team! I left at the end of last year and rejoined on a consultancy basis to work on the FidelityFX Super Resolution 2.2 (FSR2) implementation and to help out in other areas that I have knowledge of.Before that though, I was primarily responsible for the console ports of the WW1 games. This started with just technical work: integrating various console features, optimization work and producing builds. Over the years, I’ve taken on more responsibilities including QA, release management and managing communications with Sony and Microsoft.

Where did your passion come from?

From playing games as a kid back in the ‘90s, as trite as it may sound. I was an impressionable child and anytime I saw someone make or do something cool, I’d be like “I wanna do that too!”. Computers, games and programming are what stuck around long enough to become a career and I can’t complain about it. If I had pursued a career in music, comic book drawing or operating drawbridges, I probably would have struggled a lot more in life.

Playing other people’s games and seeing how they were made is what made me passionate about creating games myself. Fortunately, I had a knack for programming and I learned a lot from modding existing games while still in middle school. Throughout my studies, I kept up-to-date with what was happening in graphics technology, worked on hobby game projects of my own, and tried to make choices with the idea of someday working in game development in mind. I’m glad that that worked out in the end, even if it took me a while to get there.

What was the first thing you made in Isonzo?

The first thing I did for Isonzo was to make it run on the Xbox One console. This was shortly after the console release of Tannenberg in mid-2020, so the production of Isonzo was already well underway by then. It was not a pretty sight. The game ran at barely 10 fps on the Xbox One X and that was despite the maps still being very basic and missing a lot of the details that made it into the final release. A lot of work has been done to whip the game into shape since then.

early xboxonex compress

What is a memorable moment in the development of Isonzo?

Very recently, the moment FSR 2.2 first started working in Isonzo and I could see the potential of what it would bring to the game. It felt like I was looking at an offline render, rather than something that was being drawn in real-time. Everything looked sharp with clean edges, distant objects were displayed with perfect clarity and details popped like never before. It was at that moment that I knew my gamble to work on this research project had paid off.

cengio native compress

Of course, a still shot like this is a bit flattering and there were plenty of problems yet to solve once things started moving around, but this gave me the motivation to promote the feature to the team and to really push for its inclusion in the game. Fortunately, it was not too hard to convince them of its value and I’m very happy with the way they supported me to get FSR2 across the finish line.

Another memorable moment is an older one, when I was first testing builds of Isonzo on PS5. That console is quite a bit different from the Windows and DirectX environments that we’re so used to, so it often has a lot of unique issues that crop up. Initially, all of the shaders were completely broken, causing all sorts of bogus pixel values to be drawn and together with bloom and other post-processing effects, it made the entire map light up like a Christmas tree. I affectionately called this glitch ‘Disco Isonzo.’

disco isonzo compress

In general, I look back fondly at the last few months of development before release and witnessing the game gradually come together thanks to the hard work from everyone on the team. Getting Isonzo to run, look and play decently well on consoles felt like an impossible task at times and I would not have been able to do that on my own without everyone pulling together and making it work.

Can you show off some of your work process and tell us what you’re doing?

A lot of my time is spent looking at code, which is not the most visually exciting thing to be showing off. Lately though, I have been doing a lot of performance analysis and bug fixing using GPU profilers, so I can show some of that.
Below is a GPU timing snapshot of a typical single frame on Xbox One S.

gpuprofiler

When I first ran tests of FSR 2.2 on Xbox One, I was very sceptical whether it was going to be worth it. 6 milliseconds of GPU time to run FSR2 on a budget of 33 ms (to hit 30 fps), with nearly 8 ms spent on post-processing in total. No way would that ever be compensated by rendering the game at a lower resolution internally.

But I was wrong. In fact, the game ran considerably better with FSR2 enabled, even on the least capable consoles. On some maps, for example Fior, the frame rate jumped from the mid-20’s to the low 40’s while walking around in the forest. Not only that, using FSR2 also helped to smooth out the performance spikes in more graphically demanding areas. It was a true game changer!

Just a few weeks before we were going to launch FSR 2.2 on consoles, I received a report that players were able to see ghost images of each other through walls on PS5. It was pretty bad.

ghost 4mb

This was clearly an issue with motion vector rendering, and it’s something that had plagued us before, but we never figured out what caused it. I was mindful of this problem when I worked on FSR2 and specifically checked for it, but as it turns out, it only happens on PS5 and Xbox Series X|S and nowhere else.

It’s crucial for FSR 2.2 that motion vectors are correct, so this time I had to really dig into this problem and find out why it was happening. A GPU capture confirmed that indeed, all was not well with the motion vectors:

ghost avatar

The color buffer on the left is perfectly fine: the other player is obscured by the rock and not drawn, as you would expect. However, the motion vector buffer on the right clearly shows the other player. This causes FSR2’s image reconstruction to think those pixels should be moving, and so it will make a ghost image appear on the rock.

It took me almost a full day and a lot of pouring through GPU data to finally figure out that Unity was for some reason adding an arbitrary offset to meshes when drawing motion vectors for moving objects, which drew them closer to the camera. In this case, close enough that the player model was considered to be in front of the rock and its motion vectors were drawn. Just a small change to the motion vector shader code fixed this and FSR2 was good to go again.

At the moment I am still working on further refining and improving our FSR 2.2 implementation. One often-heard complaint is that scopes have become blurry and smeary, making them hard to use. This is because the scope’s zoomed-in view isn’t a proper part of the main scene, and so FSR2 doesn’t really know what to do with it. The correct solution for this problem isn’t super obvious, so it took us a while to understand what we needed to do here.

compmask

What you want in this case is for the scope image to be composited into the scene, that is, for it to just get glued into the final picture without any further modifications. Fortunately for this, FSR2 has the ability to take a composition mask as an input, which tells it which pixels should be left alone. So, the challenge for us was to isolate the scope lens and draw it to a separate composition mask. The above image shows the result of that. We’re also doing the same for water surfaces as those too are animated texture effects and require special treatment by FSR2.

Which other game dev/studio inspires you?

Historically, id Software has been a great source of inspiration for me. They were always at the forefront of PC gaming technology. Their Doom and Quake games allowed me to get a start in modding and game programming. Their generous open sourcing of their engines allowed millions of aspiring game developers, myself included, to learn and understand how games work under the hood. Without them, I don’t think I would be working in game development today.

A bit closer to home, I’ve always had a deep respect for Nixxes and the quality of the conversion work they’re doing. From all the way back in the Dreamcast days up until today, whenever Nixxes ports a game to another platform you know that a lot of care and attention will have been put into it. I look at their work as a reference for the quality I should be striving for.Favourite game atm?

The last two years I have been captivated by Soulsborne games. I keep coming back to Dark Souls, Bloodborne and Dark Souls III. Last year’s Elden Ring was an amazing experience. Lies of P which comes out later this year is looking very promising too.

Whenever I want to hang out and chat with my friends, PUBG is still my game of choice. Paradoxically, despite being a rather hardcore and deeply unforgiving game, it offers a lot of quiet moments too where you can just chill and have fun together.

While everyone else is being hyped by the shiny new Final Fantasy XVI right now, I’ve been intrigued by the Pixel Remasters of the classic Final Fantasy titles. Currently I’m playing through Final Fantasy V for the first time and I’m thoroughly enjoying it.

Finally, recently me and my friends discovered Placid Plastic Duck Simulator which is extremely silly, as you’re literally doing nothing but watching rubber ducks bob around in a pool. However, it is strangely fascinating and I’ve already spent way more hours on it than is sensible.

Anything else you want to share?

For anyone who may be dreaming of working in game development someday, the best I can say is: be proactive, be curious, and make things! Even if you’re repeating what someone else has already done before you, the best way to learn is by doing and then showing other people what you’re capable of. Never stop being curious.
Thank you everyone for reading and I hope you found it interesting to see some of what went on behind the scenes on the console side of Isonzo and what we’ve been doing lately to further improve the game.

Film Memoir

Don’t forget that the Film Memoir mode is available for free until August 4 for all our games on PC. You can enable this by going to Settings -> Graphics. We hope you enjoy this special feature and create some fun & interesting footage.

Gif 1

Additionally, Verdun & Isonzo are now both discounted on Steam!

See you next time soldiers o7

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: