Saya sedang mengembangkan platformer 2D dengan beberapa teman uni. Kami telah mendasarkannya pada XNA Platformer Starter Kit yang menggunakan file .txt untuk menyimpan peta ubin. Meskipun ini sederhana, itu tidak memberi kita kontrol dan fleksibilitas yang cukup dengan desain level. Beberapa contoh: untuk beberapa lapisan konten diperlukan beberapa file, setiap objek diperbaiki ke grid, tidak memungkinkan untuk rotasi objek, jumlah karakter yang terbatas, dll. Jadi saya sedang melakukan penelitian tentang cara menyimpan data level dan file peta.
Ini hanya menyangkut penyimpanan sistem file peta ubin, bukan struktur data yang akan digunakan oleh game saat sedang berjalan. Peta petak dimuat ke dalam array 2D, jadi pertanyaan ini adalah tentang sumber dari mana untuk mengisi array.
Alasan DB: Dari sudut pandang saya, saya melihat redundansi data yang lebih sedikit menggunakan database untuk menyimpan data ubin. Ubin dalam posisi x, y yang sama dengan karakteristik yang sama dapat digunakan kembali dari level ke level. Sepertinya cukup sederhana untuk menulis metode untuk mengambil semua ubin yang digunakan pada level tertentu dari database.
Alasan JSON / XML: File yang dapat diedit secara visual, perubahan dapat dilacak melalui SVN jauh lebih mudah. Tetapi ada konten berulang.
Apakah ada kekurangan (waktu buka, waktu akses, memori dll) dibandingkan dengan yang lain? Dan apa yang biasa digunakan di industri?
Saat ini file terlihat seperti ini:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - Titik awal pemain, X - Level Keluar,. - Ruang kosong, # - Platform, G - Gem