 |
|  |
 |
|
E_T
|
 |
Orlando, Florida
Mar 2001 time: 00:26
|
|
quote: Originally posted by Dominae
I would like to know whether he's been actively extracting the RNG from the save to play this particular game.
.
.
.
If he is feeding the save file to some indepedent program, then I think we can make the case that he's "cheating". Whether or not he gains useful information from this (he claims he's not) is beside the point, since the anti-cheating clause says that you cannot replay or manipulate the save.
It would indeed be very silly of him to admit that he's looking at the RNG while claiming that this does not give him any discernable benefit; why do it in the first place?
Dominae |
Well, technically, feeding the save to a 3rd party program, in order to look at the random seed is NOT manipulation it. You are not making any changes....
Now, that that is said, I wholely agree, we should only have 2 programs (maybe 3) do ANYTHING with the save. They are the Civ3.exe files, the e-mail program your using (to attach and download the save) and possibly an archiving/compression tool, like PKZip or WinZip. Those are the only things that SHOULD be used with any of the saves.
E_T
|
|
|  |
 |
|
wervdon
|
|
Few points:
1) He (Lucky) said in one of the PM's that he has not looked that Random Seed in the ISDG but that we'd have to take his word for it.
2) He (Lucky) said he's not hacking the save to get the seed, instead he's using a program that monitors the memory space allocated to a running program and that looks for changing values. In effect he's hacking the running exe to get his data.
3) The thought that you can't get any future results out of the starting seed value (beyond the next combat round) is BS. Anyone who knows enough to extract a random seed in the manner he's describing (though I'm sure he didn't write the software he's using to get his information) should know that. I've already pointed out pretty well above how easy it would be to go from 1 random result to as many as you want just by writing a 10-15 line C program.
Also anyone who thinks that the seed stored by rand() and srand() wouldn't be in civ3's allocated memory (it is a call to a library function), should keep in mind that preserve random seed likely stores a copy of the value in a global variable somewhere in the program itself for the purpose of saving it somewhere in the save file. Which also means if you know the last value generated, it would be pretty trivial to find it in the save and then hex edit it to a value that got you good results (say great leaders) in the past. Of course, Mongoose couldn't then reproduce your results, unless of course he used a hex-edited save that you sent him yourself 
Please don't quote this last remark if you quote me:
Personally, I think he's guilty as sin and is only giving us this much info out of guilt. There's no way we'll be able to prove it without a confession really, but as for me reading his PM posts took me from 95% convinced to 99.999999999%. For one thing there is just no reason to go to the serious trouble of hacking to find the random seed in memory other than predict or muck with results. If he was doing it for single player....then whats the point just disable preserve seed and reload.
One last comment: His notion that we are stupid enough to believe that anyone who plays civ long enough or views the randomly changing seed value long enough gains an almost "psychic" connection to future combat results without any need to hack is downright insulting.
EDIT:
http://hpcf.nersc.gov/vendor_docs/i...setrf2/rand.htm
For anyone who wants to see how random #'s in computers actually work. There's other algorithm's out there (and I'm not sure if Visual C++ uses this one or not), but they all work in a very similar manner.
Last edited by wervdon on 19-02-2004 at 18:38
|
|
|  |
 |
|
Dominae
|
|
quote: Originally posted by wervdon
2) He (Lucky) said he's not hacking the save to get the seed, instead he's using a program that monitors the memory space allocated to a running program and that looks for changing values. In effect he's hacking the running exe to get his data.
|
I think we can agree that, for our purposes here, this is one and the same. If Lucky is expecting to use this distinction as his defense, it's not likely to be well-received.
quote:
3) The thought that you can't get any future results out of the starting seed value (beyond the next combat round) is BS.
|
I believe what Lucky was trying to say is that he's never gone so far as to figure it out himself.
quote:
Also anyone who thinks that the seed stored by rand() and srand() wouldn't be in civ3's allocated memory (it is a call to a library function)
|
Are you certain that the code uses either of these two functions? If not, sheds no light on the situation. The code could also use the RNG values in some weird (non-sequential) way, which you would have to figure out in case you want to cheat. Again, Lucky is claiming that he has not figured this stuff out.
I know it's bad form to play devil's advocate here, but let's get the facts straight.
Dominae
P.S: In case it's important to you when reading my thoughts on this, I also have a B.Sc. in Computer Science, including some non-trivial C experience.
Last edited by Dominae on 19-02-2004 at 20:22
|
|
|  |
 |
