2014-09-20, 11:51 AM
In a properly coded program, all box opening would be done using the same piece of code ("library subroutine"), so new events wouldn't have a chance to be miscoded in an exploitable way.
In a properly managed team, every piece of code would be reviewed by a senior team member or leader.
The way it seems to me, from observing that they often have the same bug recur:
There isn't a library routine. Or there are several (much like the multiple types of untradeable power elixirs in the game), only one of which works right. Nobody deleted the bad ones because Nexon never do cleanup.
When a programmer is given the task to add a new type of box to the game, they copy-paste code from some previous box, or randomly decide which library routine to use, not knowing or caring what the difference is between them.
Nobody checks over the code, except possibly the parts that needed changing after copy-pasting (e.g., the list of items and probabilities). QA run it and if the box seems to be giving out what it should and not crashing the game, they're happy. QA is also new or ignorant of exploits and don't try to glitch the boxes.
When an exploit is reported and fixed, it's usually done by a different person than the one who originally coded the box. The original coder never gets the feedback that their code was faulty, and therefore when they have to code another box, they'll likely do it the same way again. The bug fixer does not bother to search through the entire source code for more places where the same bug appears, because they are in a rush to get to the next bug, or because they don't care.
Bonus fail: when a hotfix is applied to the GMS servers, it is often not included in the main KMS development version, or not applied to versions that are already undergoing localizations for GMS, so the bug (exploit) is very likely to come unpatched at a future version update.
What is even sadder is that if Wizet is developing MapleStory 2 using the same (lack of) methodology, its code will become pomegranate in a couple of years even if it's gorgeously tight on release.
In a properly managed team, every piece of code would be reviewed by a senior team member or leader.
The way it seems to me, from observing that they often have the same bug recur:
There isn't a library routine. Or there are several (much like the multiple types of untradeable power elixirs in the game), only one of which works right. Nobody deleted the bad ones because Nexon never do cleanup.
When a programmer is given the task to add a new type of box to the game, they copy-paste code from some previous box, or randomly decide which library routine to use, not knowing or caring what the difference is between them.
Nobody checks over the code, except possibly the parts that needed changing after copy-pasting (e.g., the list of items and probabilities). QA run it and if the box seems to be giving out what it should and not crashing the game, they're happy. QA is also new or ignorant of exploits and don't try to glitch the boxes.
When an exploit is reported and fixed, it's usually done by a different person than the one who originally coded the box. The original coder never gets the feedback that their code was faulty, and therefore when they have to code another box, they'll likely do it the same way again. The bug fixer does not bother to search through the entire source code for more places where the same bug appears, because they are in a rush to get to the next bug, or because they don't care.
Bonus fail: when a hotfix is applied to the GMS servers, it is often not included in the main KMS development version, or not applied to versions that are already undergoing localizations for GMS, so the bug (exploit) is very likely to come unpatched at a future version update.
What is even sadder is that if Wizet is developing MapleStory 2 using the same (lack of) methodology, its code will become pomegranate in a couple of years even if it's gorgeously tight on release.

