Jump to content
Game-Labs Forum

The gunnery model


Riccardo Cagnasso

Recommended Posts

@RAMJB I think the devs are pretty well aware that their model does inevitably have some results arising from their design choices that are less than ideal. When it comes to applying a "size of target" uniformly at any range, their model seeks to offset that by having higher accuracy at closes ranges. I think the issue really is simply one of balancing those competing numbers to produce results that are 'more reasonable' while also not having secondaries so effective they create "zones of death", lol.

I started a thread about peculiar shell trajectory animations because Admin asked me to do so earlier in this thread, so they're clearly responsive to our feedback.

Issues of hitting small ships even at crazily close ranges is one we've all discussed in multiple threads over the last month or so (probably earlier but I wasn't here then), and they've said they're acting on it in next update.

Should be interesting to see what comes of it. I suspect we're all hanging out to jump in as soon as it drops.

Cheers

  • Like 1
Link to comment
Share on other sites

Oh don't read me wrong, I'm just giving some personal feedback about the gunnery model, given that the topic is about it. I'm well aware that it's in development and nowhere near it's final state, and that changes will be introduced to account for things like the ones I pointed out.


Also, from a personal standpoint (I go quite a ways back with GameLabs since the era of the NA trials ;)), I know their interest in making things right, so I don't have any doubt proper feedback is taken seriously and considered by them. 

Link to comment
Share on other sites

On 11/19/2019 at 4:14 PM, admin said:

post you are quoting was updated with more examples.

Having given you the example on the penetration and ballistics i would like to point out that we fully replicate many game elements by using method 1 (full simulation)
For example accuracy: All possible parameters influence the end result including even very minor ones, arriving at realistic low hit rate with early tech.
08N6AyP.png

 

On 11/19/2019 at 4:04 PM, admin said:

Actually unlike water cloth physics ballistics it is much easier with gunnery. 

And the main concept to understand here is that there is no difference between 

Here is the WW2 land example that will demonstrate this concept
Lets say we need to satisfy the most detail oriented tank realism enthusiast and need to implement gunnery on the 88mm

gapDhV2.png

Using the historical tables we can achieve the 85% armor penetration at 2000m in multiple ways.

  1. Method 1: simulate the molecular level, metal composition of the projectile, simulate viscosity of steel before, and during penetration and tweak all that until we arrive to 85% at 2000 m range.
  2. Method 2: use historical table and just give the game an absolutely correct historical curve from the proven historical reference. 
  3. Something in between.

From experience we found that for penetration of armor it is much easier for everyone to use method 2 or 3. We both (you as historical enthusiast and us as developers) want to only argue about effective armor, its type, % penetration chances at distance and curve.. Not the armor molecular viscosity or atomic level of simulation.

But some parameters must be simulated using method one if they are key for gameplay or ship design. For example we simulate accuracy in detail using method 1.

Because this is a historical single player game our hands are untied, we do not have to balance the classes or guns between each other (for example giving small ships a chance) and just show everything as it is making sure a 1939 ships with modern guns, and advanced dumaresqs will just be better, more accurate and deadly compared to earlier variations. Trained crew which will come later will improve it even further (or ruin it) because everyone remembers a curious case of HMS Tiger which missed most the shots with the most advanced directors. 

If you see something that is balanced abnormally or incorrectly let us know it will be fixed as soon as main priorities are finished or even earlier. 


(edits: wording, typos, better image replacement)

You are slightly missing the point. Yes you can simulate armor penetration mechanics with a single dice roll.

But can you simulate a whole tank on tank engagement with a single dice roll? Sure you can. Now you are playing "Risk". Of course you can add modifiers to the dice roll and it becomes  "Axis and Allies". It will never become "War Thunder" this way though.

Back to the point. You are trying to simulate the naval gunnery process with a single dice roll by stacking a unholy amount of detailed modifiers. This won't work, for three reasons.

1) It's difficoult to balance. You will always have some modifiers that are so big that render all the other things irrelevant. You can already see this in the curent alpha.

2) There are some things that you can't simulate. Like for example the fact that someone might manouver during the flight time of the shell and dodge. Or shooting in a tight formation of ships and hitting someone else etc

3) Some things you technically can simulate, but will require endless huge tables of modifiers. Like for example some type of rangefinder performing bad against small ships but very good against big ships. Or slower shells being more effected by the crosswind but only after a certain distance because the velocity drops under whatever. Lighter guns with faster turret traversal being more accurate against fast moving ships. Take your pick.

Again, I reiterate: you have to split your gunnery model in three "phases". The first is rangefinding, that will produce an estimated target position. The second is the firing process that will produce a 3D trajectory of every shell and the third is to phisically simulate the actual shell path over time to the splash point to see if the shot connect.

