Anti-Cheat functionality

More
19 years 11 months ago #10497 by MajorTom
Replied by MajorTom on topic Anti-Cheat functionality

Originally posted by Roi Danton


One ship to load doesn't take so long. Before loading and testing you could focus a screen with the lines "Standby ... perusing the ships check list" or smthg like that.

Yes! :D The idea with a screen that says standy .... is cool[8D]

One ship is enough for the client application, thats right.
But for the Server we'll have to check every ship, so we can be sure a server host doesn't disadvantage others or create an advantage for his team.

@Old Version: Maybe for checking the sim.ini it could be helpful? But I wouldn't copy whole passages if they doesn't fit exactly with that what you want to realize here.

You should have the pog by now, so you can see what I meant with the 470 lines of code. It was very cumbersome but, it was a good insurance, that a Server host couldn't change anything either. Still, I think we can do it even better this time ;)

Iwar2 Multiplayer Fan Site

Please Log in or Create an account to join the conversation.

More
19 years 11 months ago #10504 by Roi Danton
Replied by Roi Danton on topic Anti-Cheat functionality

Originally posted by MajorTom

You should have the pog by now, so you can see what I meant with the 470 lines of code. It was very cumbersome but, it was a good insurance, that a Server host couldn't change anything either. Still, I think we can do it even better this time ;)

Yeah, I got it! Really much work you've done!
The problem this time is the amount of ships and - what IMHO is more important - if any settings in the subsims are made the whole calculation has to be redone b/c you haven't checked every single subsim property (also this would be more intensive for the cpu it would be easier if any changes in the sims and subsims are made).

~Buda5 Designer & Scripter
buda5.firstones.com


~Buda5 Designer & Scripter
buda5.firstones.com

Please Log in or Create an account to join the conversation.

More
19 years 10 months ago #10743 by Second Chance
My only suggestion for right now is about the load screen (brilliant btw), make sure to include in the message that we are checking for cheaters. Not only will this take the pressure off of us for game start failures but will also reassure the innocent and warn the guilty.

mailto:second_chance@cox.net
The Ultimate Guide To Modding: I-War 2 - Edge Of Chaos (on hold during SW MP mod)
cartoons.sev.com.au/index.php?catid=4
.

Please Log in or Create an account to join the conversation.

More
19 years 9 months ago #11328 by MajorTom
Replied by MajorTom on topic Anti-Cheat functionality
Special request for Roi:

Roi, Do you have time within the next week (or so) to look at the iNetworkGUI (Or iMultiplayGui) script and look for a good place to plug in the function call to the anti-cheat test?
Do you think the "RejectionScreen" function would be useable for the "Standby..." message followed by a "All Clear" or an actual "rejection" message that would follow just before the player joins a game?


Iwar2 Multiplayer Fan Site

Please Log in or Create an account to join the conversation.

More
19 years 9 months ago #11334 by Roi Danton
Replied by Roi Danton on topic Anti-Cheat functionality
Calling the Anti-Cheat test:
Logically it should be in the iMulitplayGUI, but after a fast look at your code and the two GUI pogs I couldn't find all interactions between yours and the I-War 2 default code. So I'll say "or resp function in your code" and can't make sure if there aren't better places to plug in the function call.

* * = depending on your Anti Cheat function

If we use defined settings *so the users can't update the ship.ini's: "modificated-SWMP-game"* I would make the link in the "iNetworkGUI.OnShipSelection" function or the resp function in your code.

*If there should be a "modified-SWMP-game" possible: Server and all clients have same ini files = could be updated from our original settings* the function call could be located in the szenario-pog.ClientMain.

Originally posted by MajorTom

Do you think the "RejectionScreen" function would be useable for the "Standby..." message followed by a "All Clear" or an actual "rejection" message that would follow just before the player joins a game?

The RejectionScreen should be useable for all three texts string reason == Standyby... || All Clear || Cheater!.
Maybe you have to fit the Title (define another text field) and the scrollbar in the "Frame Window" couldn't be the best design - but all in all this function seems to call a blank screen (blank Shady Bar), the title, your message and two back buttons ... ideal for such message.



~Buda5 Designer & Scripter
buda5.firstones.com


~Buda5 Designer & Scripter
buda5.firstones.com

Please Log in or Create an account to join the conversation.

More
19 years 9 months ago #11364 by MajorTom
Replied by MajorTom on topic Anti-Cheat functionality
You don't find a call for the anti-cheat function in our SW alpha version because I took it out to make working on the ships and weapons possible for all of us.
The function call was originally made as the player joined the server by sending an event to the client where the check was run.
(At the time we didn't have the iNetworkGUI code and once the player has joined a game, only the server can reject the player effectivly.

At the moment, at least for the beta, I favor the hardcoded version: meaning no changes allowed on either the server or the client. That will reduce connection times and also prevent some possibly 'inexplicable' rejections.
If there is enough interest in modding after the game has been established, we can at a later date make a "patch" that would allow server/client communication of a checksum value.

For the original question:
Having the function call in the ship selection function would be ok for clients but what about the server? (the host could theoretically change all ships and make them weaker except his own). At the time of ship selection, you can't tell if the player will host or just join as a client. Where would you put the call to check all ships/ini files, before the server is actually started? I also meant the exact location (between which lines) to put the call. (because I still have trouble reading/visualizing GUI stuff)

I think we should do a combination of both:
a) On ship selection check the selected ship and the players flux.ini values.
b) When a server app is started check all the other ships except the one the host has previously selected.


Iwar2 Multiplayer Fan Site

Please Log in or Create an account to join the conversation.