Hey everyone!

Welcome to our first Devblog in 2021! Today we have a lot of special guests with us. We have one of our programmers, Josephus, with a look at Artillery in Detail, our UI Designer milk with the Evolution of our UI, some progress in Fixing Crashes with Project Lead 3ti65 and the very first Dev Spotlight with one of our Lead Devs, FoolHen!

Over the years, Reality Mod has managed to gather a variety of incredibly talented individuals contributing in various ways, with currently more than 30 contributors, 15 of which are developers. With the Dev Spotlight at the end of the Dev Blog we wanted to give our members a chance to express themselves beyond their work on Reality Mod and for you to get to know the people behind the screens and for them to get to know you as well, so leave some questions you would like to have answered in the next Dev Spotlight below!

That being said, let’s jump right into it!

Artillery in Detail

Josephus

Hey, I’m Joe (aka Josephus)! I’m from England and I joined the Reality Mod Team as a Programmer around June of 2020. My first task was to rework the FOB and Rallypoint systems; so any issues you find with that, you’ll know I’m to blame

In the previous blog, Alpha showed you a preview of the artillery strike feature for the first time and in this blog, I will be explaining how it was conceptualized, developed and how it works in its current state.

I think the artillery strike is actually a very important gameplay mechanic as it allows squad leaders to break stalemates. Calling in an artillery strike is easy Of course, this feature without any limitations would be OP and so, to call in an artillery strike, these conditions must be met: You must be a Squad Leader; it must have been at least 20 minutes since the round started and it must have been at least 20 minutes since the last artillery strike was called in.

The first version of the artillery strike was actually written by Janssent (one of our Devs) as a separate Proof of Concept mod:

https://imgur.com/v4O6lJR

Janssent’s original concept behaved very differently to how it does now. Firstly, the strike was not placed on the minimap, but simply by looking at where you want it to impact (although, this logic was never actually meant for RM). Additionally, it also used TV Missiles (Hellfires / AGM-114) for the projectiles but we decided to change it because you could actually see the missile spawn in the air and come down, which was not very immersive to watch.

Instead, we are now using the mortar projectile, modified to use a different, much bigger and dustier explosion. Damage wise, Janssent’s concept proved too weak. A missile would have to land directly on a player to actually kill them. The current damage model is way more devastating: If you are in the strike radius and not in hard cover, you are going to die. Of course this is all still likely to change for balancing and performance reasons.

After some experimentation, I changed the explosion to the one that occurs when a tank is destroyed. At first, the team really liked it but after a playtest it was decided that the explosion and the lingering dust was too dark and didn’t really make sense for an artillery strike.

Personally, I love the artillery feature because it’s very much in keeping with RM’s realistic design and while also allowing us to show off BF3’s destruction (which no other tactical shooter has)

Anyway, I think that’s enough rambling about things exploding for me!

I hope to see you all on the battlefield soon!

~ Joe

M777 155mm Howitzer impact

We are going to be using this most recent version from here on out (probably with a few tweaks). The reasoning for this is that artillery doesn’t create some big cinematic fireball like you’d see in a film, instead it’s much dustier.

Evolution of UI

milk

Hi, my name is Marien or milk and I live in the US. I currently work as an Art Director for a small gaming studio that creates City Builders and Management type games. I am a big fan of FPS games in general, especially the Battlefield franchise, so in my spare time I work on RM as a UI designer.

I mainly base my workflow on personal experience and games in general that I have played. If I were to pick a specific game that is used as inspiration I would have to say Battlefield in general, due to it being the foundation of RM. When I create mockups I usually start with screenshots from RM or the Battlefield games as a temporary background and evolve it from there, that is why you might find some screenshots of other games in older mockups.

HUD - old (Note: The background is from BF 4, not BF 3)

HUD - current

The best UI design for me has an easily recognizable and navigable UI in terms of functionality. Also having an aesthetic that fits the theme of the game is a big plus.It’s very easy to be different, but very difficult to be better

Squad Selection menu

Squad Selection - old (Note: The background is from BF 4, not BF 3)

Squad Selection - current

Squad Selection - planned

The main difficulty during the initial design process was creating something for a Project Reality style mod that didn’t show too much info, yet did show enough. Deciding what was important for a player and what isn’t. Basically moving away from a more casual UI but making sure brand new players aren’t totally lost.

An example I can think of was the debate on whether or not to show too much info on a flag being capped either through UI, using audio cues, or another way of providing this info to the player. Another one was the compass, on the top, on the bottom? Ultimately we wanted to provide players both options due to different preferences even in our own team.

The design philosophy in short: Taking the Project Reality feel and limitations and translating it into a usable interface for the player. Keeping it simple and attractive at the same time. No fluff, but also not too basic.

That’s all for now and I’m looking forward to sharing further Design stories in the future!

Kit Selection menu

Kit Selection - old

Kit Selection - current

Kit Selection - future planned

Recap: Fixing Crashes

3ti65

Hey folks, my name is Stefan aka 3ti65 and I’m the Co-Founder of BF3: Reality Mod. Powback and I started this project more than 5 years ago and since then I’ve been working mainly as Project Lead and Lead Dev. As such it’s my task to address the biggest issues that we are struggling with, and right now, these are the crashes that are plaguing RM. In the last Dev Blog we went into detail about some of them and I’m proud to say that we are making progress in this regard.

For example, the mass crash issue has been fixed by the developers of VU. https://docs.veniceunleashed.net/general/changelog/#17335

It was related to us hitting engine limitations. However, we are not sure what exactly caused this specific issue in the first place, but we have not encountered it since the hotpatch deployed to VU so we assume it must have been mitigated. If you are interested in further information you can view the GitHub issue here: https://github.com/EmulatorNexus/VeniceUnleashed/issues/542