Link to comment
Share on other sites

I'm fine with a statistical model. Abstraction simplifies things. We have to keep in mind that we're not talking about a big developer team here. Besides, pure statistic-based gunnery models have been implemented with success in games like this in the past (Rule the Waves or Fighting Steel come to mind), and it was both a serviceable and adequate enough model on them. Maybe it wasn't the best part of those games, but their abstracted gunnery model did the job just fine. So it can do here.


Said that: I'd agree that the 3D representation of the battles here (vs the 2D "map view" of RtW) means that a more accurate implementation with actual ballistics and shells being simulated is more desirable and attractive. But once again It's usually not wise to focus on the "what'd be the best of the best" when "good enough" usually is serviceable enough. At least when we're talking about games being developed by small teams, you want to keep things as simple as possible as long as they are "good enough" as to not detract from the game overall once properly fine tuned.

 As long as whatever system is put in place and does an adequate job at representing the overall feeling of naval gunnery, I'll personally be ok with it. Doesn't mean I wouldn't like to see a much more detailed system in place. If they can pull if off, great. If not, let's be understanding here and settle for something that will work, maybe not perfectly, but at least "well enough".

Edited by RAMJB
Link to comment
Share on other sites

3 hours ago, Riccardo Cagnasso said:

Yes you can simulate armor penetration mechanics with a single dice roll

WOWS, WOTS, etc have a limited vehicle entry, if model on RTWs then there's going to be multiple fields of ballistics, to maintain "real-time" combat, a "single dice roll" maybe the best and only option.

Link to comment
Share on other sites

On 11/23/2019 at 4:29 PM, RAMJB said:

I'm fine with a statistical model. Abstraction simplifies things. We have to keep in mind that we're not talking about a big developer team here. Besides, pure statistic-based gunnery models have been implemented with success in games like this in the past (Rule the Waves or Fighting Steel come to mind), and it was both a serviceable and adequate enough model on them. Maybe it wasn't the best part of those games, but their abstracted gunnery model did the job just fine. So it can do here.


Said that: I'd agree that the 3D representation of the battles here (vs the 2D "map view" of RtW) means that a more accurate implementation with actual ballistics and shells being simulated is more desirable and attractive. But once again It's usually not wise to focus on the "what'd be the best of the best" when "good enough" usually is serviceable enough. At least when we're talking about games being developed by small teams, you want to keep things as simple as possible as long as they are "good enough" as to not detract from the game overall once properly fine tuned.

 As long as whatever system is put in place and does an adequate job at representing the overall feeling of naval gunnery, I'll personally be ok with it. Doesn't mean I wouldn't like to see a much more detailed system in place. If they can pull if off, great. If not, let's be understanding here and settle for something that will work, maybe not perfectly, but at least "well enough".

The simulation of the full 3D ballistic trajectory of the shells is not the main focus here. You can just as well calculate the splash position and the time delta. But at the end of the day, a ballistic trajectory is a simple quadratic equation* and it's not that complicate to simulate.

Regarding the "small team" argument, I learned a long time ago that when programming computers, choosing the correct and more fitting approach, albeit more complex to initially implement, will in the long run make your job simpler. "Programming is abstracting complexity" used to say Sussman. This means, amongst other things, that when your job is properly done, you have a powerful tool to (relatively) simply manage a (relatively) complex problem. For this context, for example, you don't have to mantain and balance a huge amount of horrible enormous tables of modifiers.

Link to comment
Share on other sites

I am trying to understand what is the problem(s) here.
For what i have seen the shells do fly in some what good curvature and plunge down as they should more or less in correct way. Shells lose penetration power as they travel which is correct in the game. Shell drag in flight time? it might be there but not 100% sure. Long range shells do fly rather slowly so i assume it is there. Armor quality and angles do effect in pens and shell quality. Gun ware and decrease of accuracy due to poor quality makes sense and is good addition for extra layer of realism.

What i don't understand is are peeps complaining that they can't see where the enemy shells land so they could dodge? to see where own shells will land? what is the problem?
To be hones i don't care where the enemy shells are going to land nor do i want to see were my shells will splash. It's disappointing to see the disappointing result even before the shells had a chance to fly.
The exiting part is to go to the enemy ship you snipped and look yourself were they landed and witness some of the pens and detonations. If there are some random red dots telling that you missed i would be pissed.

Just pray to RNGeesus heretic and perhaps it will bless you with good hits. (X for doubt) 

Link to comment
Share on other sites

Let's see. The problem some people point out (which is not a problem per se, it's a design decision), is that to represent naval gunnery you can do one of two things:

