TheWesDude said:
sander:
for every skill there are 2 variables.
one is the displayed and the value of the skill.
the other is the training points in that skill.
the training value is what determines the " red progress bar ".
the problem is the engine doesnt change the training value every time the skill value changes.
Again: what a bunch of morons. As I said, they can't even do a simple assignment. See, they have two variables, one for what they show, one for the total progression of the skill.
Now, what they apparently did, was say 'shown value := shown value + x', but not update the actual internal value of the skill.
What this is is incredibly poor software design, it should not be possible to do that.
Generally, one could easily say that the shown value of the skill is either a derived attribute, derived from the progression variable, or it is a seperate variable (where the progression is monitored seperately, and reset after each level). If they did it in any other way, they're utter morons when it comes to software design. This is extremely basic.
Now, if it is a derived variable, one does not need to store it seperately at all. However, you can do that to preserve processor time (the argument against it would be saving memory space, but I think processor time would be more important in this case). If they did store it seperately because of it, no-one should ever have to touch that stored variable directly to alter it. You only need two functions, one to increase the progression, and one to *read* the shown skill. You never need to write to it, ever. Hence, any decent programmer would only create those two functions. In an object-oriented environment, it's always a good idea to work with functions for attributes of an object, and it's easy.
Furthermore, the programmer who did this apparently did not know the architecture properly either, otherwise he wouldn't have made this mistake.
So, if it is a derived variable, they fucked up in terms of software design and implementation.
If it was not a derived variable, but a seperate variable where the progression variable is maintained within the boundaries of each level, I can't even imagine how they could've created this bug.
EDIT: Rosh, yes, but the problem with such an implementation would be in terms of both redundancy (I'm assuming these rewards are permanent), and possibly in level progression, as I think the farther you get, the harder it becomes to increase a skill. It's still a viable option, though, and obviously a better one than what Bethesda did here.