multiplayer concerns

A forum for online playing, administration, bugs and feature requests
Wireless Caller
Merchant
Merchant
Posts: 43
Joined: Tue Mar 16, 2004 7:31 pm

multiplayer concerns

Post by Wireless Caller »

my biggest worry about multiplayer issues especially in a large open-ended universe with 32+ players is people cheating.

since vegastrike is open-source, its very possible for a person to actually use hacks or cheat in the game.

i want to know how this will be prevented.

i don't have enough time now to type anymore.
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

Earlier (SF forums i think) I heard that some data (most of the data which will vary in sizes for different people, like there pilot files) will be stored on the server, while the server will only let people play if they have the exact same version of the core files as the server does.
richard
Bounty Hunter
Bounty Hunter
Posts: 162
Joined: Mon Jan 26, 2004 9:29 am
Location: Melbourne, Australia
Contact:

Post by richard »

I think that the biggest problem lies in the network protocol. Once that's open, you can insert anything you want into the stream, and also interpret any of the data coming back any way you like.

For some examples of how bad cheating in closed games can be, nothing beats the Starseige Tribes fun:

http://games.slashdot.org/comments.pl?s ... id=7115550

Now, that's talking about rendering engine fun (which will always be a problem in multiplayer VS - say by locally disabling the code that runs cloaking).

I guess in a game like VS, you've just got to accept that cheating is quite possible, and because it's so possible and open you've got to hope that cheaters just won't bother. Wishful thinling, of course, there's always going to be spotty teenagers out there who just don't get enough attention in real life... (no offense intended to the very sociable spotty-or-otherwise teenagers who frequent these boards :)

It might be in the end that VS multiplayer runs invitation-only servers in some instances.
Gamer, Python programmer
pincushionman
ISO Party Member
ISO Party Member
Posts: 467
Joined: Mon Jan 13, 2003 9:55 pm
Location: Big, flat Kansas
Contact:

Post by pincushionman »

I still think that the most effective way to discourage cheating is to take away any real use for cheating. No EXP, no kill stats, no credits for toasting a dude. Make it very easy to communicate with anyone and everyone, and the reputation system becomes word-of-mouth and news, just like in real life. Of course, this can't be applied to any servers running deathmatch-style games, but for the MMORPG servers, I believe cheating could be kept down by making cheating useless.

-pincushionman
Conquer space!
-pincushionman

---------------------------------------

Kansas really is flatter than a pancake!
http://www.improbable.com/airchives/pap ... ansas.html
Wireless Caller
Merchant
Merchant
Posts: 43
Joined: Tue Mar 16, 2004 7:31 pm

Post by Wireless Caller »

actually I have found a new way to deal with cheaters.

have some kind of unique ID#, but first, the client has to get the name of your computer(JWINK), the name of the graphic card you have, and the maximum size of your hard drive space that the vegastrike client is on and encrypt it to a unique ID#.

in that case, you are unable to change the ID# until you either repartition your HD or use another hard drive.

so incase if you want to ban a cheater, you could either ban the ID# or the IP address(if hes using cable modem).

banning an IP range is kind of hard since most people use dial up modem. just banning an IP users will change ip(if they use dialup), come back up and screw the players over and over again.

as for the server being hacked by a user, you might probably want to install a personal firewall. though I have never had any cases of a unix type servers being hacked.

last for the passwords, i would suggest everone to not use a password that they use else where on the internet because sometimes it may be exposed.
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

the point of a firewall is to keep users out

not exactly a very useful SERVER ;-)

"so you have to hack through our firewall bfore you can play"

hmm sounds about like the bar of getting VS into multiplayer mode right now ;-)
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
MACK

cheaters

Post by MACK »

well the only thing i can think of that would be relativly easy would be to cheat yourselves.

go out onto the servers and find good honest people who dont like cheaters and start a clan type thing with them. they will be like cops for your game and you can E-mail them your own cheats so they can kick the poo out of the punks on the dark side of the cheats.

my friend was in a clan like this in freelancer and the clan leader E-maid new links to download chearts. they hung around in the start off system to make sure that the buttheads who pick on newbies dont get very far.

maby you won't even need to find palyers but can just make AI guys who look for cheaters, altho im not sure how they will find the cheaters.
Space Cowboy

Post by Space Cowboy »

you know.... cheating is the most disgraceful way to win space battles in most case.

either indestructable, speed hacking, uber guns... I don't like it. of course, free multiplayer games encourages cheating.

