Welcome to our first Devblog! Today I want to talk about the history of our mod, the features we implemented in the last two months, and the things we need to finish until the release.
The project's development started around mid January 2021, I created a group chat with Breaknix, Bree_Arnold, Janssent and Kiwidog. Kiwi and Breaknix had already made proof of concepts for a BR mod and I suggested that we should actually finish one. I started working on the match and round logic, Breaknix added his Circle of death code and a bunch of logic of timing, Bree started working on adding the Co-op man down state and other EBX trickery, Janssent started working on the loot pickup + generalizing our code so we can use more than one map later on, and we used some of Kiwi's original BR mod as a base.
Later on FoolHen and Keku645 joined as well to help our project. FoolHen also works on Bf3: Reality Mod which is a much older and larger project so he help us out a bunch of times. Keku is currently working on the custom map which he will talk about in details down bellow.
Circle of death
Writing the code for the circle of death was pretty much the first thing I tried to do when I got my hands into VU modding tools. Having a BR in BF3 was a dream since I first played PUBG, so naturally, I wanted to give it a try. The circle behaves the same way you would expect from a BR game. Why change something that works? It's funny though that even some of these seemingly easy tasks can contain some pretty enjoyable challenges. Here are two interesting reads that helped me while solving some of those issues, Generate uniform random points within a circle and Finding Random Points in a Polygon.
We still have a problem though which is how to display the circle while in-game. The current solution is to use the
DebugRenderer which creates a similar effect to PUBG's blue wall. The catch is that when drawing using
DebugRenderer you pretty much draw on top of everything, there's no depth to the point which can become a big annoyance. We still try to figure out how to overcome this or modify it in a way that will work as expected.
The latest addition to the "circle of death" is the fire effects which they randomly spawn as the circle moves. I think that they look pretty cool (you can get an idea from the screenshot below). We are also experimenting with adding additional effects such as smoke or smaller fire trails around the circle.
FlashHit made a prototype version of the Dropship in the first weeks when we started developing the mod.
Right now we can set Point A and Point B and the time it takes to travel the distance between these two points. Also, we created a custom camera so players can look around before they jump out.
We use the same Dropship function to create airdrops as well.
Custom map - Kiasar Extended
This level purpose is to expand the already great map Kiasar Railroad but giving it a new twist, we're doing it under the premise to be playable as a Battle Royale map.
To build this map I had to use the MapEditor mod, at the time of making this level, the tool was still on development so I couldn't use many stuff which a normal engine would offer me like terrain editor, ability to place sounds and FX natively (actually done with EffectBlueprint and EffectManager), scalable assets keeping it's collision and many more stuff.
One thing that annoys myself and many other Battlefield veterans is the 2D spotting ability that has plagued (or blessed, depending on how you feel about it) the series for more years than not. To me it feels cheap and cheesy. I decided to implement something that could be deployed quite easily per squad that would allow a player to “ping” or “spot” a point in 3d space that would be updated for all squadmates. Shamelessly stolen from games like Rainbow 6: Siege, Counter-Strike: Global Offensive, Apex, etc the list goes on. This simple change changes the “dorito” that follows a player (and in Battlefield 3, through smoke) to the “last seen” location.
First I pulled a previous experiment that I had created for testing out artillery in VU. This included automatic raycasting, registering clicks, timeout/cooldown for use, and transferring this information back to the server to be replicated to all squad mates. A video of this is provided below.
Once all of this functionality was pulled out, it was tested in a standalone mod that served to be the base for various features I have been working on for BR. It was a bit laggy and needed some tweaks, but the firsts tests were successful.
Here is a closeup of the pings.
Later on down the line KVN had added the 2D location to the minimap and Breaknix to the compass!
At this current time there are some rough edges and final UI changes that will be happening but it is mostly functional and ready for playtests.
For the initial implementation of weapon pickups we decided to take inspiration from the logic blueprints of the vanilla Scavenger mode pickups. They were a very helpful example for us since you need to get a lot of blueprint and entity properties right in order to successfully create the weapon pickup entity.
Once the vanilla blueprint was working, we could start modifying it to make it fit the BR mode.
Trying to create custom Frostbite blueprints (containing connection logic, similar to Unreal blueprints) from scratch can be frustrating. Just getting a single, seemingly unrelated, flag wrong can result in the game crashing or entity creation failing.
Recreating vanilla blueprints in VEXT is an easy way to get actual results in-game. After that you can start adding or removing entities, changing properties and adding connection logic to end up with a custom blueprint.
In the meantime we started implementing the new system for the loot pickups. Here is a little sneak peek:
Most of the UI is done or at least in a state where we only need minor adjustments. Because in Venice Unleashed you can't modify the original UI elements we had to recreate almost all of them. It's not 100% true, you can modify some elements but we couldn't for example modify the map the way we wanted.
For the custom map, I made a canvas-based solution first, which worked fine, but we had some performance issues with it. I replaced it with PixiJS and also implemented React Redux which made the whole UI much more performant.
This week we also implemented a custom ESC menu.
You probably already seen it in the teaser trailer but we have a custom showroom/deployment screen. You can choose the way you want to play: Solo, Join a random team or Join/Create your team. You can join your teammates by the randomly generated Code shown in the picture below. You can also choose your appearance here as well.
To summarize everything: we worked hard in the past two months, fixed annoying issues, added a bunch of must-have features and we are excited to show you more. Our progress slowed down a bit in the last 2 weeks (moving, family, school, work, etc.) but it is steady.
The most important feature we are working on right now is a proper inventory system for Bf3. When we are finished with that we could start the playtests with a small group of people first. We will talk about the new loot system and the playtests in our next dev blog hopefully.
If you want to stay up to date join our discord: https://discord.gg/9nuXa4Sx5c
See you soon! ✌💙