250 likes | 395 Views
Network and Multiplayer Game. 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 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 • Network Game • Melibatkanjaringan, koneksi digital antaraduaataulebihkomputer • Beberapa network game, bukan multiplayer game, dansebaliknya • Pada network yang bukan multiplayer (single-player game) tidakadainteraksilangsungdenganpemain(avatar) lain. • Multiplayer Game • Seringkali network game denganpemainterpisahsecarafisikdanmesin (PC/console) yang terhubungmelaluijaringan. • Bisabukan network game, contoh turn based, two player game etc.
Time Line • 1960 • Era awal multiplayer games • 1970-1980 • Era arcade multiplayer games • 1990-sekarang • Era online, multiplayer games • 1958 tennis for two • 1961 space war • 1970 Galaxy war • 1972 Pong • 1978 Atari Football • 1993 Doom
Doom • Menggunakan peer-to-peer network • Setiap 1/35 detik, setiap Doom game mengambil input darisetiap player (move left, strafe, shoot etc) • Menggunakan sequence number untukmengidentifikasi packet lost. • Jikaditemukanpaketsetelahnya (tidaksesuaiurutan), makadiputuskanterjadi packet lost, danmengirim NACK
Arsitektur – Single Computer • Tidakada network antarpemain • Fungsi multiplayer dilakukandenganberinteraksipadasatukomputer • Pemainmemanipulasi avatar pada share screen yang dibelah.
Arsitektur – Peer-to-peer • Setiap client • Tidakada node yang bertindaksebagaipengontrol game state, danmeroutekan game message • Populerpada LAN karena LAN mensupportbroadcasr • Biasanyapemain yang berpartisipasiberjumlahsedikit.
Arsitektur – Client Server • Satukomputerberperansebagai server, • berkomunikasi dg client, • memediasi game state • Server bagiankrusialdari game. Jika server tidakbisadihubungi, berdampakkesemua client, dansemuaprosespermainan. • Populerpada game online komersial
Arsitektur – Peer-to-peer, Client-server Hybrid • Pada hybrid, server memediasijalannya game sepertipada client server. • Client dapatberhubungandengan client lain seperti peer-to-peer.
Arsitektur - Network of Server • Padaarsitektursebelumnya, server bisamengalami bottleneck performance. • Tidakdapatterusmenerimadanmengirimkanpesandarisemua client, • atautidakdapatterusmeng-update game state dengancepat. • Pada network server, single server berkomunikasidengan master server membentukhirarkiarsitektur. • Memperbaikikondisidiatas • Protokol yang dipergunakanlebihrumit.
MMORPG • Massively multiplayer on line role-playing • Mulaitumbuhtahun 1995 denganultima online • Dikembangkandari single player game ultima • Support 50 pemain
Network Latency, Jitter, dan Loss • Latency : waktu yang dibutuhkanpaket data untukdikirimkandarisumberketujuan. • Round Trip Time (RTT) : latency round trip darisumberketujuan, dankembalilagikesumber. • Padabeberapakasus RTT 2 kali latency, namuntidakselalu. • Jitter : variasi latency darisatupaketkepaketberikutnya. • Packet loss : kasisdimanapakettidakpernahmencapaitujuan. • Ditunjukkandengan packet loss rate (perbandinganjumlah packet loss dibagijumlahpaket yang dikirimkan)
Sumber Latency, Jitter, dan Loss • Latency • Propagasi delay darijarak yang jauh • Serialisation delay • Congestion-related queuing delay • Jitter • Panjang path berubah • Variasiukuranpaket • Transient congestion • Packet Loss • Kelebihanantrian transient congestion • Link layer bit error • Routing transient temporarily disrupting the path
IlustrasiEfek Latency • Efek latency sangatterlihatpadaskenario client server dengan ‘dumb’ client. • Algoritma client • Mengambil input user • Pengambil data danmengirimkanke server • Menerima update dari server danmengunpack • Menentukan visible object dan game state • Render scene • Mengulangi game loop
IlustrasiEfek Latency • User menekan left (a) dan (b)user menekan up, namunkarena latency, (c) pemainmasihberjalankekiri.
Prediksi • Daripadamenunggurespondari server, client dapatmenebakrespon yang akandiberikan server. • Client dapatmerespon input user secaralangsung, merenderpergerakan user, danlawansebelummendapatrespon server. • Player Prediction : dijelaskandiatas • Opponent Prediction : client menebaklokasidari unit yang tidakdikontrololehpemain lain atauolehkomputer.
Player Prediction • Efek : • Respon client dapatlebihcepat (secepat non-network) karenamengabaikan latency • Game state client bisaberbedadengan game state server. • Diperlukanperbaikantergantungdari round-trip latency danaksi yang diambil user. (pada client)
Player Prediction • Algoritma • Mengambil input user • Pengambil data danmengirimkanke server • Menentukan visible object dan game state • Render scene • Menerima update dari server danmengunpack • Membetulkanperbedaan state • Mengulangi game loop
Opponent Prediction • Lokasi yang dikontrolpemain lain (ataukomputer) diprediksi • Estimasiberdasarlokasiawal, dihitungposisiprediksidari speed, danarahpergerakan. • Predicted position digunakansampai unit owner mengirimkan update darilokasi, speed, atauarahbaru.
Algoritma Opponent Prediction Algoritma Unit Owner • Mengambil input user • Update (lokasi | kecepatan | accelerasi) bedasar input • Hitunglokasiprediksiberdasar (lokasi | kecepatan | accelerasi) sebelumnya • Jika (lokasisekarang – lokasiprediksi) < tresholdmaka • Ambil data (lokasi | kecepatan | accelerasi) • Kirimkankesemua opponent (lawan) • Ulangi game loop
Algoritma Opponent Prediction Algoritma Opponent • Terimapaket • Ekstrakinformasi update state (lokasi | kecepatan | akselerasi) • Jika unit tertampilpadalayarmaka • Update informasi unit • Else • Tambahkaninformasi unit ke list • Untuksetiap unit pada list • Update lokasiprediksi • Render Frame • Mengulangi game loop