its very hard to keep a free online multiplayer game free of cheats...

You could write a program that will check the files.. and make sure if even one byte of any file is changed, you could be denied access to the server..

I don't know how freelancers cheat protection does this.
mkruer
Site Administrator
Site Administrator
Posts: 1089
Joined: Thu Jan 02, 2003 10:07 am
Contact:

Post by mkruer »

Sadly probably the only way to prevent cheating is to run the client in parody on the server and do spot checking. Not necessarily to run it one for one, but rather making sue that none of the values have changed. Perfect example Is you have you ship you run a hack to have unlimited missiles. So if the sever says -1 missiles and your system says that you have a full load. Its probably a hack. Same could be done with the max speed, turning, armor etc… and if you were clever you would only log at key events. How often do you fire a missile? Or turn at max Q or boost to Max V. these are the key events that could be easily tracked and parodied. The last part is to find a way to store all this information on a server and avoid someone from hacking their account. This would probably eliminate 90+% of the hacks
I know you believe you understand what you think I said.
But I am not sure you realize that what you heard is not what I meant.

Wing Commander Universe Forum | Wiki
Wing Commander: The Wasteland Incident
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

One has to wonder why anyone would cheat online. I mean, IMO, it would take a really screwed up person with no social skills to cheat online.
Space Cowboy

Post by Space Cowboy »

ok heres my idea..

If the all the files needed for the game can be packed all into one file, like game1.vsd, or the game having the ability to read reading .rar file, then you should get the size of the file, have the server check the client to be sure that its the correct size or the server will deny access to the client if the size of the .rar file is not equal to what the server wants it to.


probably won't worh though. but its a try.
mkruer
Site Administrator
Site Administrator
Posts: 1089
Joined: Thu Jan 02, 2003 10:07 am
Contact:

Post by mkruer »

hurleybird wrote:One has to wonder why anyone would cheat online. I mean, IMO, it would take a really screwed up person with no social skills to cheat online.
What you are saying, that I have no social skills? OH :oops: :lol:
I know you believe you understand what you think I said.
But I am not sure you realize that what you heard is not what I meant.

Wing Commander Universe Forum | Wiki
Wing Commander: The Wasteland Incident
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Checking data does not work.

Post by ace123 »

The client or server could check md5's or data, but this would not work.
There are two reasons:
1. The h4x0r could remove the line of code that checks md5sums and send the correct one to the server, so checking client data.
2. Even with the correct <i>data</i>, the client could still chaet by changing the code or by running gdb and changing variables.
If VS were closed source, these two would be harder, but still possible to circumvent.

One way to prevent any real cheating is to make the <b>server check and performs all physics</b>, and the <b>client sends raw input and then displays output to screen</b>.
Example: The client will only be able to say "I want to increase speed" or "'+' key was pressed" or "Mouse moved 3 pixels vertically"(maybe less specific) and then the server would set the speed. The server would reply ""the ship X has moved to (X,Y,Z) and create Bolt object at <X,Y,Z) with velocity vector <1,0,0> (for interpolation). Destroy Ship Y. Display communication "MiningBase(5:23): Hello!". "" Then the client only has to follow those specific instructions. The client would move the ships and display a bolt and show an explosion and draw text, etc.

That way, if the client modifies data, etc, the only problems will be on his side, because ships will be wrong, but the server, and therefore the non-cheaters will still do everything correctly.

This doesn't prevent server-side cheating, but that is a different story.
Surfdargent
Developer
Developer
Posts: 153
Joined: Wed Jan 22, 2003 4:28 am
Location: Reunion Island
Contact:

Post by Surfdargent »

Mmm... this is exactly how the server is done even if not really working yet ;)
But there's also a check for MD5 to make sure that players (who want to have the right data and play correctly on their side) have the correct data stuff.
pincushionman
ISO Party Member
ISO Party Member
Posts: 467
Joined: Mon Jan 13, 2003 9:55 pm
Location: Big, flat Kansas
Contact:

Post by pincushionman »