Another crash, appearing when loading into the server, has been fixed as well. Apparently it was related to entities and solved by adjusting the garbage collection / destroy callbacks of everything we do with entities.

Generally put: We are basically changing the engine in ways that DICE did not anticipate (obviously) and that can have unforeseen side effects. We also have to deal with a lot of inconsistency and hacky DICE code (DICE pls), and sometimes it becomes quite difficult to find a workaround, etc. But the more we work on it, the better we understand how everything works and the better we can address things.

That being said, we are not quite done here yet, there are more crashes that need to be fixed. Stay tuned for further good news.

Dev Spotlight

FoolHen

Hello everybody, I’m FoolHen. I’m 26 years old, from Spain, currently studying Industrial Engineering. I’ve been working on RealityMod and MapEditor since 2017.

Around 8 years ago I started learning programming in my spare time, starting with web and Android development, but also branched out to other technologies that interested me. But I was looking for a goal, a project that was challenging but fun, which could help me improve my skills. I wanted to collaborate with other people, which helps learn quite a bit as well.

Since it came out, Battlefield 3 has been one of my favourite games. I was new to FPS games, and used to play CS:S, so BF3 blew me away. When I found out about the Venice Unleashed project some years later, I finally found what I wanted to do: Modding BF3. Back then VU was closed and barebones, so there weren’t many people in the modding community.

In early 2017 I met Powback and 3ti65, which were looking for programmers to start building RM. The project seemed like an interesting challenge and still was in its infancy. They had created some PoC (Proof of Concept) mods, but the mod itself didn’t exist yet, so it was exciting to start building it from the ground up.

Since then I’ve been working on both the scripting side and the UI, as well as Project Management. I started with modifications of the soldier mechanics (weapons, movements, basic player mechanics, etc), but as time went on the scope of the project grew, so we overhauled and created new systems and mechanics. Over the years I’ve worked on most of the core features we currently have, some more than others. UI, round logic, custom smoke grenades, recoil, are some of the areas I’ve worked more on.

We have grown quite big since our small beginnings, so part of my responsibility is managing the project and people, ensuring that new developers can learn the tools and structure we follow, reviewing code, reviewing feedback and crash reports, etc.

How did Industrial Engineering help you with programming and designing Reality Mod?

FoolHen: I’ve had some programming subjects in university, but most of what I know I learned by myself, with online guides and courses. But I’ve had a lot of math subjects that have helped me greatly. One of those subjects, mechanics, has been a life saver. It wasn’t about gears and springs as it might sound like, but about 3D coordinate systems: matrices, positions, translations, rotations, etc which are the foundation of 3D games. That said, so far, I haven’t had to use integrals or differential equations, thankfully.

Which challenges do you regularly face working on RM?

FoolHen: One of the hardest challenges is managing our resources. We are quite a big team for a modding project, and by its nature we all work on it in our free time. That means that it is hard to predict when each member will have time and when things will get finished, and sometimes unexpected issues will block this process. Sometimes the tools we have available are lacking and we need to build them or request help from VU developers, or sometimes we are challenged by issues caused by us not understanding how the engine works and it takes time to learn and figure it out. This means that estimations are usually not good ones, and we must be careful and intelligent on what to focus on if we want to meet internal goals. On the development side, the biggest challenge is trying to understand how Frostbite, the BF3 engine, works. A lot of the time it’s a lot of trial and error, to see what works and what doesn’t, and it can be time consuming.

What do you love about working on RM?

FoolHen: Playing it. Playing something you’ve worked on and seeing other people enjoy it is really satisfactory.

What do you think makes RM a one of a kind mod?

FoolHen: I think one of the best points is that we part from a really solid game that has aged quite well, runs great and looks beautiful. But in my opinion our best asset is the team we have. It’s well structured, separated into different categories, and we follow development strategies used in the software development industry. We have quality assurance, UI designers, developers with experience in different fields, community management, marketing guys, testers etc. All these sectors managed with the same goal, with regular meetings that assure that we are all on the same page.

What was your main motivation to join the RM team?

FoolHen: As I previously said, I wanted to improve my programming skills and work alongside other people, but I also had other motives. Back then I was starting to be interested in game development. I started building some simple 2D arcade games, like asteroids and snake, to learn the basic math and structure behind game engines, implementing basic algorithms like drawing lines on screen. For a more academic purpose, I also wanted to improve my English, which working with people around the world ensured me.

Which features would you like to see in RM in the future?

FoolHen: Improved gameplay mechanics, which are the hardest things to do and nail. For example, I would love to implement leaning, but it might be too ambitious, especially the animations and their syncing. Body dragging with good animations, like in some single player missions, is also something I would like to add in the future. But the thing I look forward to the most are custom maps. Frostbite allows for big maps with good performance and looks. As of now we are still working on MapEditor, but I’m sure when we finish it we will see some awesome, custom maps.

Which games do you like to play in your free time? Which games have you learned the most from? Do any of those inspire your work on RM?

FoolHen: Mainly shooters. I started with Counter Strike and Battlefield, but also branched out to more realistic games. DayZ has been one of the games I’ve spent more time on, even with the amount of issues it has. The detail and realism of the mechanics, especially in regards to bullet physics and the in-depth of the weapons and their handling, is something that made me get into more realistic games like PR and Squad. But nowadays I don’t usually play games, as my free time is more sparse and I spend it on RM or on other side projects and hobbies.

Thank you for your time, it was very interesting to find out some things about you.

FoolHen: Of course, and I hope I can see you all in game soon!

That’s all for today folks! I hope you enjoyed this Dev Blog, join our Discord if you want to stay up to date or to sign up for Early Access!.

Cheers & stay tuned!

Alphacore

Head of Community Management