Hello troops! Here’s a quick breakdown of what we’re bringing to the frontlines this week.
[b]2 More More Maps!
[/b] We’re at it again, the ever expanding HQ experience sees us finally fighting on all fronts as this week we add Derailed and Battery. Crashed planes, trains and automobiles await you in this weeks update. We've nearly come full circle with some interesting features to best assess your casual needs![b]Mid Season Patch - Preview_V2
[/b]Last week we gave you a little sniff of what's to come for September’s Mid Season Patch and this week is no different. For those of you not in the know, the MSP, as we like to call it, involves a number of fixes, changes, and quality of life solutions. It’s our way of really getting to grips with what our players would like to see without disrupting the flow of progression or jumping the gun too soon.Quality of life you say? Quality of life is the standard of health, comfort, and happiness experienced by an individual or group. The Battalion community is our group and these small intricacies and additions are our way of implementing features you’ve asked for. One example of this would be call outs and map locations under the radar - a small change can make a world of difference for communication, whether a veteran or stepping into the server for the first time, these are exactly the kind of quality of life changes we’ll be looking to make a more permanent fixture.
[b]Fog of War
[/b]Smoke grenades play a huge part in Battalion’s break away defence and first line of attack. They provide the foundation for key, round winning moments, or block crucial information to prevent an opponent's advances.Over the last year we’ve constantly been working towards balancing and creating a formidable smoke. A smoke that does exactly what it says on the tin, and dare I say, we think we’re pretty close. We’ve improved the smoke so that players will no longer be able to turn the edge of the smoke client side using their mouse as a way to gain an advantage. You can see the difference below!
Current smoke
MSP Smoke
The greatest teams and tacticians know exactly how, when, and where to deploy smokes but often you never see the why. Why do smokes act and behave the way they do? Whats the difference between a server and client side smoke and why do we lean one way more than the other. Luckily for all those interested, we have one of Bulkhead’s brightest on standby to talk you through the process, Mr.James Tatum.
Zitat:
James Tatum:
Smoke grenades are currently a combination of server and client sided. In order to explain how smokes work, we're going to have to cover some base terms first. Stay with me, and by the end of this you'll understand why we use the combination we do, and why smokes will never be fully server sided.
First up, seeds and pseudo-random number generators. You may have heard that random numbers generated by any form of computer are not truly random. This is true. In any computational environment, we use a seed and an algorithm to generate pseudo-random numbers, which appear to be random enough for most things to get away with. We start with a value, which we call the seed. Let’s say 42. This value is chucked into a mathematical equation and a new value is spat out, let’s say 98. The 42 that was originally used is then modified by a constant (maybe just incrementing by 1) and when the algorithm is ran again on this new number a different value is given, 56. As long as the seed is the same each time you run the algorithm, you will always get the same values out of the random generator in the same order. For this reason, most random generators use the ticks of a system or something equally unique as a seed.
Next we need to talk about particle effects. Particle effects use emitters, which spawn sprites. There can be hundreds or thousands of sprites generated by an emitter, and then we can have multiple emitters in each effect. Each sprite can have some transparency on it, and once the sprites are layering over one another we end up with a cool effect, and the emitters themselves spawn the sprites based on a seed. This is where the pseudo-randomness comes in. Particle effects can be expensive to run, which is why it’s important to keep a close eye on performance when doing anything with particle effects.
Okay, so you understand how “random” works in a computational environment, and you now know the basics of how a particle effect works. Let’s get into what Battalion 1944 does.
When you throw a smoke grenade, the arc and position of the grenade is actually calculated on the server and then networked to the clients. This way, a smoke or explosive grenade can never land somewhere different for different clients. The position where the smoke lands causes the particle effect to be spawned on all clients, but not on the server. This means all clients have the same smoke in the same position, but we don’t have the insane performance cost of networking the smoke from the server to client.
Let’s talk about that performance cost. In order to network a particle effect, you’d have to take each of the generated particles (sprites) on the server and send it’s position to each client. When we consider there can be thousands of particles in a single effect, we might be sending thousands of positions each frame to each client. For 10 players in a server, and at 60fps, for just 1000 particles, that would be 600,000 pieces of positional data sent in a second. We could definitely optimise that down, (and we’d actually need to, because that would block the net driver and disconnect everyone) but you can see how out of control the performance of networked particle effects can get.
The next thing to consider is the seed. If this was different on each client, it would cause the smoke to look different. For this reason, we keep it the same on all clients, at all times. Every time you throw a smoke, it will look the same every time because the seed value is the same.
So that’s how smokes work in Battalion 1944. The position is sent from the server, so it’s the same. The seed is always the same, because it’s a constant value fixed inside the smoke asset itself. The smoke always looks the same, because both the position and the seed are the same for all clients. There would be no benefit to networking the smoke particle effect from the server, but there would be a significant performance cost, and with the nature of Battalion 1944 being a competitive fps, we are always trying to get the best performance and competitive fairness out of everything we do.
Hope that explains everything. If you have any questions, feel free to fire them to @Baker
Smoke grenades are currently a combination of server and client sided. In order to explain how smokes work, we're going to have to cover some base terms first. Stay with me, and by the end of this you'll understand why we use the combination we do, and why smokes will never be fully server sided.
First up, seeds and pseudo-random number generators. You may have heard that random numbers generated by any form of computer are not truly random. This is true. In any computational environment, we use a seed and an algorithm to generate pseudo-random numbers, which appear to be random enough for most things to get away with. We start with a value, which we call the seed. Let’s say 42. This value is chucked into a mathematical equation and a new value is spat out, let’s say 98. The 42 that was originally used is then modified by a constant (maybe just incrementing by 1) and when the algorithm is ran again on this new number a different value is given, 56. As long as the seed is the same each time you run the algorithm, you will always get the same values out of the random generator in the same order. For this reason, most random generators use the ticks of a system or something equally unique as a seed.
Next we need to talk about particle effects. Particle effects use emitters, which spawn sprites. There can be hundreds or thousands of sprites generated by an emitter, and then we can have multiple emitters in each effect. Each sprite can have some transparency on it, and once the sprites are layering over one another we end up with a cool effect, and the emitters themselves spawn the sprites based on a seed. This is where the pseudo-randomness comes in. Particle effects can be expensive to run, which is why it’s important to keep a close eye on performance when doing anything with particle effects.
Okay, so you understand how “random” works in a computational environment, and you now know the basics of how a particle effect works. Let’s get into what Battalion 1944 does.
When you throw a smoke grenade, the arc and position of the grenade is actually calculated on the server and then networked to the clients. This way, a smoke or explosive grenade can never land somewhere different for different clients. The position where the smoke lands causes the particle effect to be spawned on all clients, but not on the server. This means all clients have the same smoke in the same position, but we don’t have the insane performance cost of networking the smoke from the server to client.
Let’s talk about that performance cost. In order to network a particle effect, you’d have to take each of the generated particles (sprites) on the server and send it’s position to each client. When we consider there can be thousands of particles in a single effect, we might be sending thousands of positions each frame to each client. For 10 players in a server, and at 60fps, for just 1000 particles, that would be 600,000 pieces of positional data sent in a second. We could definitely optimise that down, (and we’d actually need to, because that would block the net driver and disconnect everyone) but you can see how out of control the performance of networked particle effects can get.
The next thing to consider is the seed. If this was different on each client, it would cause the smoke to look different. For this reason, we keep it the same on all clients, at all times. Every time you throw a smoke, it will look the same every time because the seed value is the same.
So that’s how smokes work in Battalion 1944. The position is sent from the server, so it’s the same. The seed is always the same, because it’s a constant value fixed inside the smoke asset itself. The smoke always looks the same, because both the position and the seed are the same for all clients. There would be no benefit to networking the smoke particle effect from the server, but there would be a significant performance cost, and with the nature of Battalion 1944 being a competitive fps, we are always trying to get the best performance and competitive fairness out of everything we do.
Hope that explains everything. If you have any questions, feel free to fire them to @Baker
[b]Boost Hotfix
[/b]We're always astounded by what our community can do with the game. Recently we came across some boosts that gave players that utilised it an unfair advantage on Liberation, this has been addressed in the latest hotfix and would like to thank those of you on Reddit that help us combat these issues. Keep up the great work![b]Fragadelphia Summer Wartide 2019
[/b] Last weekend saw some of the top North American teams and a small European contingent fight it out in the aptly nicknamed "City of Brotherly Love", Philadelphia. The weekend was a spectacle of tight games and competitive spirit. As the story usually goes, only one could come out on top, this time around being that of Sedated Gaming. A marvellous performance in the final coming from the lower bracket playoffs saw them take home the victory and we'd like to take this time to formally congratulate them! Also a massive thank you to Steve of Fragadelphia and every volunteer member of staff at the event that weekend. We can't wait to see you compete again soon!Sedated Gaming photographed by JeNneSis
For all those that missed the action on the weekend, don't worry, you can catch up HERE!
Zitat:
Battalion 1944:
They have done it! @SedatedGG take first place and secure themselves as the @fragadelphia Summer Wartide 2019 Champions! A valiant fight coming from the lower bracket to match @EanixGG 3-2 in an audacious final! Well played to all those involved!???? pic.twitter.com/a6vARYDHpi
— Battalion 1944 (@Battalion1944) August 19, 2019
They have done it! @SedatedGG take first place and secure themselves as the @fragadelphia Summer Wartide 2019 Champions! A valiant fight coming from the lower bracket to match @EanixGG 3-2 in an audacious final! Well played to all those involved!???? pic.twitter.com/a6vARYDHpi
— Battalion 1944 (@Battalion1944) August 19, 2019
Have a fantastic weekend!
Bulkhead Interactive