Like Telnet or DACS (a system at Purdue where we could run apps like AutoCAD or MATLAB serverside, so we didn't have to buy the programs. Real nice, but slow as hell for graphic-intensive tools, and we were even on the same LAN, not dialing in). Only a game instead of a tool.

And I imagine that will eat bandwidth like it's going out of style. Which is also very bad.

-pincushionman
Last edited by pincushionman on Wed Apr 14, 2004 6:03 pm, edited 1 time in total.
Conquer space!
-pincushionman

---------------------------------------

Kansas really is flatter than a pancake!
http://www.improbable.com/airchives/pap ... ansas.html
Space Cowboy

Post by Space Cowboy »

well if there is no way to do a cheat protection just because the client is required to be opensourced, and consumes all the bandwidth, then mabie we could have a ban system too.

Have the IP# banlist(incluse IP range as such), account name banlist, we can't have a unique ID then the haxors will find out how to decrypt the unique ID#.

too bad the ship/weapon/map data are not in native ascii language.
mkruer
Site Administrator
Site Administrator
Posts: 1089
Joined: Thu Jan 02, 2003 10:07 am
Contact:

Post by mkruer »

pincushionman wrote:Like Telnet or DACS (a system at Purdue where we could run apps like AutoCAD or MATLAB serverside, so we didn't have to buy the programs. Real nice, but slow as hell for graphic-intensive tools, and we were even on the same LAN, not dialing in). Only a game instead of a tool.

And I imagine that will eat bandwidth like it's going out of style. Which is also very bad.

-pincushionman
I would have to disagree with you a little bit. “dumb terminalsâ€
I know you believe you understand what you think I said.
But I am not sure you realize that what you heard is not what I meant.

Wing Commander Universe Forum | Wiki
Wing Commander: The Wasteland Incident
mkruer
Site Administrator
Site Administrator
Posts: 1089
Joined: Thu Jan 02, 2003 10:07 am
Contact:

Post by mkruer »

Space Cowboy wrote:well if there is no way to do a cheat protection just because the client is required to be opensourced, and consumes all the bandwidth, then mabie we could have a ban system too.

Have the IP# banlist(incluse IP range as such), account name banlist, we can't have a unique ID then the haxors will find out how to decrypt the unique ID#.

too bad the ship/weapon/map data are not in native ascii language.
Like I said before. To detect cheating you would only have to log “key variableâ€
I know you believe you understand what you think I said.
But I am not sure you realize that what you heard is not what I meant.

Wing Commander Universe Forum | Wiki
Wing Commander: The Wasteland Incident
pincushionman
ISO Party Member
ISO Party Member
Posts: 467
Joined: Mon Jan 13, 2003 9:55 pm
Location: Big, flat Kansas
Contact:

Post by pincushionman »

Forgive me for coming across as terse, but I'm kinda a speed hog.

I don't know how anything about networking, and, truth be told, I really don't want to. But I know I've Telneted (just text, no pictures, no nothin') into my university servers from a 56k and it was bloomin' slow.

I've also run AutoCAD on the aforementioned DACS from on-campus and it was slower than molasses in January. MATLAB was better, but the performance hit was visible. But I'm not certain if my client actually rendered the display or if that was done by the server and I was just being sent screens.

Of course, some of this certainly is caused by the large number of users connected to a huge system as opposed to a server being only used for the game. And rendering will of course be done with the client, which I think is not done in the examples I gave. But we're limited on the "dumb terminal" concept because we're not gonna be able to connect directly to the server with GB LAN, we're gonna have to use the Internet.

And if you can get good performance doing all this stuff serverside, I'm all for it. But I almost hate to say that if it comes down to anti-cheater security or performance, I'm gonna have to vote for performance.

-pincushionman
Conquer space!
-pincushionman

---------------------------------------

Kansas really is flatter than a pancake!
http://www.improbable.com/airchives/pap ... ansas.html
mkruer
Site Administrator
Site Administrator
Posts: 1089
Joined: Thu Jan 02, 2003 10:07 am
Contact:

Post by mkruer »

That’s not the point I was getting at. All I was implying that it was theoretically possible to run a game a full speed across a network. But i think that we as a consumer will never see it becususe our connection to the internet is always going to be slower then a LAN.
I know you believe you understand what you think I said.
But I am not sure you realize that what you heard is not what I meant.

Wing Commander Universe Forum | Wiki
Wing Commander: The Wasteland Incident
Guest

Post by Guest »

hmm a serverbot that checks gamerelevant thigs like the speed a player got or the damege he deals with his shiptype or one weapon could detect cheats/cheaters that break the limits set by the bot ...

as much as possible of these game relevant things schould be done by the server ... but there a limits for such a bot too i dont know how to detect a ant-cloack-hack for example ... clock <> unhitable = collisiondetection = mostly client side cause such operations in masses eat evry cpu ... but i think a bot schould be a fine deal


the bot could also jump for 5 minutes to one player (on the server), check him and and move to the next... that would keep the cpu-usage down to a minimum

than dont kick the damn cheates not in the same moment ... no they would learn to make better cheats ... kick them 15-60minutes later and delete thier character if the server i a mrpg-thing

the bot isnt somthing that scould be open source! maybe scriptable...
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

A bot would not work. Anyone could write a simple program that acts like the bot except says that everything is ok.

If information is sent to the computer, the player could always be able to use that data.
For cloak, for example, the server could simply not send data about the ship and act as though the ship isn't there, or it could say that the position is now NAN and velocity is 0, so the only possible information the palyer could have is if the ship kept going in the same direction at the same speed.

The idea is that all information that the player shouldn't be able to know should not be sent to the player.

Also, python scripts should not be client-side. All scripts must be server-side, or else the client could change random_encounters.py to only add friendly ships.

One problem with sending the graphics data to the client as in a dumb terminal is that the server will have to render hundreds of images at once (and many servers either have no video cards or have one terrible one) and send them all at the same time.
Newcomer :)

