Saya sedang mengerjakan game multipemain realtime yang akan membutuhkan basis data (untuk fitur seperti profil pemain, teman, membuka kunci, berita, dll.) Ini adalah game PC standar (bukan berbasis browser) dan akan menggunakan server klien Arsitektur. Saya baru menggunakan database, dan telah melakukan penelitian selama beberapa hari terakhir ketika saya menemukan perdebatan sengit: RDBMS vs NoSQL. Saat ini saya condong ke NoSQL tetapi setelah membaca tentang kegunaan untuk masing-masing (RDBMS dan NoSQL), saya tergoda untuk menggunakan keduanya. Saya tahu itu mungkin tampak aneh, tetapi izinkan saya menjelaskan situasi saya:
Tim saya memiliki paket webhosting bersama yang menawarkan penyimpanan dan bandwidth mySQL tanpa batas, satu-satunya peringatan adalah bahwa kita hanya dapat memiliki 25 koneksi terbuka pada satu waktu (aturan shared hosting). Saya bermaksud menggunakan ini untuk situs web saya (penggunaan tipikal tidak diragukan) untuk memposting pembaruan berita, mendukung fitur komunitas (seperti komentar, mengunggah seni penggemar, dll.) Dan sejenisnya. Semuanya baik dan bagus - tetapi! Di sinilah segalanya menjadi menarik ... Saya ingin menampilkan informasi yang sama ini yang diposting di situs web saya, dalam game. Ini berarti menggunakan mySQL untuk situs web dan permainan saya. Selain posting berita dan sejenisnya, saya berencana menggunakannya dalam game untuk hal-hal seperti obrolan dan daftar server. Saya khawatir tentang 25-koneksi-aturan kebanyakan.
Yang membuat saya bertanya Pertanyaan # 1: Apakah ini akan berhasil dan apakah ada alternatif yang lebih baik?
Sekarang selain ini, saya telah membaca tentang bagaimana kinerja NoSQL dan cocok untuk permainan waktu nyata (saya bisa saja salah, saya telah berjalan melalui RDBMS vs NoSQL api perang besar untuk sampai ke sini dan mungkin terbakar). Pada dasarnya, saya ingin menggunakan MongoDB untuk semua data objek game saya.
Dan lagi, akan sangat membantu jika saya memberikan beberapa konteks: Saya telah menemukan sebuah host (MongoLab) yang menawarkan paket MongoDB 240MB secara gratis, yang ingin saya gunakan sampai perlu ditingkatkan. Diberikan 240MB, saya telah menghitung bahwa saya akan dapat menyimpan sekitar 60.000 pemain (jika setiap pemain kira-kira 4KB dan kami mengabaikan hal-hal lain yang mungkin disimpan). Ruang penyimpanan, dan harus membayar lebih di masa depan (jika game kami berhasil) tidak menjadi masalah. Satu-satunya alasan saya saat ini berniat menggunakan MongoDB untuk semua data objek game saya adalah karena seberapa sering data objek game ini akan diakses (seperti setiap kali pemain terbunuh, mengambil item, menembakkan senjata, dll.) I juga menyukai dokumen bebas skema langsung (yang membuatnya lebih mudah untuk memetakan data objek game). Saya harus mencatat bahwa, pada suatu waktu,
Saya bermaksud menggunakan MongoDB yang sama di situs web saya, untuk menampilkan informasi profil pemain (saya tidak peduli dengan konsistensi lengkap, beberapa penundaan dari pembaruan dalam game baik-baik saja). Yang mengarahkan saya ke pertanyaan kedua saya, Pertanyaan # 2: Apakah ini ide yang bagus atau ada sesuatu yang lebih baik yang harus saya lakukan?
Gim ini akan memiliki pengalaman memulai yang mirip dengan ini:
- Log masuk klien (MongoDB)
- Klien ada di halaman beranda dalam game di ruang obrolan (MySQL)
- Klien pergi ke daftar server (MySQL)
Klien terhubung ke server dan bermain di dalamnya
Server mengkomunikasikan pembaruan untuk semua pemain (MongoDB)
Ini hanya cara saya membayangkan itu akan berhasil. Apakah ini terlihat baik bagi Anda, atau apakah Anda memiliki saran tentang bagaimana rencana ini dapat ditingkatkan?