Berbagai permainan menyimpan berbagai hal dengan cara berbeda. Seringkali, perusahaan game membuat beberapa cara untuk melakukan ini, dan sebagian besar game mereka menggunakan cara yang sama. Tentu saja, berbagai studio sering menggunakan cara yang berbeda. SQL tentu digunakan untuk gim, misalnya CCP (EVE) memiliki (atau setidaknya memiliki) jaringan server SQL, saya tidak yakin bagaimana mereka melakukannya sekarang. Lainnya, cukup gunakan banyak file.
Mungkin mulai dengan menciptakan "mekanisme perantara data" agnostik, untuk menangani berbagai transaksi data permainan? Karena Anda hanya menguji apa pun, buat mekanisme yang memungkinkan Anda untuk tidak perlu terlalu peduli tentang penyimpanan, dari sudut pandang permainan itu sendiri. Artinya, berkonsentrasilah pada bagaimana, dari aplikasi host, Anda akan menangani ini.
Secara pribadi saya pikir itu akan menjadi aset yang hebat jika Anda bisa mengganti toko yang sebenarnya, tanpa harus menulis ulang permainan dan broker itu sendiri. Alihkan saja ke modul lain dengan antarmuka yang sama untuk diajak bicara oleh broker.
Menyimpan data itu sendiri kemungkinan tidak akan menjadi masalah. Pengiriman data yang efisien, ke / dari toko itu, antara tuan rumah dan semua klien, bisa lebih rumit. Apakah saya mengirimkan seluruh kumpulan data pemain, atau jika saya memecahnya menjadi beberapa bagian, granularitas apa yang saya pilih untuk dipartisi, dll. Yang mana yang lebih intensif sumber daya dalam situasi apa, dll.
Satu format untuk pengiriman data, bisa berupa XML. Dengan begitu Anda bisa lebih mudah menjadi dinamis dalam hal bagaimana Anda bisa memotongnya. Satu karakter vs banyak karakter, atau satu item vs koleksi item, dll. Anda kemudian dapat "menyimpan" XML sebagai XML (dalam SQL), dan / atau meminta SQL mendistribusikannya dengan cara yang lebih transaksional dari XML, ke bagaimana Anda ingin data sebenarnya disimpan.
Cara lain adalah biner, yang lebih efisien dalam hal pengiriman, tetapi dapat menimbulkan lebih banyak biaya dalam situasi lain.
Dengan 1.000 klien, Anda dapat memulainya, dan dengan mudah menyimpan 10 MB per klien dan hanya menggunakan 10 GB RAM efektif + menambahkan beberapa RAM administratif sistem untuk mengelola data itu, katakan satu atau dua GB lagi. Anda bisa menyimpannya di RAM pada host yang sudah dalam struktur data siap digunakan. Dan memuat / menyimpan secara dinamis, tergantung pada siapa yang online, dalam berbagai frekuensi tergantung pada aktivitas, dll.
Anda bahkan dapat menyimpan informasi masing-masing klien dalam file terpisah, dan sebagainya.