ummm....

Post by Newcomer :) »

i think that if the characters/ships/whatever is hosted on the server and the client only works as a graphics card it will be very hard to cheat... and what will they gain by cheating if they cant alter health/weapons/speed/visibility and so on... as someone said earlier if they cheat, it will only affect their client... in other words: it will not affect the server or any other client.

about the so called bandwidth problem... if the server only sends commands and the client executes the commands and displays the results(as i said, the client working as a graphics card) it will of course take some bandwidth but not so much that you cant play with a 500Kbit line (i hope).

in short: the client sends requests to the server (like: turn 1 pixel left) and the server sends back a command to the client that the client executes and displays. (someone said it earlier)
YetAnotherGuest

Anti-Cheat

Post by YetAnotherGuest »

Here are some anti-cheat strategies coming to my mind, while reading this thread.

Let the server only route data to the clients and let the clients check for cheats.
Every client needs to know movement- and positionvectors for all visible objects to draw the correct environment. Also object-types need to be known to draw the correct models.
With this information the client also knows the maximum parameters of other objects (e.g. the maximum armament -> maximum weapon power, also maximum movement parameters).
If the clients detects any irregular data coming from other clients, it can inform the server.
The server then checks the data coming from the supposed cheater and if the client is found to be cheating it can be kicked.
With this method you can use a space-saving protocol for network transfer and also limit server cpu usage.

Nevertheless this method will not stop cheating, but will limit cheats to the maximum capabilities of ones ship (which can also be achieved regularly).
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

YetAnotherGuest wrote:Here are some anti-cheat strategies coming to my mind, while reading this thread.

Let the server only route data to the clients and let the clients check for cheats.
Every client needs to know movement- and positionvectors for all visible objects to draw the correct environment. Also object-types need to be known to draw the correct models.
With this information the client also knows the maximum parameters of other objects (e.g. the maximum armament -> maximum weapon power, also maximum movement parameters).
If the clients detects any irregular data coming from other clients, it can inform the server.
The server then checks the data coming from the supposed cheater and if the client is found to be cheating it can be kicked.
With this method you can use a space-saving protocol for network transfer and also limit server cpu usage.

Nevertheless this method will not stop cheating, but will limit cheats to the maximum capabilities of ones ship (which can also be achieved regularly).
First, this would force the client to display all units and know about every system. Otherwise a player could go into an empty system, cheat and come back into a populated area.

Also, a cheating client could still make every stat exactly the upper limit of everything without anyone noticing, which would still be bad.

It's quite possible that a cheating client would find a flaw in the algorithm to check if a ship is cheating or not and it might get the best ship while inside the limits of not cheating.

It's also possible that an innocent client performs an upgrade and either due to some rounding errors or a bug in upgrading, the client goes outside of the upper or lower limits for a ship and is considered cheating and thus kicked out. This would likely result in a very unhapy and unsatisfied player who would likely not play Vega Strike again.

Not to say that the server dealing with all th data method cannot alow for cheating, but really how much can you do if you can only send keyboard and mouse events to the server. You may be able to do some actions faster in a cheating client but likely it won't make a difference.
Also, some people could still write an AI for a human player which acts better than the human and always hits and sends the keyboard events to the server to make it look like a real player.
Post Reply