Hello Squaddies!
Today’s Dev Blog is a little different than anything we have done before, but we wanted to introduce more of our Dev team to the community!
So, without further ado, meet Virus.exe, a
Technical Game Designer on Squad!
But what is a Technical Game Designer? Well, these individuals possess a unique blend of skills: part game designer, part programmer, and entirely immersed in the inner workings of game engines.
Virus’s days are a combination of experimentation and investigation, often stepping in when others encounter a dead end in solving a technical bug. When that issue runs deeper than expected, Virus has been known to create in-editor tools to allow designers to fix the issue! As for the design side of the position, spending time working with other designers on design docs, configuring new features, and liaising between the design and engineering team for everyone to speak the same ‘language’ is how most of his days are spent!
Virus and Ceeg sat down to discuss his role and what drove him to work in the games industry. Here’s how that interview went!
What inspired you to become a game developer, and how did you get started?
I have wanted to become a programmer since I was a kid. When I was about 12 years old, I became interested in programming and started studying it after school. Writing code fascinated me; I could swear that I could see the zeros and ones hovering in the air around me as if I were Neo from The Matrix. But getting into gamedev was not my goal initially, and you might say I got into the industry by chance.
At the end of 2015, I saw a small Russian streamer on Twitch, who was playing Squad, which had just been released in early access. I am a big fan of the Battlefield series, so I liked the look of Squad a lot, bought it, and started playing together with that streamer. Later, we became friends in real life. I was even a witness at his wedding (hi Anton and Lisa)!
A year later or so, the Squad modding kit came out. And that changed everything. Being a techie to the core, I immediately wanted to figure it out and start creating cool stuff for Squad, which by then had become my favorite game. The original mod toolkit turned out to be almost ‘vanilla’ Unreal Engine editor, so while learning how to mod Squad, I was also learning one of the most powerful game engines of our time.
Active Defense System prototype
After a while, I had built up some reputation in the modding community, and a member of the Squad QA team named Emil spotted me and asked for my help. He had an idea for a new game mode that he proposed to game designers, which they liked, but there were no resources available to develop it at the time, so he asked me to help to create a mod with this new game mode, and I gladly agreed. And to this day, I’m grateful to him for providing me this opportunity that ended up turning my life around. Some might say it was just a happy coincidence, but I consider it to be more like the hand of fate.
Some time later, when the mod was ready and we had completed some public playtests, I was invited to join the Squad development team to integrate this mod into the game.
While doing this, I expressed a strong interest in how Squad was made on the inside. I had studied the code base, and my programming skills helped me start assisting with fixing bugs in the game. I also developed a close relationship with the game design team, and my experience as a simple everyday player, who also participated in competitive tournaments, helped them see the game from a different angle. My technical skills on multiple occasions allowed them to find and fix issues with game mechanics without involving engineers, who at the time were busy with higher priority things, like engine upgrades. And thanks to my knowledge of Russian military equipment, I was also able to fulfill the role of a military advisor.
Eventually, when my work on integrating the new Destruction game mode was completed, around 2018, I was offered a permanent position on the game design team, which sadly I couldn't accept due to my occupation at the time (I was an active duty officer in the Russian military, serving in a R&D unit in a rank of Captain, effectively working as a programmer), but I was able to stay on the team as a volunteer.
Fast-forward to 2021, I finally left my military career after 10 long years, and joined Offworld as a full time technical game designer. And I'm happy to be here and work on my favorite game!
Can you describe a challenging technical problem you encountered while working on Squad and how you solved it?
One of the first big technical challenges for me was a bug with the BRDM-2 Spandrel, a notoriously known vehicle equipped with a pod full of anti-tank guided missiles. The bug was allowing the gunner to bypass the limits on the firing rate, and launch all missiles in quick succession, nuking any opposition armored vehicle out of existence without any chance for them to retaliate. At first, I thought it was just a config problem. But after I studied the code flow under the microscope of the debugger, it became apparent that it was a deeper issue with how the weapon worked. So I had to do a big refactoring of its firing code, almost rewriting it from scratch.
What feature or mechanic of Squad are you most proud of developing, and why?
The new suppression effects & reworked suppression logic in the Infantry Combat Overhaul that was shipped with v6.0 update was one that took a lot of work. I had to study a lot on how Depth of Field effects work in real life optics and how it is implemented in Unreal Engine, in order to make it work as intended, at different resolutions and with upscaling features like FSR and DLSS. It was a really deep dive, and I’m proud that I was able to come out on top of it.
What systems or tools do you use to create game mechanics?
Unreal Engine blueprints for prototyping, Google Sheets for various things, from balancing tuning to analyzing results, Miro & Confluence for documentation & brainstorming, and other designers' brains to discuss the ideas . Also, I look at designed mechanics and analyze them using “design lenses” methodology, very well laid out in The Art of Game Design: A Book of Lenses by Jesse Schell. And last, but not least, I rely on our Offworld Design Pillars that we have written down and linked in a template for our game design documents.
Could you share an example of a feature/mechanic you designed or implemented that significantly changed player experience?
The Seeding game mode! It was a long requested feature, and I was happy to work on it. I’m not sure how much it changed the player experience, but I think server admins were definitely happy to get it! I also implemented the access to game chat via remote console for administration tasks (i.e. chat commands implemented via 3rd party automation tools monitoring the game chat, that allow to report a player directly to server admins, call for admin presence, or implement map voting and other cool things).
NLAW Guidance System Mk I
What programming languages are you proficient in, and which do you prefer for game development?
My everyday language is C++, as that’s what Unreal Engine & Squad is made on.
In the past I knew some Pascal/Delphi, wrote some Java for Android, had a quite successful attempt with GoLang (wrote the backend for a project I was working on in the military), and can read C# (due to its syntax being similar to C++). For game development I prefer C++, but if I had enough free time, I would have liked to try C# with Unity engine.
Is there anything that you are excited about that is coming to Squad in the future, that we can tease for the Squaddies reading?
There are a lot of things planned, and all of them are exciting! I could share one thing that was known to modders for some time now, it is called Generic Resource System, and could be described as a rework of the backend for our logistics mechanics from the ground-up. It changes the way the game stores information about resources like construction and ammo points and how the objects holding these resources interact with each other. Even though by itself It’s not a game mechanic, it provides a modular foundation that game mechanics could be built and expanded upon in a much more convenient fashion, without making our code base look more and more like spaghetti, enabling us (and modders too!) to create things like physical supply crates that could be dropped from vehicles and could be destroyed by the enemy, or a separate team-wide resource for Commander to use as a currency to pay for call-in support actions instead of being restricted by cooldown timers, and many more cool things!
Resource Crates Destruction
What advice would you give aspiring game developers who want to break into the industry?
There are a lot of resources available nowadays, free game engines, free assets, free or really cheap learning courses. All of that really helps to get started.
So, just go and make games! Learn new stuff! Try things! Try your ideas! Yes, you will fail on your way, a lot. But failure is not a bad thing, it is a learning opportunity. The only one who doesn't fail is the one who doesn’t try.
Remember, when Loki said to Thanos “I consider experience experience”, he was right! Learn from your mistakes, and try again. Even if your game won’t be successful, the experience you’ll get in the process of making it will help you to get a job in the industry.
Another thing, game jams! Take part in game jams! I’ve tried it a few times, and it was a really great experience. Not only was it fun, but also allowed me to develop valuable connections with people across the industry.
Also, mod games that you like! I am a living example that modding could get you into the industry, but I'm not the only one. Offworld has hired multiple people who did impressive modding work, Zeno, Jhett and Axton to name a few! Even our current lead game designer, Baron, was a modder at some point, he worked on the Canadian Armed Forces faction mod team.
Many thanks to Virus for joining me for today’s Devblog! For those of you who made it this far, thank you for joining us. And as a special thank you, the Patch Notes for Squad v8.0 will be available Monday June 10th! See you then!
OFFWORLD OUT!
Continue reading...