|
Dominae
|
|
quote: Originally posted by E_T
Well, technically, feeding the save to a 3rd party program, in order to look at the random seed is NOT manipulation it. You are not making any changes.... |
I guess we have a different definition of manipulation. According to my trusty dictionary, to "manipulate" means: to handle or use, esp. with some skill, in a process or action; example: to manipulate a pair of scissors. You do not need to alter something to manipulate it. Indeed, if Lucky were using the save to view the cities/units/etc. of all the other civs, he would not be changing anything, but he would surely be manipulating the data.
Dominae
|
|
|  |
 |
|
asleepathewheel
|
|
listening too long to one song
Mar 2002 time: 00:26
|
|
Is lucky willing to reveal either the program he uses or the section of code that is the RNG?
Is it worth trying to duplicate Lucky's feat, or do we have enough information to go to Firaxis without the specifics.
|
|
|  |
 |
|
Dominae
|
|
quote: Originally posted by wervdon
Also lucky couldn't just look at the # and say this value means a horse wins! What he would need to be able to do is figure out how firaxis took the results of a rand() call and transformed it into a dice roll.
|
Exactly. He's claiming that he's not figured it out. He's claiming that the game uses the same RNG when 0.5 < A/D < 2, which "explains" why a Swordsmen and a Horsemen have equal chances of killing a Merc on open ground. Clearly he's got something wrong, because there's good evidence that this is untrue. This helps his defense: if he really knew how the game uses the RNG he would have figured out that Sworsdmen do outperform Horsemen.
quote:
Generally speaking this is done via a modolus (sp?) operator, but there's other methods as well. If one was determined though, I don't think that much extra effort would really be required.
|
You can apply some computationally simple yet extremely tricky to figure out functions to random numbers (or any old number, for that matter). It would take max two hours work, and would virtually guarantee that no player could write a "combat predictor" program for Civ3. Does such a program even exist?
Dominae
Last edited by Dominae on 19-02-2004 at 21:55
|
|
|  |
 |
|
wervdon
|
|
quote: This helps his defense: if he really knew how the game uses the RNG he would have figured out that Sworsdmen do outperform Horsemen. |
I disagree with this. If we believe he's a cheater, then I don't see how claiming to be ignorant helps his case....its not like he can't just make up a lie (and in this case a bad one).
Also I honestly don't think it'd be all that hard at all to go from seeing what the random seed is to being able to modify it to reproduce results you had seen before (straight forward and easy), or to analyze it and use it to predict future results accurately (probally not too hard either unless Firaxis used some unusual code). The fact that he claims not to doesn't provide any more proof that he hasn't than it was when he was just saying "we didn't cheat."
|
|
|  |
 |
