Pages: [1] :: one page |
|
Author |
Thread Statistics | Show CCP posts - 0 post(s) |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2180
|
Posted - 2013.07.21 16:56:00 -
[1] - Quote
NOTICE: This is going to bevery long, very complicated and readers who dont care to read all of it may want to stay away.
This thread isregarding Skills and how they apply to items and their overall impact on your resources for your dropsuit. Ill try to be as brief as possible but theres a lot to cover in this.
First of all.. Skills apply different bonuses to different things and this is good. However, theres some discrepancy and important stuff not mentioned. We'll look at Assault Rifles as our main example. When used on a Gallente Assault Suit, theres a 5% reduction to CPU/PG needs. Lets focus on that CPU requirement for a bit. When combined with Light Weapon Operation theres a 3% per level reduction.
Its important to understand that those values dont work in tandem and what I mean by this is the percentages dont add. Lets say I hve Gallente Assault Suits 5 and Light Weapon Operation 4. Their values are -25% and -12% accordingly, which when combined add to -37%, but the reduction is based on the result, not the total. Heres an example:
Duvolle Assault Rifle Gallente Assault 5: 90 x .75 = 67.5 Light Weapon Operation 4: 90 x .88 = 79.2 Combined Bonus of Two Skills: 59.4
This is because each skill operates separately, reducing from the result of the previous. It works in any order as basic math applies and the formula is the same either way. Now if it had reduced from the total, the end result would be 56.7, 2.7 less than thecurrent value.
Bear in mind that these results are rounded off, so 59.4 is actually 59. Had it been 56.7 it would have been rounded to 57. This is important as this is going to heavily affect our next example.
Now that that is out of theway we can move on to the important bit. How these skills apply to your suit. Be aware, readers, that Nanohives benefit from a stealth bonus from Nanocircuitry as a 5% CPU reduction per level that isnt stated on the skill. I have a separateforum thread regarding this.
Im going to list a fitting and with each item Im going to list the actual CPU cost and the skills associated that reduce the value.
Example Suit:
Gallente Logistics G-I (5% reduced CPU/PG for equipment per level) skill level 1.
Duvolle Assault Rifle (Light Weapon Operation 4): 79.2 Hacked EX-0 AV Grenade (Explosives 3): 21.25 K-2 Nanohive (Nanocircuitry 3): 33.915 K-2 Nanohive (Nanocircuitry 3): 33.915 K-2 Nanohive (Nanocircuitry 3): 33.915
Total CPU Cost: 202.195
Now, because each item is rounded off to whole numbers individually..
Actual CPU Cost: 204
Basically what this means is if you've ever been short one CPU or one PG on a tight fit, its almost inevitably because the items are rounded off rather than calculated via a decimal system. The actual values are less than what they really are. This problem was recognized in Eve Online and thats why Ships have 000.00 as their CPU/PG format as the fittings, being unbelievably tight in some cases, needed the decimal system to provide room for the numerical values.
This is most noticable for Veteran players who have skills at level 5 when their suit needed -just one more- and inevitably find that they wasted hundreds of thousands of skill points for no gain as the value was still rounded off in the end, whereas if it were decimals they would have had the necessary room to complete their perfect fitting.
So, consider this as a formal request to implement that system as it will benefit ALL players, not just one specific specialization. Thank you for reading and I hope to have some support from the viewers =)
|
Bendtner92
Internal Error. Negative-Feedback
767
|
Posted - 2013.07.21 17:13:00 -
[2] - Quote
I can see that it would be useful for anything CPU/PG related to not be rounded of, but instead used the decimals. I don't know how complicated it would be for new players etc, but I can certainly see it's use.
I don't know how easy it would be for CCP to do it, but if they could do it I wouldn't mind. |
ZDub 303
TeamPlayers EoN.
1102
|
Posted - 2013.07.21 17:21:00 -
[3] - Quote
Great post Aeon, I've noticed these same issues myself.
Hopefully they read it. |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2182
|
Posted - 2013.07.21 17:30:00 -
[4] - Quote
Bendtner92 wrote:I can see that it would be useful for anything CPU/PG related to not be rounded of, but instead used the decimals. I don't know how complicated it would be for new players etc, but I can certainly see it's use.
I don't know how easy it would be for CCP to do it, but if they could do it I wouldn't mind.
Honestly, new players dont even need to understand it if the numbers are applied correctly. Its mostly the EFT (or in this case DFT) warriors who will notice this. Even with Core/Electronics/Engineering 5 I still find myself always being just one PG/CPU of my fits and I wanted to know why my math was wrong after investing so many SP.
Even if it doesnt blatantly say "202.19" on the fitting screen and all the numbers were calculated behind the scenes itd still be beneficial.
Honestly the absolute easiest fix for this is to round off to the nearest tenth, rather than the nearest whole number. Simple code change from my experience with gaming development but then again Ive never worked with the Unreal Engine - it might be hard coded. |
Zeylon Rho
Subdreddit Test Alliance Please Ignore
1348
|
Posted - 2013.07.21 17:37:00 -
[5] - Quote
Aeon Amadi wrote:Bendtner92 wrote:I can see that it would be useful for anything CPU/PG related to not be rounded of, but instead used the decimals. I don't know how complicated it would be for new players etc, but I can certainly see it's use.
I don't know how easy it would be for CCP to do it, but if they could do it I wouldn't mind. Honestly, new players dont even need to understand it if the numbers are applied correctly. Its mostly the EFT (or in this case DFT) warriors who will notice this. Even with Core/Electronics/Engineering 5 I still find myself always being just one PG/CPU of my fits and I wanted to know why my math was wrong after investing so many SP. Even if it doesnt blatantly say "202.19" on the fitting screen and all the numbers were calculated behind the scenes itd still be beneficial. Honestly the absolute easiest fix for this is to round off to the nearest tenth, rather than the nearest whole number. Simple code change from my experience with gaming development but then again Ive never worked with the Unreal Engine - it might be hard coded.
I think this is just a compounding of the lack of transparency on calculations elsewhere. The "just one more PG" phenomenon will happen regardless, as we're always going to be trying to cram as much as possible within the fitting as we can. |
Bendtner92
Internal Error. Negative-Feedback
767
|
Posted - 2013.07.21 17:45:00 -
[6] - Quote
Zeylon Rho wrote:I think this is just a compounding of the lack of transparency on calculations elsewhere. The "just one more PG" phenomenon will happen regardless, as we're always going to be trying to cram as much as possible within the fitting as we can. I don't know really. In some cases you might end up with everything on your fitting to use up xx.5x CPU or PG, in which case you would be "missing out" on a lot of CPU/PG because it always round up.
Also there's a lot of skills where a particular level won't give you anything extra, for example pretty much all the PG skills for each individual weapon. The small PG reduction you get from these are so small that in some cases the next level of the skill won't even give you another 1 PG. This is especially a problem if it's level 5 of the skill that don't give you anything extra, I mean why is the level 5 there?
If it was changed to using decimals instead, all skills would always give you something, even if it's only 0.4 PG for example in the case of these PG skills for the each weapon. |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2183
|
Posted - 2013.07.21 17:46:00 -
[7] - Quote
Zeylon Rho wrote:Aeon Amadi wrote:Bendtner92 wrote:I can see that it would be useful for anything CPU/PG related to not be rounded of, but instead used the decimals. I don't know how complicated it would be for new players etc, but I can certainly see it's use.
I don't know how easy it would be for CCP to do it, but if they could do it I wouldn't mind. Honestly, new players dont even need to understand it if the numbers are applied correctly. Its mostly the EFT (or in this case DFT) warriors who will notice this. Even with Core/Electronics/Engineering 5 I still find myself always being just one PG/CPU of my fits and I wanted to know why my math was wrong after investing so many SP. Even if it doesnt blatantly say "202.19" on the fitting screen and all the numbers were calculated behind the scenes itd still be beneficial. Honestly the absolute easiest fix for this is to round off to the nearest tenth, rather than the nearest whole number. Simple code change from my experience with gaming development but then again Ive never worked with the Unreal Engine - it might be hard coded. I think this is just a compounding of the lack of transparency on calculations elsewhere. The "just one more PG" phenomenon will happen regardless, as we're always going to be trying to cram as much as possible within the fitting as we can.
Valid point, but that should be because its feasibly impossible, not because calculations mechanics are rounding off to whole numbers and presenting false totals =) |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2183
|
Posted - 2013.07.21 17:54:00 -
[8] - Quote
Bendtner92 wrote:Zeylon Rho wrote:I think this is just a compounding of the lack of transparency on calculations elsewhere. The "just one more PG" phenomenon will happen regardless, as we're always going to be trying to cram as much as possible within the fitting as we can. I don't know really. In some cases you might end up with everything on your fitting to use up xx.5x CPU or PG, in which case you would be "missing out" on a lot of CPU/PG because it always round up. Also there's a lot of skills where a particular level won't give you anything extra, for example pretty much all the PG skills for each individual weapon. The small PG reduction you get from these are so small that in some cases the next level of the skill won't even give you another 1 PG. This is especially a problem if it's level 5 of the skill that don't give you anything extra, I mean why is the level 5 there then? If it was changed to using decimals instead, all skills would always give you something, even if it's only 0.4 PG for example in the case of these PG skills for the each weapon.
Another good point. Heres an example.
Scrambler Pistol Fitting Optimization on a Standard Scrambler Pistol
Level 0: 2 PG 1: 1.9 pg 2: 1.8 pg 3: 1.7 pg 4: 1.6 pg 5: 1.5 pg
Might help for higher variants like the Prototype Assault Scrambler Pistol (level 5 reducing PG to 8 from 10 with rounding)but honestly 1,544,600 SP for 2 powergrid is senseless and it provides absolutely nothing for standard variants.
|
Cass Caul
Namtar Elite Gallente Federation
8
|
Posted - 2013.07.21 18:08:00 -
[9] - Quote
Here's a fun one. Gallente Scout with 2 complex Kinetic Catalyzers has a sprint speed of 10.01
Gallente Scout base speed: 7.6 Biotic Upgrades V Bonus: +5% to sprint speed
Complex Kinetic Catalyzer: +12% Sprint Speed Kinetic Catalyzation V: +5% to Kinetic Catalyzer module efficacy
First we have to ask what adding to efficacy means. does that make it +17% or does it make it +12.6%? well if 10.01 is my sprint speed than it is neither.
(7.6 x 1.05)(1.126)(1.1043) = 9.92 7.6 x 1.05)(1.17)(1.1478) = 10.71654 --> 10.72
ummm, what's going on here? lol
|
Bendtner92
Internal Error. Negative-Feedback
767
|
Posted - 2013.07.21 18:19:00 -
[10] - Quote
Cass Caul wrote:Here's a fun one. Gallente Scout with 2 complex Kinetic Catalyzers has a sprint speed of 10.01
Gallente Scout base speed: 7.6 Biotic Upgrades V Bonus: +5% to sprint speed
Complex Kinetic Catalyzer: +12% Sprint Speed Kinetic Catalyzation V: +5% to Kinetic Catalyzer module efficacy
First we have to ask what adding to efficacy means. does that make it +17% or does it make it +12.6%? well if 10.01 is my sprint speed than it is neither.
(7.6 x 1.05)(1.126)(1.1043) = 9.92 7.6 x 1.05)(1.17)(1.1478) = 10.71654 --> 10.72
ummm, what's going on here? lol
7.6 * 1.05 * 1.126 * 1.126 = 10.117 = 10.1
Edit: Oh wait, forgot the stacking penalty for the second module, let me do the math again.
Edit 2: Hmm, well then it gives about 9.8, maybe the stacking penalty isn't working in this case? |
|
Django Quik
R.I.f.t
1023
|
Posted - 2013.07.21 18:42:00 -
[11] - Quote
Cass Caul wrote:Here's a fun one. Gallente Scout with 2 complex Kinetic Catalyzers has a sprint speed of 10.01
Gallente Scout base speed: 7.6 Biotic Upgrades V Bonus: +5% to sprint speed
Complex Kinetic Catalyzer: +12% Sprint Speed Kinetic Catalyzation V: +5% to Kinetic Catalyzer module efficacy
First we have to ask what adding to efficacy means. does that make it +17% or does it make it +12.6%? well if 10.01 is my sprint speed than it is neither.
(7.6 x 1.05)(1.126)(1.1043) = 9.92 7.6 x 1.05)(1.17)(1.1478) = 10.71654 --> 10.72
ummm, what's going on here? lol
I'm not sure what your 3rd bracketed value in those calculations is but it should work as follows: Base speed x skill buff x kincat x kincat buff x kincat x kincat buff (7.6 x 1.05) x (1+ 0.12 x 1.05) x (1+ 0.12 x 1.05) = 7.98 x 1.126 x 1.126 = 10.12
I've tried doing this several other ways (such as adding the kincat bonuses each applying only to the base stats and all sorts) but nothing seems to come to the 10.01 you've got. |
Bendtner92
Internal Error. Negative-Feedback
767
|
Posted - 2013.07.21 18:46:00 -
[12] - Quote
Django Quik wrote:I'm not sure what your 3rd bracketed value in those calculations is but it should work as follows: Base speed x skill buff x kincat x kincat buff x kincat x kincat buff (7.6 x 1.05) x (1+ 0.12 x 1.05) x (1+ 0.12 x 1.05) = 7.98 x 1.126 x 1.126 = 10.12
I've tried doing this several other ways (such as adding the kincat bonuses each applying only to the base stats and all sorts) but nothing seems to come to the 10.01 you've got. I've tried to figure it out as well and the closest I've come is this (also note that you also forgot about the stacking penalty in your example):
7.6 * 1.05 * 1.126 * 1.10962 (which is 87% of 1.126) = 9.97.
I honestly have no idea where the last .04 comes from. |
Django Quik
R.I.f.t
1023
|
Posted - 2013.07.21 18:53:00 -
[13] - Quote
Bendtner92 wrote:Django Quik wrote:I'm not sure what your 3rd bracketed value in those calculations is but it should work as follows: Base speed x skill buff x kincat x kincat buff x kincat x kincat buff (7.6 x 1.05) x (1+ 0.12 x 1.05) x (1+ 0.12 x 1.05) = 7.98 x 1.126 x 1.126 = 10.12
I've tried doing this several other ways (such as adding the kincat bonuses each applying only to the base stats and all sorts) but nothing seems to come to the 10.01 you've got. I've tried to figure it out as well and the closest I've come is this (also note that you also forgot about the stacking penalty in your example): 7.6 * 1.05 * 1.126 * 1.10962 (which is 87% of 12.6) = 9.97. I honestly have no idea where the last .04 comes from. Edit: The only explanation I have is that the base speed value must be closer to around 7.63, and it just shows as 7.6. Using 7.63 as the base sprint speed give very close to 10.01. Yeah just realised and tried and got the same. I tried working it backwards from 10.01 but it provides no clues. |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2184
|
Posted - 2013.07.21 19:03:00 -
[14] - Quote
Here's what my friend on Eve Online, Verik dra'Har, has to say:
"The problem here isn't that they're rounding, but that they are rounding everytime something new is applied to save memory space on the server.
An integer takes up four bytes of space in memory, whereas a double takes up eight. Double precision math is what you refer to as decimal. In a computer decimal math and integer math are totally separate and integer math is much, much faster. In fact, double precision math being slower is the entire point of a GPU which amounts to specialized hardware that just does math.
Size of char: 1 Size of int: 4 Size of short int: 2 Size of long int: 4 Size of float: 4 Size of double: 8 Size of wchar_t: 4
In theory they could switch to floats, but that would require a **** ton of hand edits to the codebase since they're a pain in the ass to work with in some cases. A float is a double but smaller. It's also a decimal number, but takes less space i nmemory. It also requires special notation in code most f the time which is why no one uses them for the most part.
Problem is, you're talking a **** ton of man hours to edit the code for float friendliness. The switch from int to double would take one guy about 20 minutes. So, the fix is dependant upon how player files are stored in memory, stored in file/database, and when those calculations are actually made.
Basically, the calculations need to all be done in one single line of code and rounded at the very, very last second when stored. For an unfixed amount of mods, because why do math when the answer is just 0 since you don't have skill/modifier, you just dont't know how many modifications you are going to have to make. So as modifications are discovered, each calculation happens separately until you run out of necessary calculations.
The most liekly scenarios where you store the mods in a list, now we discussed that everything is probably stored as a whole number (integer) for space/efficiency. Those long lists of equations cann0ot be performed on a computer unless there's a fixed amount. Not in one single line which would result in an optimal calculation. You have to loop through the list performing a single calculation on each mod/member of that list, which results in rounding every time, which is how this error occurs.
How to fix this without changing the codebase big time? Can't without making the final result a double.
On a character load, the current values for the items you own are loaded in from the respective item database, skill mods applied, etc. This way nothing you do to your character actually effects anything but your character.
1.) They could change the value thats stored in the player file memory to a double with some code edits.
2.) they could change it to a float to use the same amount of memory space as an integer, but that would require a larger series of code dedits depending on the language they used but since it's probably C/C++ floats are typically a pain in the ass to use.
So it's not a rookie error, it probably was a decided trade off between player convenience and efficiency and you lost out. At least now you know, and can explain, why it probably is happening." |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2184
|
Posted - 2013.07.21 19:07:00 -
[15] - Quote
Basically guys, without an expansion worthy update tothe codebase, the memory required for this changed would be double what it is now. Not quite feasible and we're probably not going to see this changed. |
Cass Caul
Namtar Elite Gallente Federation
8
|
Posted - 2013.07.21 19:09:00 -
[16] - Quote
Django Quik wrote:Bendtner92 wrote:Django Quik wrote:I'm not sure what your 3rd bracketed value in those calculations is but it should work as follows: Base speed x skill buff x kincat x kincat buff x kincat x kincat buff (7.6 x 1.05) x (1+ 0.12 x 1.05) x (1+ 0.12 x 1.05) = 7.98 x 1.126 x 1.126 = 10.12
I've tried doing this several other ways (such as adding the kincat bonuses each applying only to the base stats and all sorts) but nothing seems to come to the 10.01 you've got. I've tried to figure it out as well and the closest I've come is this (also note that you also forgot about the stacking penalty in your example): 7.6 * 1.05 * 1.126 * 1.10962 (which is 87% of 12.6) = 9.97. I honestly have no idea where the last .04 comes from. Edit: The only explanation I have is that the base speed value must be closer to around 7.63, and it just shows as 7.6. Using 7.63 as the base sprint speed give very close to 10.01. Yeah just realised and tried and got the same. I tried working it backwards from 10.01 but it provides no clues.
Found it. the true value of Gallente Scout Suit's base speed is 7.66R
7.66R x 1.05 x 1.126 x 1.1043 = 10.0097 --> 10.01
Formula for stacking penalties is S(n) = 0.5^[((n-1) / 2.22292081) ^2] |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2184
|
Posted - 2013.07.21 19:31:00 -
[17] - Quote
Then again theyre going to have the change the codebase for modifiers ANYWAY because of useless skills like Plasma Cannon Ammo Capacity, which at level 5 gives you 2.25 extra rounds. |
Pje251296
KILL ORDERS
61
|
Posted - 2013.07.21 19:38:00 -
[18] - Quote
Very interesting numbers here. |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2184
|
Posted - 2013.07.21 20:20:00 -
[19] - Quote
Pje251296 wrote:Very interesting numbers here.
Even more interesting in your fittingscreen =) |
ZDub 303
TeamPlayers EoN.
1105
|
Posted - 2013.07.21 20:25:00 -
[20] - Quote
We could also just multiply CPU/PG numbers by 10. After all they are just numbers right? Who cares if your suit has 800 CPU or 8000 CPU. |
|
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2184
|
Posted - 2013.07.21 21:16:00 -
[21] - Quote
ZDub 303 wrote:We could also just multiply CPU/PG numbers by 10. After all they are just numbers right? Who cares if your suit has 800 CPU or 8000 CPU.
The only thing saving the world from me using all complex damage mods/plates/reps and proto gear are those values O.o |
ZDub 303
TeamPlayers EoN.
1112
|
Posted - 2013.07.21 21:20:00 -
[22] - Quote
Aeon Amadi wrote:ZDub 303 wrote:We could also just multiply CPU/PG numbers by 10. After all they are just numbers right? Who cares if your suit has 800 CPU or 8000 CPU. The only thing saving the world from me using all complex damage mods/plates/reps and proto gear are those values O.o
multiply ALL numbers.
i.e. CDM goes from 68 CPU to 680 CPU.
It just adds the decimal without adding the decimal. |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2184
|
Posted - 2013.07.21 21:31:00 -
[23] - Quote
ZDub 303 wrote:Aeon Amadi wrote:ZDub 303 wrote:We could also just multiply CPU/PG numbers by 10. After all they are just numbers right? Who cares if your suit has 800 CPU or 8000 CPU. The only thing saving the world from me using all complex damage mods/plates/reps and proto gear are those values O.o multiply ALL numbers. i.e. CDM goes from 68 CPU to 680 CPU. It just adds the decimal without adding the decimal.
That might make sense mathematically but coding itis a completely different story. Everyone wants thegame to run smoothly and Idoubt the players want a better system without it being done in such a way that it impacts performance.
Less we run into the great bug of invalid fittings again. |
Aeon Amadi
A.N.O.N.Y.M.O.U.S. League of Infamy
2186
|
Posted - 2013.07.22 03:39:00 -
[24] - Quote
Not going to lie, if there was every a thread I wanted a dev post on, this would be it. |
|
|
|
Pages: [1] :: one page |
First page | Previous page | Next page | Last page |