a)-Simulate the shells themselves when fired, their actual trajectory, and if any happens to "collide" with the target upon reaching it, then calculate the penetration, damage, etc. For this you also need to simulate each individual crew of each ship working on the target solution. Where they will fire exactly will be decided by that simulated target solution.


b)-Calculate the "chances of hit" of each shell when fired based on multitude of modifiers, then roll against the statistical chances it has to hit. If it passes, it hits. If it fails, it misses. In this case the graphical representation you see of the shell flight it's just "for show" - the shell is going to hit or miss no matter what the moment it's fired. No need to check for the shell trajectory to see if it collides with the target warship at any moment. Here there's no need, either, to simulate the crew of every ship working on their respective target's solution - that is abstracted in the statistical calculation itself that the roll is made against.


The first one is more true to history. In history the crew would take a range measure to the target, calculate it's heading and speed, plot it's course and calculate a firing solution for the guns using different kind of devices (more crude or more advanced depending on the tech - from sliderules to actual mechanical computers). Then fire. Watch the fall of shot, and compare where it falls compared with the actual position of the enemy warship to see how right (or wrong) the solution is. Correct the solution according to the position of the enemy vs the fall of shot (for instance, if your shot falls well past the enemy your range measurement might be off. If your shot falls noticeably in front of the enemy, maybe you overestimated the speed, etc). Fire again with the revised solution. Watch fall of shot. Iterate for as long as the enemy keeps the same course and speed. If enemy changes course or speed, you'll need to figure the new ones, work on a new solution, fire away, rinse and repeat.

They didn't calculate their chances to hit and then roll a dice to see if they hit. But the end result (number of hits that one method would achieve vs the other) will be the same in most cases (some nuances go by however, but that's the cost of abstraction) as long as the correct modifiers are applied to the chance-to-hit probability.


You can see how historical purists want the first model. But it's much harder to implement, not just in coding, but also in the cost of processing power in very large battles (imagine a battle of 100 ships going against each other, Jutland scale, and the computer being forced to calculate every ship's attempt at Fire Control individually, not to mention simulate, register, and track every single shell simultaneously in flight). Meanwhile with the abstracted statistical system, it's not only easier to implement, it's going to give very similar results in the end (as long as you design the model with the proper modifiers for each individual thing that affects FCS and guns accuracy), and won't be anywhere as taxing for very large engagements.

I'm an historical purist myself. I'm also a very pragmatic guy. For me "good enough" works, if the "best,most accurate" solution is either too hard to implement, too taxing for the system, or a mix of both. Some people aren't that way and want either simplicity at any cost, or the polar opposite, as much complexity as needed in order to make things work in the screen as they did in real life. And that's where the complains you talk about come from :)

Edited by RAMJB
Link to comment
Share on other sites

Quote

a)-Simulate the shells themselves when fired, their actual trajectory, and if any happens to "collide" with the target upon reaching it, then calculate the penetration, damage, etc. For this you also need to simulate each individual crew of each ship working on the target solution. Where they will fire exactly will be decided by that simulated target solution.

That's the idea, but it you are incorrect when you say that you have to simulate every firing control and crew member. You can always choose an appropriate level of abstraction. You can simulate a single firing solution for every ship and then use some modifiers to handle the fact the different ships might have different "networking" of their fire solutions for different guns etc. The point is not to achieve a perfect simulation, which is nonsense and impossible, the point is have to have a handier and better suited model.

Quote

The first one is more true to history. In history the crew would take a range measure to the target, calculate it's heading and speed, plot it's course and calculate a firing solution for the guns using different kind of devices (more crude or more advanced depending on the tech - from sliderules to actual mechanical computers). Then fire. Watch the fall of shot, and compare where it falls compared with the actual position of the enemy warship to see how right (or wrong) the solution is. Correct the solution according to the position of the enemy vs the fall of shot (for instance, if your shot falls well past the enemy your range measurement might be off. If your shot falls noticeably in front of the enemy, maybe you overestimated the speed, etc). Fire again with the revised solution. Watch fall of shot. Iterate for as long as the enemy keeps the same course and speed. If enemy changes course or speed, you'll need to figure the new ones, work on a new solution, fire away, rinse and repeat.

Exactly. If you simulate this in a more accurate model, you will have a more natural implementation of the firing process. For example, ranging shots won't give a overall bonus to accuracy but only to the firing solution process. If your firing solution is already accurate it won't give you additional bonus or maybe it will make your fire solution process more robust. But if you are not hitting consistently because your guns are not accurate enough, better ranging won't help.

Likewise, extremely accurate guns will be useless without a accurate enough fire control equipement.
This is just a small example on how a more correct model will help you have a better simulation with less effort.

