Meskipun ada beberapa pengecualian, konsep game multi-pemain berjaringan tidak benar-benar cocok dengan para gamer mainstream sampai tahun 1990-an. Bab ini dari Pemrograman Game Multi Pemain: Game Jaringan Arsitek pertama memberikan sejarah singkat tentang bagaimana game multi-pemain berevolusi dari game jaringan awal 1970-an ke industri besar hari ini. Selanjutnya, bab ini memberikan tinjauan umum tentang arsitektur dua game jaringan populer dari tahun 1990-an — Starsiege: Tribes and Age of Empires. Banyak teknik yang digunakan dalam game ini masih digunakan sampai sekarang, jadi diskusi ini memberikan wawasan tentang tantangan keseluruhan dari rekayasa game multi-pemain berjaringan.A Brief History of Multiplayer Games
Nenek moyang dari permainan multipemain jaringan modern dimulai pada sistem mainframe universitas pada tahun 1970-an. Namun, jenis permainan ini tidak meledak sampai akses Internet menjadi umum pada pertengahan hingga akhir 1990-an. Bagian ini memberikan gambaran singkat tentang bagaimana permainan jaringan pertama kali dimulai, dan banyak cara jenis permainan ini telah berevolusi dalam hampir setengah abad sejak permainan tersebut pertama kali.
Game Multiplayer Lokal
Beberapa gim video paling awal menampilkan multipemain lokal, artinya gim ini dirancang untuk dua atau lebih pemain untuk memainkan gim tersebut di satu komputer. Ini termasuk beberapa permainan yang sangat awal seperti termasuk Tennis for Two (1958) dan Spacewar! (1962). Untuk sebagian besar, game multiplayer lokal dapat diprogram dengan cara yang sama seperti game pemain tunggal. Satu-satunya perbedaan biasanya adalah beberapa sudut pandang dan / atau mendukung beberapa perangkat input. Karena pemrograman gim multi-pemain lokal sangat mirip dengan gim pemain tunggal, buku ini tidak menghabiskan waktu untuk itu.Early Networked Multiplayer Games
Game multipemain berjaringan pertama dijalankan di jaringan kecil yang terdiri dari komputer mainframe. Yang membedakan game multiplayer jaringan dari game multiplayer lokal adalah game jaringan memiliki dua atau lebih komputer yang terhubung satu sama lain selama sesi permainan aktif. Salah satu jaringan mainframe awal tersebut adalah sistem PLATO, yang dikembangkan di University of Illinois. Itu pada sistem PLATO bahwa salah satu game jaringan pertama, game strategi turn-based Empire (1973), telah dibuat. Sekitar waktu yang sama dengan Empire, game jaringan orang pertama yang dibuat Maze War dibuat, dan tidak ada konsensus yang jelas mengenai mana dari dua game ini yang dibuat terlebih dahulu.
Ketika komputer pribadi mulai mendapatkan beberapa adopsi di bagian akhir tahun 1970-an, pengembang menemukan cara untuk memiliki dua komputer berkomunikasi satu sama lain melalui port serial. Port serial memungkinkan data untuk dikirimkan sedikit demi sedikit, dan tujuannya adalah untuk berkomunikasi dengan perangkat eksternal seperti printer atau modem. Namun, itu juga memungkinkan untuk menghubungkan dua komputer satu sama lain dan membuat mereka berkomunikasi melalui koneksi ini. Ini memungkinkan untuk membuat sesi permainan yang bertahan di beberapa komputer pribadi, dan menyebabkan beberapa game PC jaringan yang paling awal. Majalah BYTE edisi Desember 1980 menampilkan artikel tentang cara memprogram yang disebut Multimachine Games di BASIC (Wasserman dan Stryker 1980).
Salah satu kelemahan besar menggunakan port serial adalah bahwa komputer biasanya tidak memiliki lebih dari dua port serial (kecuali kartu ekspansi digunakan). Ini berarti bahwa untuk menghubungkan lebih dari dua komputer melalui port serial, skema rantai daisy di mana beberapa komputer terhubung satu sama lain dalam sebuah cincin harus digunakan. Ini dapat dianggap sebagai jenis topologi jaringan, sebuah topik yang dibahas secara lebih rinci di Bab 6, “Topologi Jaringan dan Permainan Sampel.”
Jadi terlepas dari teknologi yang tersedia di awal 1980-an, sebagian besar game yang dirilis selama dekade itu tidak benar-benar memanfaatkan jaringan lokal dengan cara ini. Baru pada tahun 1990an gagasan menghubungkan beberapa komputer secara lokal untuk bermain game benar-benar mendapatkan daya tarik, seperti yang akan dibahas nanti dalam bab ini.Multi-User Dungeons
Dungeon atau MUD multi-pengguna adalah gaya permainan multi-pemain (biasanya berbasis teks) di mana beberapa pemain terhubung ke dunia virtual yang sama sekaligus. Jenis permainan ini pertama kali mendapatkan popularitas di mainframe di universitas-universitas besar, dan istilah ini berasal dari permainan MUD (1978), yang diciptakan oleh Rob Trushaw di Essex University. Dalam beberapa hal, MUD dapat dianggap sebagai versi komputer awal dari permainan Dungeons and Dragons, meskipun tidak semua MUD merupakan permainan bermain peran.
Setelah komputer pribadi menjadi lebih kuat, produsen perangkat keras mulai menawarkan modem yang memungkinkan dua komputer saling berkomunikasi melalui saluran telepon standar. Meskipun tingkat penularannya sangat lambat oleh standar modern, ini memungkinkan MUD dimainkan di luar lingkungan universitas. Beberapa menjalankan game MUD pada sistem papan buletin (BBS), yang memungkinkan banyak pengguna untuk terhubung melalui modem ke sistem yang dapat menjalankan banyak hal termasuk game.
Game Jaringan Area Lokal
Jaringan area lokal atau LAN adalah istilah yang digunakan untuk menggambarkan beberapa komputer yang terhubung satu sama lain dalam area yang relatif kecil. Mekanisme yang digunakan untuk koneksi lokal dapat bervariasi — misalnya, koneksi port serial yang dibahas sebelumnya dalam bab ini akan menjadi salah satu contoh jaringan area lokal. Namun, jaringan area lokal benar-benar lepas landas dengan proliferasi Ethernet (protokol yang dibahas lebih rinci dalam Bab 2, “Internet”).
Meskipun bukan berarti game pertama yang mendukung LAN multiplayer, Doom (1993) dalam banyak hal adalah nenek moyang dari game jaringan modern. Versi awal dari penembak orang pertama Perangkat Lunak id mendukung hingga empat pemain dalam satu sesi permainan, dengan opsi untuk bermain secara kooperatif atau dalam “deathmatch” kompetitif. Karena Doom adalah permainan aksi yang bergerak cepat, diperlukan penerapan beberapa konsep utama yang tercakup dalam buku ini. Tentu saja, teknik-teknik ini telah berkembang pesat sejak tahun 1993, tetapi pengaruh Doom diterima secara luas. Untuk detail yang jauh lebih besar tentang sejarah dan penciptaan Doom, baca Masters of Doom (2003), yang tercantum dalam referensi di akhir bab ini.
Banyak game yang mendukung multiplayer jaringan melalui LAN juga mendukung multipemain jaringan dengan cara lain — baik dengan koneksi modem atau jaringan online. Selama bertahun-tahun, sebagian besar networked games also supported gaming on a LAN. This led to the rise of LAN parties where people would meet at a location and connect their computers to play networked games. Although some networked multiplayer games are still released with LAN play, the trend in recent years seems to have developers forgoing LAN play for exclusively online multiplayer.
Game online
Dalam game online, pemain terhubung satu sama lain melalui beberapa jaringan besar dengan komputer yang jauh secara geografis. Saat ini, game online identik dengan game Internet, tetapi istilah “online” sedikit lebih luas dan dapat mencakup beberapa jaringan sebelumnya seperti CompuServe yang, awalnya, tidak terhubung ke Internet.
Ketika Internet mulai meledak pada akhir 1990-an, game online lepas landas bersamanya. Beberapa game populer di tahun-tahun sebelumnya termasuk id Software Quake (1996) dan Epic Game’s Unreal (1998).
Meskipun mungkin tampak seperti game online yang dapat diimplementasikan dengan cara yang hampir sama dengan game LAN, pertimbangan utama adalah latensi, atau jumlah waktu yang dibutuhkan data untuk melakukan perjalanan melalui jaringan. Faktanya, versi awal Quake tidak benar-benar dirancang untuk bekerja melalui koneksi Internet, dan tidak sampai patch QuakeWorld bahwa game dapat dimainkan dengan andal melalui Internet. Metode untuk mengkompensasi latensi dibahas secara lebih rinci di Bab 7, “Latensi, Kegugupan, dan Keandalan” dan Bab 8, “Penanganan Latensi yang Disempurnakan.”
Game online lepas landas di konsol dengan penciptaan layanan seperti Xbox Live dan PlayStation Network di tahun 2000-an, layanan yang merupakan keturunan langsung dari layanan berbasis PC seperti GameSpy dan DWANGO. Layanan konsol ini sekarang secara teratur memiliki beberapa juta pengguna aktif selama jam sibuk (meskipun dengan ekspansi streaming video dan layanan lainnya ke konsol, tidak semua pengguna aktif ini mungkin bermain game). Bab 12, “Layanan Gamer,” membahas bagaimana mengintegrasikan satu layanan gamer tersebut — Steam — ke dalam game PC.
Game Online Multiplayer Massively
Bahkan saat ini, sebagian besar permainan multipemain daring terbatas pada sejumlah kecil pemain per sesi gim — di suatu tempat dari 4 hingga 32 biasanya jumlah pemain yang didukung. Namun, dalam Game Online Massively Multiplayer (MMO), ratusan atau bahkan ribuan pemain dapat berpartisipasi dalam satu sesi game. Sebagian besar game MMO adalah game role-playing dan karenanya disebut MMORPG. Namun, tentu saja ada gaya lain dari game MMO seperti first-person shooter (MMOFPS).
Dalam banyak hal, MMORPG dapat dianggap sebagai evolusi grafis ruang bawah tanah multi-pengguna. Beberapa MMORPG awal sebenarnya mendahului adopsi Internet yang meluas, dan sebaliknya berfungsi melalui jaringan dial-in seperti Quantum Link (belakangan America Online) dan CompuServe. Salah satu gim pertama adalah Habitat (1986) yang menerapkan beberapa teknologi baru (Morningstar and Farmer 1991). However, it wasn’t until the Internet became more widely adopted that the genre gained more traction. One of the first big hits was Ultima Online (1997).
MMORPG lain seperti EverQuest (1999) juga sukses, tetapi genre ini menggemparkan dunia dengan dirilisnya World of Warcraft (2004). Pada satu titik, Blizzard’s MMORPG memiliki lebih dari 12 juta pelanggan aktif di seluruh dunia, dan permainan menjadi bagian besar dari budaya populer sehingga ditampilkan dalam episode 2006 dari serial animasi South Park.
Merancang MMO adalah tantangan teknis yang rumit, dan beberapa tantangan ini dibahas di Bab 9, “Skalabilitas.” Namun, sebagian besar teknik yang diperlukan untuk membuat MMO jauh di luar cakupan buku ini. Oleh karena itu, dasar-dasar membuat game jaringan skala kecil adalah penting untuk dipahami sebelum memungkinkan untuk mempertimbangkan untuk membuat MMO.
Game Jaringan Seluler
Seiring berkembangnya game ke lanskap seluler, game multipemain juga mengikuti. Banyak game multi-pemain pada platform ini tidak sinkron — biasanya game berbasis giliran yang tidak memerlukan transmisi data waktu-nyata. Dalam model ini, pemain diberi tahu kapan giliran mereka, dan memiliki banyak waktu untuk bergerak. Model asinkron sudah ada sejak permulaan game multi-pemain berjaringan. Beberapa BBS hanya memiliki satu koneksi saluran telepon masuk, yang berarti bahwa hanya satu pengguna yang dapat terhubung pada satu waktu. Dengan demikian, seorang pemain akan terhubung, ambil giliran, dan lepaskan. Kemudian di beberapa titik di masa depan, pemain lain akan terhubung dan dapat menanggapi dan mengambil giliran mereka sendiri.
Contoh gim seluler yang menggunakan multiplayer asinkron adalah Words with Friends (2009). Dari sudut pandang teknis, gim jaringan yang asinkron lebih mudah diterapkan daripada gim real-time. Ini terutama berlaku pada platform seluler, karena API platform (antarmuka program aplikasi) memiliki fungsi bawaan untuk komunikasi asinkron. Awalnya, menggunakan model asinkron untuk permainan seluler agak karena kebutuhan karena keandalan jaringan seluler relatif buruk untuk koneksi kabel. Namun, dengan semakin banyaknya perangkat yang mendukung Wi-Fi dan peningkatan jaringan seluler, semakin banyak game jaringan real-time muncul di perangkat ini. Contoh dari game seluler yang memanfaatkan komunikasi jaringan waktu nyata adalah Hearthstone: Heroes of Warcraft (2014).
Tetapi sebagai programmer kita tahu kebenaran tentang apa yang sebenarnya terjadi di bawahnya sangat berbeda dari yang Anda lihat. Ternyata itu semua hanya ilusi. Sulap besar-besaran. Apa yang Anda rasakan sebagai realitas bersama hanyalah perkiraan yang unik bagi sudut pandang dan tempat Anda sendiri.
Peer-to-Peer Lockstep
Pada awalnya game-game itu jaringan peer-to-peer, dengan masing-masing komputer saling bertukar informasi dalam topologi mesh yang sepenuhnya terhubung. Anda masih dapat melihat model ini hidup hari ini di game RTS, dan menarik untuk beberapa alasan, mungkin karena itu adalah cara pertama – itu masih cara kebanyakan orang berpikir bahwa jaringan game bekerja.
Ide dasarnya adalah untuk mengabstraksi game menjadi serangkaian belokan dan satu set pesan perintah ketika diproses pada awal setiap belokan, mengarahkan evolusi keadaan game. Misalnya: memindahkan unit, unit serangan, membangun gedung. Semua yang diperlukan untuk jaringan ini adalah untuk menjalankan set perintah yang sama persis dan menyalakan mesin masing-masing pemain mulai dari keadaan awal yang umum.
Tentu saja ini adalah penjelasan yang terlalu sederhana dan menyoroti banyak poin yang tidak kentara, tetapi ia menemukan ide dasar bagaimana jaringan untuk game RTS bekerja. Anda dapat membaca lebih lanjut tentang model jaringan ini di sini: 1500 Pemanah di atas 28,8: Pemrograman Jaringan di Zaman Kerajaan dan Melampaui.
Tampaknya begitu sederhana dan elegan, tetapi sayangnya ada beberapa batasan.
Pertama, sangat sulit untuk memastikan bahwa permainan sepenuhnya deterministik; bahwa setiap belokan dimainkan secara identik pada setiap mesin. Sebagai contoh, satu unit bisa mengambil jalan yang sedikit berbeda pada dua mesin, tiba lebih cepat ke pertempuran dan menghemat hari dengan satu mesin, sementara tiba kemudian di yang lain dan erm. tidak menyimpan hari. Seperti kupu-kupu yang mengepakkan sayapnya dan menyebabkan badai di sisi lain dunia, satu perbedaan kecil menghasilkan desinkronisasi total dari waktu ke waktu.
Batasan berikutnya adalah untuk memastikan bahwa permainan dimainkan secara identik di semua mesin, Anda perlu menunggu sampai semua perintah pemain untuk giliran diterima sebelum mensimulasikan putaran itu. Ini berarti bahwa setiap pemain dalam permainan memiliki latensi yang sama dengan pemain yang paling tertinggal. Game RTS biasanya menyembunyikan ini dengan memberikan umpan balik audio segera dan / atau bermain animasi kosmetik, tetapi pada akhirnya setiap game yang benar-benar memengaruhi tindakan dapat terjadi hanya setelah penundaan ini berlalu.
Batasan terakhir terjadi karena cara permainan disinkronkan dengan mengirimkan pesan perintah yang mengubah keadaan. Agar ini berfungsi, semua pemain harus mulai dari kondisi awal yang sama. Biasanya ini berarti bahwa setiap pemain harus bergabung di lobi sebelum memulai permainan, meskipun secara teknis dimungkinkan untuk mendukung terlambat bergabung, ini tidak umum karena kesulitan menangkap dan mentransmisikan titik awal yang sepenuhnya deterministik di tengah permainan langsung .
Terlepas dari keterbatasan ini, model ini secara alami sesuai dengan game RTS dan masih hidup hingga hari ini di game seperti “Command and Conquer”, “Age of Empires” dan “Starcraft”. Alasannya adalah bahwa dalam game RTS keadaan permainan terdiri dari ribuan unit dan terlalu besar untuk dipertukarkan antar pemain. Game-game ini tidak punya pilihan selain untuk bertukar perintah yang mendorong evolusi kondisi game.
Tetapi untuk genre lain, keadaan seni telah berubah. Jadi itu saja untuk model jaringan lockstep peer-to-peer deterministik. Sekarang mari kita lihat evolusi game aksi yang dimulai dengan Doom, Quake, dan Unreal.
Server klien
Di era permainan aksi, batasan-batasan peer-to-peer berbaris menjadi jelas di Doom, yang meskipun dimainkan dengan baik melalui LAN dimainkan sangat buruk melalui internet untuk pengguna biasa:
Meskipun dimungkinkan untuk menghubungkan dua mesin DOOM bersama-sama di Internet menggunakan tautan modem, permainan yang dihasilkan akan lambat, mulai dari yang tidak dapat dimainkan (mis. Koneksi 14,4Kbps PPP) hingga yang dapat dimainkan secara marjinal (mis. Modem 28.8Kbps yang menjalankan Terkompresi). Driver SLIP). Karena koneksi semacam ini hanya utilitas marginal, dokumen ini hanya akan fokus pada koneksi net langsung.
Masalahnya tentu saja adalah bahwa Doom dirancang untuk jaringan hanya melalui LAN, dan menggunakan model saling berhadapan peer-to-peer yang dijelaskan sebelumnya untuk game RTS. Setiap input pemutar belokan (penekanan tombol, dll.) Dipertukarkan dengan rekan-rekan lainnya, dan sebelum pemain mana pun dapat mensimulasikan sebuah bingkai, semua penekanan tombol pemain lain harus diterima.
Dengan kata lain, sebelum Anda bisa berbalik, bergerak, atau menembak, Anda harus menunggu input dari pemain modem yang paling tertinggal. Bayangkan saja ratapan dan kertakan gigi yang akan menghasilkan jenis orang dengan koneksi internet yang “hanya utilitas marginal”. 🙂
Untuk bergerak melampaui LAN dan elit yang terhubung baik di jaringan universitas dan perusahaan besar, perlu untuk mengubah model. Dan pada tahun 1996, itulah yang dilakukan John Carmack dan timnya ketika dia merilis Quake menggunakan klien / server alih-alih peer-to-peer.
Sekarang alih-alih setiap pemain menjalankan kode permainan yang sama dan berkomunikasi langsung satu sama lain, masing-masing pemain sekarang menjadi “klien” dan mereka semua berkomunikasi dengan hanya satu komputer yang disebut “server”. Tidak ada lagi kebutuhan untuk permainan untuk menjadi deterministik di semua mesin, karena permainan benar-benar hanya ada di server. Setiap klien secara efektif bertindak sebagai terminal bisu yang menunjukkan perkiraan permainan saat dimainkan di server.
Dalam model klien / server murni Anda tidak menjalankan kode permainan secara lokal, alih-alih mengirim input Anda seperti penekanan tombol, gerakan mouse, klik ke server. Sebagai tanggapan server memperbarui keadaan karakter Anda di dunia dan membalas dengan paket yang berisi keadaan karakter Anda dan pemain lain di dekat Anda. Yang harus dilakukan klien adalah menginterpolasi antara pembaruan ini untuk memberikan ilusi gerakan halus dan BAM Anda memiliki permainan jaringan.
Ini adalah langkah maju yang bagus. Kualitas pengalaman game sekarang tergantung pada koneksi antara klien dan server, bukan rekan yang paling tertinggal dalam permainan. Itu juga menjadi mungkin bagi pemain untuk datang dan pergi di tengah-tengah permainan, dan jumlah pemain meningkat karena klien / server mengurangi bandwidth yang dibutuhkan rata-rata per-pemain.
Tetapi masih ada masalah dengan model klien / server murni:
Sementara saya dapat mengingat dan membenarkan semua keputusan saya tentang jaringan dari DOOM melalui Quake, intinya adalah bahwa saya bekerja dengan asumsi dasar yang salah untuk melakukan permainan internet yang bagus. Desain asli saya ditargetkan pada latensi koneksi <200ms. Orang yang memiliki koneksi digital ke internet melalui penyedia yang baik mendapatkan pengalaman game yang cukup bagus. Sayangnya, 99% dari dunia melanjutkan dengan slip atau koneksi ppp melalui modem, seringkali melalui ISP yang terlalu penuh sesak. Ini memberi 300+ ms latensi, minimum. Klien. Modem pengguna. Modem ISP. Server. Modem ISP. Modem pengguna. Klien. Tuhan, itu menyebalkan. Ok, saya membuat panggilan buruk. Saya memiliki T1 di rumah saya, jadi saya tidak terbiasa dengan kehidupan PPP. Saya mengatasinya sekarang.
Masalahnya tentu saja latensi.
Apa yang terjadi selanjutnya akan mengubah industri ini selamanya.
Prediksi Sisi Klien
Dalam Gempa asli Anda merasakan latensi antara komputer Anda dan server. Tekan maju dan Anda akan menunggu berapa lama untuk paket untuk melakukan perjalanan ke server dan kembali kepada Anda sebelum Anda benar-benar mulai bergerak. Tekan api dan Anda menunggu penundaan yang sama sebelum menembak.
Jika Anda telah memainkan FPS modern seperti Call of Duty: Modern Warfare, Anda tahu ini bukan lagi yang terjadi. Jadi bagaimana tepatnya game FPS modern menghapus latensi atas tindakan Anda sendiri dalam multi-pemain?
Ketika menulis tentang rencananya untuk QuakeWorld yang akan segera dirilis, John Carmack berkata:
Saya sekarang mengizinkan klien untuk menebak hasil pergerakan pengguna sampai tanggapan otoritatif dari server muncul. Ini adalah perubahan arsitektur biiiig. Klien sekarang perlu tahu tentang soliditas objek, gesekan, gravitasi, dll. Saya sedih melihat pengaturan klien-sebagai-terminal yang elegan hilang, tetapi saya praktis di atas idealis.
Jadi sekarang untuk menghapus latensi, klien menjalankan lebih banyak kode daripada sebelumnya. Ini bukan lagi terminal bisu yang mengirim input ke server dan menginterpolasi antar status yang dikirim kembali. Alih-alih, ia dapat memprediksi pergerakan karakter Anda secara lokal dan segera sebagai respons terhadap input Anda, menjalankan subset kode permainan untuk karakter pemain Anda di mesin klien.
Sekarang begitu Anda menekan maju, tidak ada lagi menunggu perjalanan bolak-balik antara klien dan server – karakter Anda mulai bergerak maju segera.
Kesulitan dari pendekatan ini tidak ada dalam prediksi, karena prediksi berfungsi seperti halnya kode permainan normal – mengubah keadaan karakter permainan maju dalam waktu sesuai dengan input pemain. Kesulitannya adalah dalam menerapkan koreksi kembali dari server untuk menyelesaikan kasus ketika klien dan server tidak setuju tentang di mana karakter pemain seharusnya dan apa yang dilakukannya.
Sekarang pada titik ini Anda mungkin bertanya-tanya. Hei, jika Anda menjalankan kode pada klien – mengapa tidak membuat klien otoritatif atas karakter pemain mereka? Klien dapat menjalankan kode simulasi untuk karakter mereka sendiri dan cukup memberi tahu server di mana mereka setiap kali mereka mengirim paket. Masalah dengan ini adalah bahwa jika setiap pemain dapat dengan mudah memberi tahu server “di sini adalah posisi saya saat ini” akan mudah untuk meretas klien sedemikian rupa sehingga penipu dapat langsung menghindari RPG yang hendak mengenai mereka, atau teleport langsung di belakang Anda menembak Anda di belakang.
Jadi dalam permainan FPS, mutlak perlu bahwa server adalah otoritatif atas keadaan setiap karakter pemain, terlepas dari kenyataan bahwa setiap pemain secara lokal memprediksi gerakan karakter mereka sendiri untuk menyembunyikan latensi. Seperti yang ditulis Tim Sweeney dalam The Unreal Networking Architecture: “The Server Is The Man”.
Di sinilah mulai menarik. Jika klien dan server tidak setuju, klien harus menerima pembaruan untuk posisi dari server, tetapi karena latensi antara klien dan server koreksi ini harus di masa lalu. Misalnya, jika diperlukan 100 ms dari klien ke server dan 100 ms kembali, maka setiap koreksi server untuk posisi karakter pemain akan tampak 200 ms di masa lalu, relatif terhadap waktu di mana klien telah memperkirakan pergerakan mereka sendiri.
Jika klien hanya menerapkan pembaruan koreksi server ini kata demi kata, itu akan menarik klien kembali pada waktunya, benar-benar membatalkan prediksi sisi klien. Lalu bagaimana menyelesaikannya sementara masih memungkinkan klien untuk memprediksi ke depan?
Solusinya adalah dengan menjaga buffer melingkar dari status karakter masa lalu dan input untuk pemain lokal pada klien, maka ketika klien menerima koreksi dari server, ia terlebih dahulu membuang status buffer yang lebih lama dari kondisi terkoreksi dari server, dan memutar ulang keadaan mulai dari keadaan terkoreksi kembali ke waktu “diprediksi” pada klien menggunakan input pemain yang disimpan dalam buffer melingkar. Akibatnya klien tanpa terlihat “memundurkan dan memutar ulang” n frame terakhir dari gerakan karakter pemain lokal sambil menahan seluruh dunia tetap.
Dengan cara ini pemain muncul untuk mengontrol karakter mereka sendiri tanpa latensi, dan asalkan kode simulasi karakter klien dan server masuk akal, memberikan hasil yang kira-kira sama persis untuk input yang sama pada klien dan server, jarang dikoreksi. Seperti yang dijelaskan Tim Sweeney:
… yang terbaik dari kedua dunia: Dalam semua kasus, server tetap benar-benar resmi. Hampir sepanjang waktu, simulasi gerakan klien persis mencerminkan gerakan klien yang dilakukan oleh server, sehingga posisi klien jarang diperbaiki. Hanya dalam kasus yang jarang terjadi, seperti pemain terkena roket, atau menabrak musuh, lokasi klien perlu diperbaiki.
Dengan kata lain, hanya ketika karakter pemain dipengaruhi oleh sesuatu di luar input pemain lokal, yang tidak mungkin diprediksi pada klien, posisi pemain perlu dikoreksi. Itu dan tentu saja, jika pemain berusaha menipu
Saat ini gadget tergolong mudah didapatkan oleh siapa saja termasuk anak-anak. Ketertarikan orang pada gadget atau gawai pun karena hal yang beragam, mulai dari untuk urusan bisnis pendidikan sosial media, hiburan dan game.
Game sudah wajib ada dalam aplikasi gadget baik yang online maupun offline. Game offline bisa dimainkan kapan saja tanpa harus terhubung ke internet. Sedangkan game online saat dimainkan harus menggunakan jaringan internet.
Mengapa orang tertarik memainkan game online dibandingkan game offline. Terkadang ada game online yang konsepnya sama dengan offline, namun ada lebih banyak keseruan di versi online-nya. Misalnya game online lebih banyak level, aksesoris, lebih banyak lawan main dan lainnya.
Game online adalah permainan yang biasanya digunakan adalah jaringan internet dan yang sejenisnya serta selalu menggunakan teknologi yang ada saat ini, seperti modem dan koneksi kabel. Arti game online dalam bahasa Indonesia adalah permainan daring.
Biasanya permainan daring disediakan sebagai tambahan layanan dari perusahaan penyedia jasa online, atau dapat diakses langsung melalui sistem yang disediakan dari perusahaan yang menyediakan permainan tersebut. Sebuah game online bisa dimainkan secara bersamaan dengan menggunakan computer yang terhubung ke dalam sebuah jaringan tertentu.
Menurut Andrew Rollings dan Ernest Adams,game online adalah sebuah teknologi, dibandingkan sebagai sebuah genre permainan; sebuah mekanisme untuk menghubungkan pemain bersama, dibandingkan pola tertentu dalam sebuah permainan.
Sementara, menurut Webster Dictionary edisi tahun 1913 istilah game didefiniskan sebagai “A contest, physical or mental, according to certain rules, for amusement, recreation, or for winning a stake; as, a game of chance; games of skill; field games, etc.”
Permainan daring terdiri dari banyak jenis, dari mulai permainan sederhana berbasis teks hingga permainan yang menggunakan grafik kompleks dan membentuk dunia virtual yang ditempati oleh banyak pemain sekaligus.
Dalam permainan daring, ada dua unsur utama, yaitu server dan client. Server melakukan administrasi permainan dan menghubungkan client, sedangkan client adalah pengguna permainan yang memakai kemampuan server.
Sejarah Game Online Mendobrak Dunia
Game Online ternyata memiliki sejarah yang panjang hingga bisa menjadi secanggih dan seseru sekarang ini.
Jadi awalnya game online ini dibuat untuk dua pemain yang tujuannya pun untuk pendidikan. Permainan daring dimulai sejak tahun 1969, ketika permainan untuk dua orang dikembangkan dengan tujuan awal untuk pendidikan.
Kemudian pada awal tahun 1970, sebuah sistem dengan kemampuan time-sharing, yang disebut Plato, diciptakan untuk memudahkan siswa belajar secara online, di mana beberapa pengguna dapat mengakses komputer secara bersamaan menurut waktu yang diperlukan. Dua tahun kemudian, muncul Plato IV dengan kemampuan grafik baru, yang digunakan untuk menciptakan permainan untuk banyak pemain (multiplayer games).
Permainan daring baru benar-benar mengalami perkembangan setelah tahun 1995, pembatasan NSFNET (National Science Foundation Network) dihapuskan, membuat akses ke domain lengkap dari internet.
Kesuksesan moneter menghampiri perusahaan-perusahaan yang meluncurkan permainan ini, sehingga persaingan mulai tumbuh dan menjadikan permainan daring semakin berkembang hingga hari ini.[3]
Tahun 1969
Kesuksesan moneter menghampiri perusahaan-perusahaan yang meluncurkan permainan ini, sehingga persaingan mulai tumbuh dan menjadikan permainan daring semakin berkembang hingga hari ini.[3]
Tahun 1969
Tahun 1980an, Roy Trubshaw dan Bartle Richard membuat pengembangan pertama Multi-User Dungeon ( MUD ) pada Desember – 10 di Universitas Essex, Colchester, Inggris. Apa yang sekarang dianggap sebagai ” klasik ” MUD diinstal dan berjalan selama sembilan tahun . Akhirnya, popularitas permainan dengan hacker dan non – hacker sama menyebabkan sumber daya komputer untuk digunakan pada tingkat yang luar biasa dan universitas membatasi waktu bermain dengan jam malam.
Meskipun kode MUD adalah hak cipta, Bartle cukup liberal tentang berbagi dengan perguruan tinggi dan universitas untuk tujuan pendidikan. Seseorang di salah satu lembaga mulai melewati sekitar kode sumber untuk teman-teman
Pada akhir tahun 1983, ratusan salinan ilegal telah didistribusikan di seluruh dunia, mulai bebas akses MUD menggila di universitas dan, akhirnya, di Internet .
Sejak itu banyak perusahaan bahkan perorangan yang membuat game online yang bisa dimainkan baik secara gratis maupun berbayar. Apalagi sekarang orang-orang yang membuat game online bisa menjualnya di Google Play Store.
Google Play Store merupakan tempat pengunduhan dan pembelian berbagai macam aplikasi termasuk game. Disana ada ratusan game online yang bisa Anda unduh dan instal ke gadget Anda.
Permainan daring mulai muncul di Indonesia pada tahun 2001, dengan diluncurkannya Nexia Online, sebuah permainan RPG keluaran BolehGame dengan grafik sederhana berbasis 2D.
Nexia hanya membutuhkan spesifikasi komputer yang cukup kecil, bahkan bisa dimainkan di Pentium 2 dengan minimal grafik 3D. Permainan keluaran Korea ini berhasil memperkenalkan bermain game dan chat pertama di Indonesia. Sayangnya, permainan ini ditutup pada tahun 2004 karena lisensi yang tidak diperpanjang. Semenjak itu, dunia permainan daring di Indonesia semakin berkembang dengan masuknya beberapa provider game baru, seperti Redmoon (2002), Laghaim pada awal 2003, Ragnarok Online (RO) pada pertengahan 2003, dan Gunbound pada tahun 2004.
Ragnarok Online (RO) merupakan salah satu permainan daring yang menghebohkan di ranah dunia permainan daring Indonesia. Permainan yang keluar pada bulan Mei tahun 2003 ini, memang telah dinantikan kedatangannya dengan penuh antusiasme dari banyak gamer, dan telah lebih dulu mem-booming di ranah mancanegara. Permainan ini langsung diserbu oleh banyak orang dan berhasil membuat permainan daring mencapai titik puncak penggunaan hingga sempat membuat koneksi internet Indonesia kacau karena bandwidth yang tersedia pada saat itu belum memadai.
Jenis Game Online
Ada jutaan game yang ada di dunia maya saat ini. Mulai dari game yang sangat simpel hingga yang kompleks, rumit dan bahkan mempertaruhkan uang virtual. Game online pun dibedakan dari beberapa aspek.
Berdasarkan Jenis Permainannya
- Massively Multiplayer Online First-person shooter games (MMOFPS)
Permainan ini mengambil pandangan orang pertama sehingga seolah-olah pemain berada dalam permainan tersebut dalam sudut pandang tokoh karakter yang dimainkan, di mana setiap tokoh memiliki kemampuan yang berbeda dalam tingkat akurasi, refleks, dan lainnya. Biasanya ketika bermain yang player seolah merasakan dirinya ada dalam game. Misalnya game peperangan, maka yang terlihat tangan memegang senjata. Game balapan mobil yang terlihat adalah stir mobil, tangan dan pemandangan dati kaca depan mobil
Contoh permainan jenis ini antara lain Counter Strike, Call of Duty, Point Blank, Quake, Blood, Unreal.
- Massively Multiplayer Online Real-time strategy games (MMORTS)
Permainan jenis ini menekankan kepada kehebatan strategi pemainnya. Permainan ini memiliki ciri khas di mana pemain harus mengelola suatu dunia maya dan mengatur strategi dalam waktu apapun. Dalam RTS, tema permainan bisa berupa sejarah (misalnya seri Age of Empires), fantasi (misalnya Warcraft), dan fiksi ilmiah (misalnya Star Wars)
- Massively Multiplayer Online Role-playing Games (MMORPG)
Nah, yang jenis ini merupakan permainan di mana pemainnya memainkan peran tokoh-tokoh khayalan dan berkolaborasi untuk merajut sebuah cerita bersama. RPG biasanya lebih mengarah ke kolaborasi sosial daripada kompetisi.
Pada umumnya dalam RPG, para pemain tergabung dalam satu kelompok. Contoh dari genre permainan ini Ragnarok Online,The Lord of the Rings Online: Shadows of Angmar, Final Fantasy, DotA.
- Cross-platform online play
Jenis permainan yang dapat dimainkan secara online dengan perangkat yang berbeda. Saat ini mesin permainan konsol (console games) mulai berkembang menjadi seperti komputer yang dilengkapi dengan jaringan sumber terbuka (open source networks), seperti Dreamcast, PlayStation 2, dan Xbox yang memiliki fungsi online. misalnya Need for Speed Underground, yang dapat dimainkan secara online dari PC maupun Xbox 360 begitu juga dengan Super Mario dan Sonic
- Massively Multiplayer Online Browser Game
Permainan yang dimainkan pada peramban seperti Mozilla Firefox, Opera, atau Internet Explorer. Sebuah permainan daring sederhana dengan pemain tunggal dapat dimainkan dengan peramban melalui HTML dan teknologi scripting HTML (JavaScript, ASP, PHP, MySQL).
Perkembangan teknologi grafik berbasis web seperti Flash dan Java menghasilkan permainan yang dikenal dengan “Flash games” atau “Java games” yang menjadi sangat populer. Permainan sederhana seperti Pac-Man bahkan dibuat ulang menggunakan pengaya (plugin) pada sebuah halaman web. Browser games yang baru menggunakan teknologi web seperti Ajax yang memungkinkan adanya interaksi multiplayer.
- Simulation games
Pada life-simulation games, pemain bertanggung jawab atas sebuah tokoh atau karakter dan memenuhi kebutuhan tokoh selayaknya kehidupan nyata, namun dalam ranah virtual. Karakter memiliki kebutuhan dan kehidupan layaknya manusia, seperti kegiatan bekerja, bersosialisasi, makan, belanja, dan sebagainya. Biasanya, karakter ini hidup dalam sebuah dunia virtual yang dipenuhi oleh karakter-karakter yang dimainkan pemain lainnya. Contoh permainannya adalah Second Life.
- Massively multiplayer online games (MMOG)
Pemain bermain dalam dunia yang skalanya besar (>100 pemain), di mana setiap pemain dapat berinteraksi langsung seperti halnya dunia nyata. MMOG muncul seiring dengan perkembangan akses internet broadband di negara maju, sehingga memungkinkan ratusan, bahkan ribuan pemain untuk bermain bersama-sama.
Berdasarkan Cara Bayar
1.Pay to Play
Jenis permainan di mana pemain harus membayar sejumlah uang untuk bermain. Beberapa permainan dapat di-install atau dimainkan secara gratis, namun jika pemain ingin menaikkan level dengan cepat atau membeli barang (item) langka pada permainan, maka pemain harus membayar sejumlah uang, misalnya Gunbound, Ragnarok Online, dan Ghost Online. Beberapa permainan lainnya membebankan pemain dengan biaya langganan untuk mendapatkan layanan mereka, seperti pada permainan Lineage II dan Final Fantasy XI.
- Free to Play
Jenis permainan ini tidak membebankan pemain dengan biaya apapun, sehingga dapat dimainkan langsung secara cuma-cuma. Permainan free to play misalnya Subspace,Travian, Terra, dan Crossfire. Ada pula permainan free to play yang diselingi oleh iklan, baik di dalam permainan atau pop-up, seperti permainan Anarchy Online.
Berdasarkan Grafis
– 2 Dimensi (2D)
Permainan yang mengadopsi teknologi ini biasanya termasuk permainan yang ringan dan tidak membebani sistem. Kelemahan permainan ini adalah kualitas gambar yang kurang enak dilihat jika dibandingkan dengan permainan 3D. Permainan daring pada umumnya sekarang mengadopsi teknologi 2,5D di mana karakter yang dimainkan berbentuk 2D, namun dengan lingkungan yang sudah mengadopsi 3D.
– 3 Dimensi (3D)
Permainan bertipe 3D memiliki grafik yang lebih baik dalam penggambaran sehingga mirip dengan realita. Biasanya dalam permainan dengan grafik 3D memiliki sudut pandang hingga 360 derajat sehingga kita bisa melihat secara keseluruhan dunia dalam permainan tersebut. Akan tetapi, spesifikasi komputer yang dibutuhkan dalam permainan 3D cukup tinggi.
Contoh Game Online yang Populer di Indonesia
Banyak game yang berseliweran silih berganti di internet. Game populer pun terus bermunculan dan menjadikan yang lawas sepi peminat. Setiap waktu muncul game online dengan daya tarik tersendiri. Nah, bagi Anda yang ingin gaul dan supaya tidak dibilang kuper dalam dunia game, berikut ini adalah contoh game populer di Indonesia.
- Dota 2. Merupakan sekuel mod Dota populer untuk Warcraft 3 dan Dota merupakan salah satu MOBA paling laku dimainkan.
Ini adalah game MOBA cukup simpel dengan tim yang terdiri dari 5 orang dan melawan tim yang serupa. Tujuan dari game ini adalah menghancurkan tim musuh. Namun, kamu harus memiliki strategi yang bagus untuk tim untuk mendapatkan kemenangan.
- PUBG. PlayerUnknown Battlegrounds, berfokus pada gameplay survival berskala besar. Kamu terdampar di sebuah pulau dan harus melakukan penjarahan seperti pakaian, tempat tinggal, senjata dan lain-lain. Kalian bisa bermain secara tim dan solo player dan harus bertahan hidup di tengah serangan pemain lain.
- League of Legends. Game ini sempat menjadi dipertandingkan pada Asian Games ke-18 Jakarta Palembang dan bisa dibilang salah satu saingan utama Dota 2. League of Legends adalah game yang dikembangkan oleh Riot dan di Indonesia dirilis oleh Garena. Game ini menawarkan pertempuran 5v5 dimana pemenang akan ditentukan oleh tim yang bisa menghancurkan markas atau base lawan.
- Fortnite. Game ini bertemakan perang antar kerajaan dan ingin bermain dengan orang lain di dunia terbuka yang di mana semua orang keluar untuk bertarung satu sama lain, Fortnite merupakan game yang cocok untuk kalian mainkan.
Game ini merupakan game survival yang mencakup mode pertempuran hebat, juga dipenuhi dengan karakter yang menarik dan aksi luar biasa. Jika kalian ingin menikmati game co-op survival yang ringan, maka Fortnite game yang tepat untuk kalian mainkan.
- Grand Theft Auto (GTA) V Online. Game ini merupakan besutan Rockstar. GTA menawarkan kebebasan dan kegilaan saat memainkan game ini. Game ini juga memiliki mode online yang wajib kalian mainkan. Dalam versi online, kalian bisa memainkan berbagai macam kegilaan.
Dari misi yang sangat bervariasi, seperti balapan liar, heist mission bersama teman-teman mu, atau melakukan hal gila lainnya seperti death match ataupun royal rumble. Kalian bisa bermain bersama teman sambil melakukan hal gila dan konyol menjelajahi kota-kota di GTA.
- Counter Strike Gobal Offensive.Game ini merupakan reinkarnasi permainan legendaris yang membawa banyak penggemar. Game ini sangat kompetitif dengan adegan eSport yang sangat besar mendudukinya. Counter Strike GO adalah game peperangan dimana kamu bisa bergabung dengan teroris atau kontra teroris.
Dalam permainan game ini pemenang ditentukan jika berhasil membunuh semua anggota tim lawan atau menyelesaikan misi seperti menjinakkan bom. Bagi pemain yang mati dalam permainan harus menunggu ronde selesai dan baru bisa berpartisipasi kembali dalam permainan.
- Minecraft. Merupakan sebuah game yang dapat meningkatkan kreativitas bagi kalian yang memainkannya. Pasalnya dalam game ini kalian akan diberikan kebebasan untuk menciptakan berbagai macam bangunan ataupun benda-benda apapun di dunia Minecraft.
Game ini menceritakan tentang menghancurkan dan menempatkan balok. Pada awalnya, pemain membangun untuk perlindungan dari serangan makhluk-makhluk yang hanya keluar pada malam hari. Minecraft sangat cocok dimainkan secara online bersama teman-teman sekaligus bertualang di dunia Minecraft.





