Terminologi MMO untuk "tetap dalam satu dunia game" adalah beling tunggal . EVE online adalah satu-satunya MMO utama yang mencoba menjejalkan setiap pemain ke dalam satu beling.
Beruntung bagi Anda, mereka menerbitkan artikel yang sangat informatif tentang cara mereka melakukannya.
(sumber: gamasutra.com )
Berita buruknya. Anda tidak dapat menerapkan teknik EVE online secara umum. Solusi mereka benar-benar disesuaikan dengan genre dan implementasi khusus mereka.
CATATAN : Untuk semua jaringan pecahan tunggal super mewah EVE online, mereka menggunakan satu basis data. Mereka tidak dapat merancang solusi yang terukur, konsisten, dan real-time untuk database terdistribusi.
Either way membaca bagaimana mereka melakukannya harus membantu Anda merancang solusi Anda sendiri. Namun waspadalah, Anda berusaha menyelesaikan masalah yang sangat sulit.
Alih-alih mendistribusikan server gim Anda, saya sarankan jelajahi jalan Anda yang lain terlebih dahulu.
- Profil server game Anda.
- Optimalkan kode server Anda untuk mengurangi beban CPU jika itu merupakan masalah.
- Optimalkan protokol komunikasi antara klien dan server untuk mengurangi obrolan jaringan.
- Optimalkan server gamer ke komunikasi basis data.
- jalankan pengoptimal kueri lalu buat perubahan yang sesuai.
- mengurangi interaksi DB seminimal mungkin
- Pindahkan DB ke mesin yang terpisah.
Ini sering membantu satu ton. Pertahankan DB di jaringan lokal yang sama jika mungkin tetapi itu harus membantu server gim Anda menjadi jauh lebih segar ketika itu satu-satunya yang berjalan pada perangkat keras server.
Langkah pertama Anda harus memisahkan akses basis data langsung dari server game dan menggunakan middleware khusus penggunaan untuk menyiapkan data untuk server Anda (mis. XML, JSON). Ini akan dapat menangani sejumlah basis data dan yang lebih penting lagi dapat memberi Anda opsi caching khusus aplikasi. Cache apa pun yang Anda bisa dan cerewet db hanya ketika Anda harus. Lakukan pengambilan besar dan jarang alih-alih banyak kueri kecil untuk mencapai kinerja terbaik dalam skenario Anda.
Database pilihan Anda mungkin juga memungkinkan Anda untuk mengoperasikan cluster yang membuatnya mudah untuk memperluas sumber daya database yang tersedia dan memberikan hasil Anda lebih cepat, tetapi ini adalah subjek yang membutuhkan banyak pengalaman dan administrator database khusus untuk mengatur dan memelihara - dan tidak cukup untuk anggaran indie juga.
sumber
Mengenai server game: Strategi umum adalah menggunakan beberapa server di mana setiap server mengelola bagian dari dunia game. Setiap pengguna biasanya hanya perlu tahu tentang apa yang terjadi di sekitarnya, jadi masuk akal untuk membagi dunia berdasarkan lokasi. Sayangnya ini menjadi jauh lebih rumit ketika Anda memiliki dunia terbuka tanpa batas, bukan dunia yang terdiri dari zona tertutup dan pemain berteleportasi di antara mereka. Ketika Anda memiliki dunia terbuka, Anda perlu cara untuk mentransfer pemain antar zona dengan cara yang mulus dan cara untuk menyinkronkan area di dekat perbatasan antara server. Itu masalah yang sulit.
Mengenai database: Database SQL biasanya berskala buruk. Mereka tidak dirancang untuk didistribusikan. Tetapi saat ini ada tren baru dari database NoSQL seperti MongoDB atau Cassandra yang dirancang untuk didistribusikan melalui beberapa server. Mereka membuatnya lebih mudah untuk menambah kapasitas hanya dengan menambahkan lebih banyak server. Jadi mengapa tidak semua game besar beralih ke mereka? Karena:
Jadi, ketika proyek Anda sudah sangat maju, beralih ke solusi database lain mungkin merupakan risiko besar dan investasi waktu dan energi yang sangat besar.
sumber
Tidak. Ini adalah area yang sangat sulit yang belum terpecahkan.
sumber
Saya tahu ini sudah tua tapi ....
Sebenarnya ada dua area untuk fokus pada ini.
Anda perlu mendistribusikan aplikasi Anda di beberapa server. Anda perlu mendistribusikan database Anda di beberapa server.
Dan Anda harus memiliki redundansi untuk keduanya.
Ada beberapa solusi open source untuk ini. Farmville adalah contoh yang baik menggunakan MemSQL / Couchbase.
sumber