160 likes | 285 Views
Network and Multiplayer Game [1]. Agung Toto Wibowo http://gameprogramming.blog.ittelkom.ac.id/blog/ Armitage , Grenville, Claypool, Mark, and Branch, Philip "Networking and Online Games : Understanding and Engineering Multiplayer internet Games", Jhon Wiley & Sons, 2006. Pendahuluan.
E N D
Network and Multiplayer Game [1] Agung Toto Wibowo http://gameprogramming.blog.ittelkom.ac.id/blog/ Armitage, Grenville, Claypool, Mark, and Branch, Philip "Networking and Online Games : Understanding and Engineering Multiplayer internet Games", Jhon Wiley & Sons, 2006
Pendahuluan • Tanpaprediksi, state masihmemungkinkanberbedapadatiap client (butuhwaktumenerima [setengah RTT] world state dari server) • Jikaada client yang sangatjauhdari server dibandingkandengan client yang dekatdengan server (RTT1> RTT2), makaakantidakadildarisisigameplay • Contoh : • Game membunuh monster, jikaberhasilakanditambahkankoin yang dapatdigunakanuntukmembangunfasilitas. • Perbedaanjarak (dalamterminologi RTT) mengakibatkanketidakadilangameplay.
Time Manipulation • Meskipunkebanyakan game dinyatakan real time, waktudapatdimanipulasiuntukmengatasiperbedaan latency. • Duateknik yang dapatmelakukannya : • Time Delay : untukmengatasi latency lama • Time Wrap : untukmengakomodasi latency yang singkat
Time Delay • untukmengatasiperbedaan delay pemrosesan / pengirimanperintah user untukmeratakan latency. • Daripadamemprosesperintah client langsung, server dapatmenundaperintahinibeberapawaktu • Sehinggamembolehkan client padajarak yang jauhuntukmerespon game state.
Time Wrap • Mekanismemanipulasiwaktu yang memungkinkan server untuk me-rollback (time wrap) event pada game ketikasebuahperintah client diinputkan • Contohkasus : • Pada T0, seorangpemainmenembaklawan • Message datangdi server pada T2 • Dan lawantelahbergerakpada T1 • Menggunakan time wrap, server melakukan rollback event yang telahdiprosesmulai client menggenerate input. (T0 padakasusdiatas)
Time Wrap • Algoritma • Terima packet dari client • Ekstakinformasi (user input) • Elapsed time = current time – latency to client • Rollback semua event dalam reverse order sampai current time – elapsed time • Eksekusiperintah user • Ulangisemua event untukmengupdateefekdari client • Ulangi game loop.
Time Wrap • FPS Half-Life 2 mentest time wrap dengantambahan lag pada client.
Data Compression [1] • Lossless Compression : • data dapatdikompressdenganberbagaialgoritma yang umum. • Kompresiharus lossless, dandapatdikembalikansaatdi uncompress. • Beberapa yang seringdigunakan : LZW • Delta Comression • Daripadamengirimkansemuainformasi state, memungkinkanhanyamengirimperubahan/update (delta) dari state sebelumnya. • Efeknya, membutuhkanpengiriman data yang reliable (contoh TCP) • Efektifjika state game world besar, namunperubahan yang adakecil.
Data Compression [2] • Interest Management • Daripadamengirimkan data kesemua client, dapatdikirimkan data yang menjadi interest bagi client untukdikirim. • Area dari interest client disebut aura dimanainteraksiantara client dan unit game lain terjadi.
Data Compression [3] • Peer-ToPeer • Client mengirimkan data secaralangsungdapatmengurangibitrate server. • Digunakanuntukpengirimanberbagaiaspek game seperti voice, avatar, dlsb. • Update Aggregation • Mengirimkan update padaperiodetertentudapatmengurangi network overhead • Contoh : daripadamengirimkanpergerakan A pada t1, dan B pada t2 ke player C dua kali, server dapatmengirimkannyasekali, sehinggamengurangiwaktu packing, danpengiriman. • Update agregationjgdilakukandenganmengurangijmlpesan yang dikirimkan. • Contohpemainmenggerakkan avatar wajahkekiri, kekanan, beberapa kali, maka server dapatmengagregatdenganmengirimkanpergerakanterakhir yang terlihat.
Visual Trick • Tidakberhubungandengan network, tapidapatmengatasi latency • Contoh : animasipadakapalataupemainuntukbersiap-siapmelakukanpergerakan. • Bisa “mengulur” waktubeberaparatusmilisecond, bahkankebutuhanwaktu RTT. • Contoh lain : efeksuaradananimasiasap yang dilakukanseketikasetelah pistol ditembakkan. • Meskiefek (player/NPC mati) sesungguhnyabaruterasabeberapasaat, namunpemainakanmerasa game cukupresponsif.
Game Cheat • Klasifikasidanpenamaanmetode cheat • Tidakadapenamaankhususuntuk cheat (sampaibukudibuat) • Namun cheat dapatdideskripsikandariatributberikut : • Apa yang diexplioted? (server, client) • Type darikegagalan yang terlibat? • Siapa yang melakukan cheat? • Setiap cheat memberikankeuntungandanresiko yang berbedadari cheat yang dipergunakan. • Resikomunculketika cheat menghasilkanperubahanpadagameplay yang disadariolehpemain lain, atau automated cheat detection • Resikobisaberupasangsi
Server Side Cheat • Duakemungkinanutama • Server mengimplementasikangameplay rule yang incomplete dalammemprediksisemuakemungkinanaksi player • Administrator game server mungkintidakdapatdipercaya (taklukpadapengaruheksternal) • Contoh : escape cheat, jikatim server terlihatakankalah, maka server administrator dapatkeluardari game • Escape cheat dapatterjadipada game dimana server melupakan state player saatkeluar. • Ditanganidengan activity log, ataumemaksa player harustertampilhinggaakhirpermainan. • Skin cheat : merubahtimuntukmendapatkeuntungan. Contoh counter strike diversiawal.
Client Side Cheat • Kebanyakan game berjalanpada client, termasuk rendering dlsb. • Cheat bisadilakukandenganmembuatbot yang menjalankansecaraotomatispermainanpadasaatkitaistirahat. Contohpergerakan mouse otomatis. • Aimbotpada FPS, ketika player melakukanperintah ‘tembak’, aimbotmengambilinformasilokasipenembak. Dapatdimanfaatkanuntukmenembakbalik. • Mengoverridepilihan avatar skin, gun, dlsbdaripemain lain • Menampilkantaktikkelayartentangpemain lain (contohkesehatan, senjata, jmlpasukan) yang seharusnyabelumbolehterlihat • Mengurangielemen game yang memungkinkan knowledge dari map/area (contoh fog, snow/rain, wall, box dlsb)
Client Side Cheat • Wallhack : cheat yang memungkinkanmelihatpadadindingburam. • Dilakukandenganmemodifikasi client code secaralangsung, • ataubajudaripemain.
Network Layer Cheat • Padajaringan, tidakadakontrolterhadappemakaian resource (baikberapa yang diterimaataudikirimkan) • Mekanisme authentication jugatidakadapada IP layer. • Dengankondisiini, memungkinkan Distributed Denial of Service (DDoS)