Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Sethiel
Založen: 18. 06. 2008 Příspěvky: 3
|
Zaslal: 17. únor 2011, 14:19:18 Předmět: Kontrola herního nastavení pro multiplayer |
|
|
Zdravím,
přemýšlel jsem teď o problému, který nevím, jak se v praxi řeší. Když několik lidí hraje nějakou hru po síti, tak hra používá spoustu lokálního nastavení a obsahu. Součástí jsou obvykle i různá pravidla hry, skripty a takové věci. Tak přemýšlím ... co zabrání člověku v tom, aby si u sebe lokálně změnil pravidla a ve hře tak podváděl?
Pokud jde o nějaké zpakované soubory, tam se možná dá vymyslet nějaké šifrování nebo něco podobného. Ale třeba v opensource hrách, když je známý kód hry, algoritmus šifrování a všechno, to nemůže fungovat. Navíc hry často obsahují přímo nijak nebalené skripty, které pro nějaké podvádění stačí jen přepsat.
Napadá mě nějaký systém kontrolních součtů, ale ani to nemůže fungovat, pokud je známo, jak a z čeho se které součty dělají.
Existuje nějaké elegantní řešení? _________________ Imagination is the only weapon in the war against reality. |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 17. únor 2011, 15:45:12 Předmět: |
|
|
Napadlo mě challenge-response schéma, kdy se server zeptá na obsah konkrétního náhodně vybraného souboru (a případně jako optimalizaci jen konkrétní části), klient odpoví a server si zkontroluje, jestli to odpovídá jeho verzi. Samozřejmě útočník si může nechat původní verzi a tyto požadavky řešit pomocí záložní kopie. Takže rychlá úvaha mi říká, že to kontrolovat nejde
Jinak se běžně používá kontrola dat od klientů, jestli nechodí moc rychle apod. _________________ Mám strach |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 17. únor 2011, 16:50:20 Předmět: |
|
|
Já jsem používál hash herního nastavení (pozn. game-rules nastavení, nikoliv grafiky, apod.), pokud se lišilo, vyhodil jsem chybu rozdílné verze hry a nešlo se připojit na server - je to jedna z možností.
Další je porovnávání hodnot při připojení (vše se odešle na server, který to kontroluje).
Samozřejmě teoreticky to obejít lze, jako vše - pak vždycky platí legitimní BANování podvádějících uživatelů; jen je musí člověk právně ošetřit.
EDIT: Elegantní řešení by bylo dodávat soubor pravidel přímo od serveru až při připojení, samozřejmě také to jde obejít, ale je to značně těžší! _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
Deluxe

Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 17. únor 2011, 21:59:27 Předmět: |
|
|
No, pokud je server duveryhodny, tak bych to asi resil tak, ze herni pravidla bude resit server.
Jako v pripade Source enginu, tam klient posle serveru jen vstupy od uzivatele a ten uz resi zbytek.
Tady je to jeste vylepseny tak, ze klient sice taky zna herni pravidla a resi reakce na vstupy (kvuli latenci serveru).
Ale posledni slovo ma vzdycky server.
Napr.: Klient detekuje zasah protihrace a okamzite vygeneruje odezvu, ale zaroven posle udaje o strelbe serveru a ten pripadne potvrdi nebo zamitne zasah.
Kdyz zasah server zamitne, tak klient sice vidi zasah, ale protihraci neubere zadny zivot. |
|
Návrat nahoru |
|
 |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 17. únor 2011, 22:59:19 Předmět: |
|
|
Jak píše Deluxe. Určitě. Jinak si to ani neumím představit. Takhle se to přece dělalo vždycky. Třeba Doom 1.  |
|
Návrat nahoru |
|
 |
sulthan

Založen: 24. 10. 2007 Příspěvky: 104
|
Zaslal: 20. únor 2011, 21:07:27 Předmět: |
|
|
Urcite se musi vetsina veci resit na serveru, ale stejne jsou ruzne moznosti jak podvadet. Napriklad v mapovych souborech vymazat nektere prvky, takze nepratele budou vic videt (tj. napr. vymazat listi stromu a keru). Druha vec jsou ruzni aimboti.
Server musi tedy obcas kontrolovat i hashe souboru... |
|
Návrat nahoru |
|
 |
|