Quote

You can see how historical purists want the first model.

This is not about purism. This is about how to write a software, videogame in this case, that is easier to develop, mantain, balance and expand.

Quote

  But it's much harder to implement, not just in coding, but also in the cost of processing power in very large battles (imagine a battle of 100 ships going against each other, Jutland scale, and the computer being forced to calculate every ship's attempt at Fire Control individually, not to mention simulate, register, and track every single shell simultaneously in flight).

This is theorically correct but pratically incorrect. Calculate the firing solution before firing, is basically just another separate dice roll with his modifiers. Then you have what amounts to another dice roll to calculate gun dispersion. Finally you have to implement the balistic trajectory of the shell, which is marginally more complex . None of these tasks are computationally intensive. If implemented correctly, this won't have any computational impact comparable of actually rendering the ships models, the explosions and the shells themselves on the 3d engine. Without even starting to take into account that most of these are entirely separate tasks that you can easily move to some other thread and the average computer will have probably a couple of underused cores when playing a game.

Edited by Riccardo Cagnasso
Link to comment
Share on other sites

Also, think about the modding support.

Say that you have a class

class FiringComputer{
	FiringComputer(Ship s){...}

	Point2D GetFiringSolution(Ship target){...}
}

You don't like how the firing computer was implemented by the developers? Write yours!

Do you want a futuristic mod? Suit yourself. Want to differentiate the alghoritms between wwi and wwii? have fun.

I can't sit here and rant for a couple of millennia about how awful Unity3D is. But the modding support is not one of its flaw.
 

I bet that some crazy lunatic will pull out the specifications of an actual mechanic firing solution table and implement a software emulator of it as a mod. Now, try to think about the coolness of it without having your head actually.

Edited by Riccardo Cagnasso
Link to comment
Share on other sites

I suspect there's also the issue of a greater requirement of accuracy with respect to tracking the exact position of each ship and their relative facings at the precise moment the shells arrive in the gunnery solution "area". I don't know if that makes the calculation of the precise location of any hit on the target more difficult, however, because I don't know exactly how they're accomplishing that.

Whatever the exact mechanism, the requirement is to calculate the exact hit location. They could be using some sort of means that takes the specific design of the ship and applies a hit from 'x' degrees and 'y' range to determine exact possible hit zones or items AND has probabilities assigned to them, or some other means to achieve the same effect.

The old "Bismarck" and "Jutland" 'advanced' combat rules using cardboard markers to move around the floor did exactly that. If you rolled a hit you consulted a different 'sector tool' that told you which location table to use to determine where to apply the hit. If the specific hit had armour, such as belt, deck or turret, you then consulted your gun performance against the armour and got results based on whether or not you penetrated that armour.

As an aside, the rule set "Tractics" for WW2 AFV combat, designed for use with 1/72 scale models (that you bought and assembled yourself), also assigned hit location percentages based on the bearing of incoming fire against which you rolled. It then included angle of impact plus inherent armour sloping to arrive at an effective armour thickness.

[For all its many faults, one thing I did find interesting was how World of Tanks addressed that such that you could miss your target yet hit someone unseen in the distance and then it applied that hit through a clearly defined process, supposedly 'tracing' the path of the shell from the moment of impact.]

In many ways it would seem this game is providing a visually satisfying means of doing much the same thing as I described in "Bismarck" and "Jutland" but with some greater details. As an aside, I am a little worried about this emphasis on "angling", and as part of that the unexplained mechanism that refers to "angling" of armour as part of the hull type itself (it's in the stats on the right side of screen in the shipyard).

Plus the ridiculous power of HE shells against armoured targets really MUST get addressed. I did some reading and things like the pre-dreadnought BB Royal Sovereign class, first in service 1892, supposedly had transverse bulkheads fore and aft of 16 and 14 inches respectively. From memory, the in-game Mark 3 12" guns have to be within a fairly close range to pen that using AP. Yet when I see a BB presenting bow or stern, I change to HE because stern deck/belt extended HE shells have a habit of causing the BB to be destroyed with one hit through main ammo explosion. How on earth is that possible?

I do agree the method for which @Riccardo Cagnasso is advocating is the more real in its design and execution.

I'm not a fan, for example, of the fact you can't hit any ship OTHER than your intended target because the method used only considers your target in the hit/miss calculation. I have seen shells pass right through another ship. I understand why, but it doesn't make it any less jarring to see.

I also suspect that if I'm correct in my guesses about the hit location calculation that would explain why you can see a hit that looks very improbable, seeming to pass through part of the model to hit somewhere else.

I also agree, however, that I can't imagine the devs are going to move away from their design decision at this late stage.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...