@TheSquid:
Yeah, i knew that was how the codes worked, each new character in the code was reliant on ones before it, but because of that set-up, Key-Generators are relatively easy to make, once the "hacker" figures out the sequence...
And once one Key-Generator is made, many more can be too...
That is why Cd-Checks and online database checks are the best for refrencing the inputed Serial Key, because the online database is impossible to get past (unless your database isn't secure of course) Much like the War3 and DiabloII ones...
Also, encrypt things, make a string encryptor to encrypt your world data (if it's in an external file) which would decrypt it as it is read in, this would help prevent "hackers" from stealing world data etc... Although, this approach is much like the Key approach, once the "hacker" figures out the encryption sequence, it is easily reproduced (Considering that you probably won't be making anything more complex than scrambling the characters)...
Hope I Helped...

Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy