| Buri |
It's not sending me actor data for everyone in the game when those people are on the other side of the world is it? If it is, fire your development team. If it's not, then it's doing culling checks. If it's doing culling checks, add a method that compares actor stealth to other actors' perception checks. Now, you have the stealth system being asked for.
GrumpyMel
Goblin Squad Member
|
It's not sending me actor data for everyone in the game when those people are on the other side of the world is it? If it is, fire your development team. If it's not, then it's doing culling checks. If it's doing culling checks, add a method that compares actor stealth to other actors' perception checks. Now, you have the stealth system being asked for.
Buri is correct here. The "server" doesn't send Buri's client an update that Decius performed a "waggle finger" emote when Decius is half-way across the game world. THAT would cause an impossible amount of lag when you scaled the number of players to more then a hundred or two.
For non-static objects, the server would already have to cull the information it sends to each individual client based upon what that client MIGHT POSSIBLY need to render. It has to do that in order to keep the data transmissions to each individual client at a manageable level...so rather then send you data about the 5000-10,000 players that might be on your server....it sends you data about the 5-10 that might be somewhere remotely near your view range. Obviously it's going to try to avoid expensive checks when culling but it definately HAS to do some culling.
By the way, I'm assuming these days that your "server" isn't actualy a server...but just a logical director that farmed out the actual work/processing to other server clusters and just tracked which was responsible for doing what work. A "single-shard" MMO these days supporting a half-way decent sized player base would pretty much HAVE to work that way. So you aren't talking about hardware limitations on a single physical device....more likely you'd be talking about the hardware limitations of a "Private Cloud".
DeciusBrutus
Goblinworks Executive Founder
|
It's not sending me actor data for everyone in the game when those people are on the other side of the world is it? If it is, fire your development team. If it's not, then it's doing culling checks. If it's doing culling checks, add a method that compares actor stealth to other actors' perception checks. Now, you have the stealth system being asked for.
It doesn't have to check each actor for each player- just have a number of overlapping areas, and provide all information going on in an area to every player in that area. The overlap should be just large enough that you always get informed of things out to a reasonable distance. There, no need to check all actors for all players.
| Hudax |
Like Ryan said, stealth is all or nothing.
If a rogue stealths in the middle of a sunny field, the "immersion" explanation is it's a supernatural ability--like shadowdancer stealth. There was some discussion on the regular forums a few months back about whether a shadowdancer could roll a marble down a brightly lit hall and hide in its shadow.
If environmental conditions, line of sight, etc. can preclude the ability to stealth, then it's a sucky ability.
Blaeringr
Goblin Squad Member
|
That excludes the invisibility spell, or camouflaging. With high enough perception skills on the part of the observer, and low enough stealth skills on the part of the invisible guy, it is certainly not an all or nothing situation.
Stealth does include supernatural abilities in Pathfinder, so we can't write the argument off for their sake.
Ryan's argument for stealth being all or nothing was regarding the hardware issues, and had nothing to do with immersion or natural vs supernatural abilities. So referencing his post at this point in the discussion in that way is taking it quite out of context.
| Hudax |
taking it quite out of context
I don't think I am.
Ryan's quote was in direct response to the desire of some people to be able to detect stealth based on perception, where some players would be able to see the stealther but others couldn't. He said it was all or nothing because you can't have the server tell some clients where you are but not others without opening the mechanic up to exploitation. People would hack the client and see through stealth with impunity.
Imposing conditions on stealth not only doesn't make sense from that perspective, but--hacking aside--means stealth will simply never work. You need a perfect storm to pull it off. Something will always break it, and it won't be a skill worth investing in.
Blaeringr
Goblin Squad Member
|
And that's not the "context" I was referring to. You've repeated the context he said it in quite nicely though, this time.
Context of Ryan's original post: explaining technical reasons, mainly about why he thought cheating could not be avoided unless it is done all or nothing.
Context you used it in when I said you missed the context: immersion issues and discussion of natural vs supernatural abilities.
Different contexts. No crossover at all. Thus citing his post does nothing to support your case for immersion. Doesn't mean I disagree with the immersion point, just the out of context citation.
Onishi
Goblin Squad Member
|
Blaeringr wrote:taking it quite out of contextI don't think I am.
Ryan's quote was in direct response to the desire of some people to be able to detect stealth based on perception, where some players would be able to see the stealther but others couldn't. He said it was all or nothing because you can't have the server tell some clients where you are but not others without opening the mechanic up to exploitation. People would hack the client and see through stealth with impunity.
Imposing conditions on stealth not only doesn't make sense from that perspective, but--hacking aside--means stealth will simply never work. You need a perfect storm to pull it off. Something will always break it, and it won't be a skill worth investing in.
Indeed, namely the concept of an overlay, IE if you have one person in a group with the highest possible perception, then able to automatically transmit to an overlay appears in every person in his sides overlay, so then everyone essentially gets the benefits of 1 persons spotting ability.
Now some have said that this is little different then in game someone pointing the arrow out, but I would imagine an overlay/radar could wind up far more precise and able to keep up with the action as long as the data is still being sent to the transmitter, then the characters location is still pinpointed to everyone else, and unless GW builds in the equivelent of such overlay in game, then that presents an unfair advantage to those using said overlay.
And that is a viable option, they could say put a radar in the screen, and have it flash whenever someone in your group sees an invisible character. Basically they will need to go ahead and impliment any form of cheating that they leave open, as we know the cheaters will use it eventually and we need to prevent any advantage from coming from such.
| Buri |
An overlay is a straw man, really. The reason for this is because an overlay like you're describing has to work with 3D space and can only do so if the client reveals your coordinates, has access to model data that should be in a protected library to be able to accurately represent your character so as to be able to reliably attack him (a spot or "highlighted area" just won't do in the case of sword swings, arrow shots, etc and could only be useful to AoE attacks) and has hacked the games coordinate system so as to be able to accurately describe the same position relative to all other clients consuming the overlay data. If any one of these is not available, such an overlay is not possible. Simply transmitting x,y coordinates would 1) require all people consuming this data to be in the same position and 2) is useless in a 3D space.
| Buri |
Ryan's quote was in direct response to the desire of some people to be able to detect stealth based on perception, where some players would be able to see the stealther but others couldn't. He said it was all or nothing because you can't have the server tell some clients where you are but not others without opening the mechanic up to exploitation. People would hack the client and see through stealth with impunity.
Code signing ensures the client running is the client you released. If it is modified in any way, the code fails to execute. Secure applications are possible and are in common use.
Organically speaking, stealth does not protect you from damage, does not let you automatically defeat traps, etc. All stealth does is make your movements go unnoticed by others. This is all it should do in game as well. If someone can see you and broadcasts your position by standing next to you and a wizard casts fireball then you should be damaged as well but so will your buddy.
From a technology perspective, UI hacks aren't inevitable, client hacks aren't inevitable and you can be reasonably sure of the code the clients are running. In my completely honest assessment, I see no technical reason why an organic stealth mechanic can't be implemented.
Something will always break it, and it won't be a skill worth investing in.
Can you provide an example? If you're talking about people trying to stealth away in the middle of combat then it should break. Sneaking away while you're engaged in combat isn't stealthy and *should* fail miserably.
Forencith
Goblin Squad Member
|
And...having something like 3rd party software that tells you there is an enemy at 60 degrees and 15 meters out because it is interpreting data from a party member that can see it....does not give you the ability to actually see it or target it. Immersion-wise, it is no different than your buddy that can spot it pointing a direction and saying "There...see it?"
As for stealth and magic...I claim BS. You are saying no one can even attempt to hide or move silently in an area in which magic does not work? Because the way you constructed your argument...that is exactly what you are arguing. I do agree magic can be used to augment stealth.
DeciusBrutus
Goblinworks Executive Founder
|
Hudax wrote:Ryan's quote was in direct response to the desire of some people to be able to detect stealth based on perception, where some players would be able to see the stealther but others couldn't. He said it was all or nothing because you can't have the server tell some clients where you are but not others without opening the mechanic up to exploitation. People would hack the client and see through stealth with impunity.Code signing ensures the client running is the client you released. If it is modified in any way, the code fails to execute. Secure applications are possible and are in common use.
You keep getting that bit wrong. I'm running several programs that aren't the code that will be released right now. You can't check the signature of a program on a remote system without assuming the remote system hasn't been compromised. You can be 'reasonably sure' what program they are running, but that's equivalent to 'not sure'.
I also think Hudax was saying "Stealth as a state instead of a relationship is ineffective because it will be rare to not have something break the state of stealth."
Onishi
Goblin Squad Member
|
An overlay is a straw man, really. The reason for this is because an overlay like you're describing has to work with 3D space and can only do so if the client reveals your coordinates, has access to model data that should be in a protected library to be able to accurately represent your character so as to be able to reliably attack him (a spot or "highlighted area" just won't do in the case of sword swings, arrow shots, etc and could only be useful to AoE attacks) and has hacked the games coordinate system so as to be able to accurately describe the same position relative to all other clients consuming the overlay data. If any one of these is not available, such an overlay is not possible. Simply transmitting x,y coordinates would 1) require all people consuming this data to be in the same position and 2) is useless in a 3D space.
Hence I used radar as the analogy. No I am not talking a 3D view of it, I am talking a 2d circular radar that shows yourself in the center and the relative position of yourself compared to the stealthed person.
Yes that would be limited to AoEs or anything that could go non-targetted. In reality we are talking 2D space anyway as unless we are dealing with stealthed flight, the Z axis will be rather unnecessary. Also why my suggestion for the solution would be simply to make that type of radar built in (assuming the game has a mini-map, put a red blinking dot where one of your party members see's the stealthed person, same limitations that a cheater would get IE it dosn't grant targeting but if they can eyeball an AoE from it more power to them). This idea of a solution more or less is on par with the only way EQ developers were able to get ahead of the showEQ program Ryan reffered to. Essentially the developers realized they had no way to get ahead of the cheaters, so they instead put the information that previously was accessable to cheaters in the official client to put everyone on equal terms.
I also am still very far from convinced at the idea of code signing being perfect. There are no shortage of rootkits that bypass darn near every known scan to hide from a virus scanner and modify major files so that upon examing scanning opening etc... it will display what the file is supposed to look like. Upon execution a completely different set of code is executed. Something like that requires the key windows system files to be modified, but again if one person is able to create this rootkit once, everyone else will have the option to grant this intentional rootkit system access and run the cheat. The point of weakness in code signing, is it still is a lower level of access than the OS level. It is virtually imposible to have true security when the potential hacker has a higher grade of access to the system than the developer.
Southraven
Goblin Squad Member
|
I've said it before in the other thread that I very much believe stealth can encompass much more than an all or nothing visible/invisible check, but would require careful planning and not a little bit of innovation to do correctly.
Goblinworks may or may not be in a position to do this, and early indicators point towards them not being able to. This is disappointing for me, as I would have thought clever stealth/disguise mechanics could lead to some fun gameplay options. Technical limitations can be overcome and the "but people might cheat" argument has always rung hollow for me. Why hold the Olympics then, people almost certainly try and cheat there. (Yes that's an over-the-top analogy but it's a logical progression of the line of thinking.)
But if they can't do it they can't do it. I do look forward to seeing how they plan to make rogues/thieves/rangers unique and fun in its absence.
| Buri |
You keep getting that bit wrong. I'm running several programs that aren't the code that will be released right now. You can't check the signature of a program on a remote system without assuming the remote system hasn't been compromised. You can be 'reasonably sure' what program they are running, but that's equivalent to 'not sure'.
I also think Hudax was saying "Stealth as a state instead of a relationship is ineffective because it will be rare to not have something break the state of stealth."
I'm not getting it wrong. You don't understand signing. Signing is an operating system mechanic and not something managed by GW. The operating system goes to execute the code, sees it's signed and checks the certificate used to sign the code to make sure its a trusted certificate. If it is then it verifies a hash value of the code against what the signature says what it should be. If the hash check fails, the operating system doesn't run the code. If it succeeds then the operating system runs the code. Other than signing the code before its released, Goblinworks has no hand in that process at all.
| Buri |
Hence I used radar as the analogy. No I am not talking a 3D view of it, I am talking a 2d circular radar that shows yourself in the center and the relative position of yourself compared to the stealthed person.
2D coordinates are still useless if the client doesn't reveal the coordinate system used in the game. "Player A is in front of me" is useless to another person viewing the scene at a different angle.
I also am still very far from convinced at the idea of code signing being perfect. There are no shortage of rootkits that bypass darn near every known scan to hide from a virus scanner and modify major files so that upon examing scanning opening etc... it will display what the file is supposed to look like. Upon execution a completely different set of code is executed. Something like that requires the key windows system files to be modified, but again if one person is able to create this rootkit once, everyone else will have the option to grant this intentional rootkit system access and run the cheat. The point of weakness in code signing, is it still is a lower level of access than the OS level. It is virtually imposible to have true security when the potential hacker has a higher grade of access to the system than the developer.
You realized that with each release of the game client, the signature is changed as well right? Even if there is a rootkit reporting the hash that worked with the previous version of the client doesn't mean that the hash will work with the new one. By definition of how signing works, it can't.
The flaw with signing is not signing itself, it's that developers still try to support Windows XP which has very weak signing support. Windows 7 has much better signing support. Given that XP has finally gotten the ax from Microsoft, developers REALLY need to move past it. Specifically, signing support is not granted on XP for injected DLLs, which is a very comment method of attack, but it is supported in Windows 7. This alone can go a very long way in securing applications across the board.
DeciusBrutus
Goblinworks Executive Founder
|
DeciusBrutus wrote:I'm not getting it wrong. You don't understand signing. Signing is an operating system mechanic and not something managed by GW. The operating system goes to execute the code, sees it's signed and checks the certificate used to sign the code to make sure its a trusted certificate. If it is then it verifies a hash value of the code against what the signature says what it should be. If the hash check fails, the operating system doesn't run the code. If it succeeds then the operating system runs the code. Other than signing the code before its released, Goblinworks has no hand in that process at all.You keep getting that bit wrong. I'm running several programs that aren't the code that will be released right now. You can't check the signature of a program on a remote system without assuming the remote system hasn't been compromised. You can be 'reasonably sure' what program they are running, but that's equivalent to 'not sure'.
I also think Hudax was saying "Stealth as a state instead of a relationship is ineffective because it will be rare to not have something break the state of stealth."
The operating system goes to run the code, see's that it's not signed, and executes it. Why and how would a cheater sign their program with Gobilworks' certificate?
GrumpyMel
Goblin Squad Member
|
Blaeringr wrote:taking it quite out of contextI don't think I am.
Ryan's quote was in direct response to the desire of some people to be able to detect stealth based on perception, where some players would be able to see the stealther but others couldn't. He said it was all or nothing because you can't have the server tell some clients where you are but not others without opening the mechanic up to exploitation. People would hack the client and see through stealth with impunity.
Imposing conditions on stealth not only doesn't make sense from that perspective, but--hacking aside--means stealth will simply never work. You need a perfect storm to pull it off. Something will always break it, and it won't be a skill worth investing in.
Ryan's quote was specificaly dealing with the information disclosure aspect of stealth and that once you disclose a specific bit of information to one client, you can't prevent that information from being revealed to other clients through out of bands means. Note that would pretty much apply to anything, not just stealth.
One should NOT draw conculsions about stealth outside of the limited scope of that discussion. It also certainly does not imply that imperfect stealth, IF it were technicaly feasable, would be useless or undesirable. Stealth....like any other tactic....should NOT be equal to a shield of invulnerability, perfect and infallible under ALL coditions/situations. That would make stealth (or any other aspect of the game that had similar qualities) FAR too overpowered.
Now, just because we can't practicaly address the information disclosure aspect of stealth in a non-exploitable manner does NOT mean that there aren't any other aspects of stealth that CAN be addressed.... and it CERTAINLY does not mean that stealth should be functional under ALL conditions.
Frankly, equaly important to the pure "information discolusure" aspect of stealth...and perhaps even more important in the context of a game like this, are the defensive/offensive aspects of stealth.
If you can't see something clearly or at least pinpoint it's exact location... you can't really attack it directly effectively with MOST forms of attack.... nor could you aid/assist it directly with most forms of assistance. Even area of effect attacks might be somewhat muted as if you don't know precisely where something is, you wouldn't know where to optimaly center your area of effect attack....ontop of that non-magical stealth would logicaly imply that an object was staying low to the ground and in much cover as possible, which would logicaly dilute alot of the blast/kinetic energy effects of something like a Fireball anyways.
There is no technical/exploit barrier to modeling THESE aspects of stealth on an individual basis....as the processing for all these sorts of functions HAVE to be done on the server side ALREADY to prevent OTHER sorts of exploits (i.e. executing a "backstab" melee attack on a target that is 500 yards distant from the attacker).
GrumpyMel
Goblin Squad Member
|
Hudax wrote:Blaeringr wrote:taking it quite out of contextI don't think I am.
Ryan's quote was in direct response to the desire of some people to be able to detect stealth based on perception, where some players would be able to see the stealther but others couldn't. He said it was all or nothing because you can't have the server tell some clients where you are but not others without opening the mechanic up to exploitation. People would hack the client and see through stealth with impunity.
Imposing conditions on stealth not only doesn't make sense from that perspective, but--hacking aside--means stealth will simply never work. You need a perfect storm to pull it off. Something will always break it, and it won't be a skill worth investing in.
Indeed, namely the concept of an overlay, IE if you have one person in a group with the highest possible perception, then able to automatically transmit to an overlay appears in every person in his sides overlay, so then everyone essentially gets the benefits of 1 persons spotting ability.
Now some have said that this is little different then in game someone pointing the arrow out, but I would imagine an overlay/radar could wind up far more precise and able to keep up with the action as long as the data is still being sent to the transmitter, then the characters location is still pinpointed to everyone else, and unless GW builds in the equivelent of such overlay in game, then that presents an unfair advantage to those using said overlay.
And that is a viable option, they could say put a radar in the screen, and have it flash whenever someone in your group sees an invisible character. Basically they will need to go ahead and impliment any form of cheating that they leave open, as we know the cheaters will use it eventually and we need to prevent any advantage from coming from such.
Right that deals purely with the "information disclosure" aspect of stealth in terms of exploitation. It doesn't deal with OTHER aspects of stealth which are not subject to the same limitations (such as how a "stealthed" object can be interacted with by characters that have not "detected" it).
However, Hudax's post goes FAR beyond the limited scope in which Ryan addressed it....
"Imposing conditions on stealth not only doesn't make sense from that perspective, but--hacking aside--means stealth will simply never work. You need a perfect storm to pull it off. Something will always break it, and it won't be a skill worth investing in."
NOTHING in Ryans statement implied that there WOULD NOT, COULD NOT or SHOULD NOT be limitations to the conditions under which STEALTH is effective and can be utilized and it certainly does NOT imply that the imposition of any such limitations would make stealth a useless skill.
All Ryan's arguement logical implied was that if you reveal a stealthed objects location to one client, in order to avoid an unfair advantage you should reveal it's location to all other. Nothing about that implies that stealth wouldn't/shouldn't be broken by X,Y,Z activities...or that X,Y,Z circumstances wouldn't/shouldn't prevent a character from activating stealth in the first place. Quite the opposite of that, IMO.
| Buri |
The operating system goes to run the code, see's that it's not signed, and executes it. Why and how would a cheater sign their program with Gobilworks' certificate?
WHAT?! How the hell would cheaters sign their code GW's certificate? How did they get their hands on the private key? GW should be the one signing their own code. You did a completely nonsensical turn of logic there. Cheaters be damned.
DeciusBrutus
Goblinworks Executive Founder
|
DeciusBrutus wrote:The operating system goes to run the code, see's that it's not signed, and executes it. Why and how would a cheater sign their program with Gobilworks' certificate?WHAT?! How the hell would cheaters sign their code GW's certificate? How did they get their hands on the private key? GW should be the one signing their own code. You did a completely nonsensical turn of logic there. Cheaters be damned.
They don't. The code they run is unsigned. They know that the code they are running is unsigned.
DeciusBrutus
Goblinworks Executive Founder
|
Code signing ensures the client running is the client you released. If it is modified in any way, the code fails to execute. Secure applications are possible and are in common use.
Right. Why did you even mention cheaters using code signing? I didn't bring that up anywhere so I'm pretty confused where that came up in the conversation.
Out.