Saya memiliki Game 2D yang ditulis dalam C ++ menggunakan SFML. Saya ingin membuat game diperluas sehingga konten seperti barang atau entitas dapat dengan mudah ditambahkan dengan menambahkan baris / entri / baris ke file atau database.
Saya mencari sesuatu yang tidak perlu dikompilasi ke dalam program, tetapi sebaliknya dapat dibaca dan ditulis pada saat runtime. Kapan tepat menggunakan basis data?
Jawaban:
Hanya gunakan basis data jika Anda membutuhkan basis data. Itu adalah:
Jika data permainan Anda memenuhi salah satu dari kondisi ini, Anda mungkin mendapat manfaat dari menggunakan database. Perhatikan bahwa ini tidak terlalu umum, dan Anda mungkin tidak memenuhinya. Jika Anda melakukannya, saya akan menggunakan SQLite atau sesuatu dengan ide yang sama untuk tidak memerlukan server yang sedang berjalan dan menjadi hanya sebuah perpustakaan.
Jika tidak, gunakan file dan muat data dalam memori saat startup. Jika Anda ingin game dapat dimodifikasi, muat data ini dari direktori game Anda dan dari direktori mods dan tentukan bagaimana informasi yang bertentangan dapat digabungkan.
Juga mencatat bahwa, jika Anda melakukan menggunakan database, mungkin menguntungkan Anda dan pengembang mods' masih menggunakan file untuk membaca data awal dan membangun database hanya ketika beban game. Kecuali ukuran potensial dari basis data ini sangat besar (yaitu, lebih dari beberapa lusin MiB), Anda mungkin ingin menggunakan basis data dalam memori, yang dimungkinkan dalam SQLite dengan menetapkan
:memory:
sebagai jalur basis data .sumber
SQLite
, bahkan jika kebutuhan Anda TIDAK "kompleks" atau "besar". Sebenarnya ada banyak alasan mengapa dengan sesuatu yang kecil dan tertanam seperti itu, Anda bisa mendapatkan manfaat besar dari memiliki database di ujung jari Anda.Saya sangat suka MongoDB untuk game develpoment, ia memiliki kinerja yang sangat bagus dan sangat fleksibel, mudah digunakan dan berbasis json.
Anda bisa menambahkan bidang apa saja yang Anda butuhkan dalam koleksi apa pun karena itu NoSQL Arch, sehingga sangat cocok di lingkungan "dinamis" seperti game.
Coba intip .
Jika Anda sedang mengembangkan beberapa jenis game strategi berbasis MMO Turn, mungkin Anda harus membaca tentang CouchDB , ini adalah Database NoSQL yang memiliki sistem versi yang sangat bagus.
sumber
CastleDB adalah pilihan yang baik karena itu hanya editor yang mengubah database menjadi file JSON sesudahnya. Saya telah melihat banyak jawaban yang mengatakan file plaintext adalah yang terbaik, jadi CastleDB mungkin yang terbaik dari kedua dunia.
sumber