|
wervdon
|
|
Oh and for what its worth:
I think this is a dead horse for now. Unless he admits cheating (and I dont think we are going to trick him into going that far.....though I'm surprised with what he has admitted in an effort to change our opinions), we won't prove it. It's probally been too long to go back and prove from old saves that he did.
If for some reason we (or someone else like CGN) ends up facing GCA's "luck" again though, then this maybe valuable information for use when going to Mongoose and saying this time replay both GWT and GCA's turns using the save sent to you by whoever is before GWT in turn sequence. At least then we can rule out modifying the seed in the save to get good results. I don't see how we'll ever prove or disprove using the seed displayed to predict results and plan your attacks though.
|
|
|  |
 |
|
Dominae
|
|
quote: Originally posted by wervdon
If we believe he's a cheater, then I don't see how claiming to be ignorant helps his case....its not like he can't just make up a lie (and in this case a bad one).
|
If we already believe that he's a cheater, then obviously anything he says is in our eyes a potential lie. The whole point, though, is trying to figure out if he's a cheater in the first place. Therefore his testimony is very relevant. You do not convict someone, then look at the evidence (although that's unfortunately how many of us go about it).
If he claims he knows something about the RNG, and that something turns out to be wrong, then clearly he's not applying his knowledge to win combat results (else he presumably would not have performed so well). It's not him that's pleading ignorance; it's us that's figuring out he's ignorant.
Dominae
|
|
|  |
 |
|
Dominae
|
|
What could potentially shed some light on this is a report from Lucky for each turn of the GCA-APO war. That is, Lucky tells us exactly what was going through his mind as he decided to attack or not attack each of our units. With access to the GCA savegame, we could then determine whether any of his decisions were "fishy" (for instance, abruptly stopping an attack for no good reason).
To my knowledge, mongoose only replayed the turn to check if he got the same results as Lucky. Given his "I hate being bothered with this crap" attitude, I bet mongoose did not think to check whether some of the GCA moves were somewhat questionable in the first place.
Unfortunately, we could probably only go through this process after the game is over. But if Lucky is really interested in proving he's not cheating, this would be the best way to clear his name. I'm not happy about his "these allegations are crap" attitude; when serious allegations are brought up against you, it's up to you to seriously prove them wrong.
Dominae
|
|
|  |
 |
|
Arnelos
|
 |
of the Free World
Sep 2002 time: 00:26
|
|
quote: Originally posted by Arrian
My guess, honestly is this:
Lucky did do something he shouldn't do, that we would considering cheating or at the very least highly questionable. He just doesn't think it's cheating. Let's keep digging.
|
This is my guess as well. I may not understand the programming all that well, but I do understand basic psychology. 
My take on it is that Lucky first started using this tool because it was "cool", it was something that only HE had. He didn't really even worry about whether it constituted cheating.
Lucky and his team were then massively betrayed by Apolyton when we violated the NAP and a long-term friendly relationship to make a surprise attack on GCA. This, we know, drove Lucky nuts.
Under those conditions, the type of person that Lucky is, even if he understood that using this tool was cheating, could have convinced himself that he wasn't doing anything all that bad and that it certainly wasn't anything Apolyton the liars didn't deserve.
Then he started getting accused of cheating. At first, he simply had the knee-jerk reaction of being defensive and just saying that "nothing could be proven". In his head, he was still 100% justified because Apolyton "deserved it" for our deceitful conduct in diplomacy.
It wasn't until later, perhaps when the war started cooling off and his team was with GWT that perhaps the consequences started to really hit home. Even though other teams could not PROVE he was cheating, everyone believed he had and this accusation was going to haunt him for some time to come - indeed might haunt him for as long as he was going to be involved in these inter-site DGs (the C3C one in particular).
The enormous mess that apparently is the C3C ISDG forum and the things said about him there really hurt him because he never intended with his actions to be accused of cheating and become a pariah of the community... though he likely DID intend to cheat. He probably wishes REALLY REALLY BADLY that people didn't think he was a cheater... though he might still be tempted to use whatever method he's been using.
So when I went to him and offered that he should have the chance to defend himself from these charges made in public and presented a sympathetic face concerning his plight as someone who might have been wrongly accused of cheating, he's doing everything he can to try to relieve the pressure of people thinking he cheats, while perhaps not QUITE getting to the point where he has to actually give up the practice of whatever he's doing.
Obviously, that's not good enough in my book and it probably wouldn't be in anyone else's, either.
Point is, the impression I get from all of his PMs is that he feels stuck. He can't tell us everything or we'll have the evidence we need to get him kicked from the game. However, he wants to be cleared of these hurtful accusations SO BADLY that he's downright eager to provide just enough that he thinks people will believe him without providing too much that they'll turn on him.
As for his team, they seem to at least be greatly clueless. ulalume, who also responded to a PM of mine, had absolutely nothing to share other than that the accusations were completely unfounded. This fits with my impression of GCA from the time of the war... Lucky could very well have been doing this stuff and never telling his team about it. His team would think they were just really lucky and were so fired up and resentful because of Apolyton's backstab that they weren't in any mood to question that assumption.
So yeah, I still think Lucky is guilty. Perhaps not to the full extent we believed before because he found a more subtle way to "cheat", but whatever he's doing is clearly an unfair advantage that should be banned and I think he KNOWS IT (part of why he's being coy with the details).
|
|
|  |
 |
|  |
 |
|
wervdon
|
|
quote: Well, I would not be so sure here. The rand/srand routine is of a mediocre quality - even the page you linked to stated: "The rand subroutine is a simple random-number generator. Its spectral properties, a mathematical measurement of randomness, are somewhat limited. Firaxis could have used a different, probably better RNG algorithm. |
I think I said it wrong. I didn't really mean I'd be surprised if they didn't use rand() srand(). I'd be surprised if they made their own random # generator that isn't based on any well known algorithm. In other words, I'd be surprised if what they used isn't either a canned function (much like random() mentioned on the page I linked to is), or some well documented algorithm.
Also as many threads as have appeared about weird luck in civ3, steaks and such, I wouldn't be surprised at all if at some point they haven't said on a forum what system they used.
quote: The innate weakness of conspiracies is that you have to rely on all of the links to keep the secret. |
You misunderstood what I said. I don't think its a massive conspiracy involving GWT, and if it is then I don't think it goes past denying Mongoose a copy of the save to verify with (and I dont even think that was deliberate).
What I said is if someone else faces GCA in battle again and they have the same luck again, then it might matter. I didn't mean GWT having similar luck to GCA, I actually meant GCA attacking someone.
|
|
|  |
 |
|  |
All times are GMT. The time now is 05:26. Apolyton Time is 00:26. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|