Tôi đang phát triển một nền tảng 2D với một số người bạn. Chúng tôi đã dựa trên Bộ công cụ khởi động nền tảng XNA sử dụng các tệp .txt để lưu trữ bản đồ ô vuông. Mặc dù điều này là đơn giản nhưng nó không cung cấp cho chúng ta đủ quyền kiểm soát và tính linh hoạt với thiết kế cấp. Một số ví dụ: đối với nhiều lớp nội dung, nhiều tệp được yêu cầu, mỗi đối tượng được cố định trên lưới, không cho phép xoay đối tượng, số lượng ký tự hạn chế, v.v. Vì vậy, tôi đang nghiên cứu cách lưu trữ dữ liệu cấp độ và tập tin bản đồ.
Điều này chỉ liên quan đến việc lưu trữ hệ thống tệp của các bản đồ ô vuông, không liên quan đến cấu trúc dữ liệu mà trò chơi sẽ sử dụng trong khi trò chơi đang chạy. Bản đồ ô vuông được tải vào một mảng 2D, vì vậy câu hỏi này là về nguồn nào để điền vào mảng đó.
Lý do cho DB: Từ quan điểm của tôi, tôi thấy ít dư thừa dữ liệu bằng cách sử dụng cơ sở dữ liệu để lưu trữ dữ liệu ô. Gạch ở cùng vị trí x, y có cùng đặc điểm có thể được sử dụng lại từ cấp này sang cấp khác. Có vẻ như nó đủ đơn giản để viết một phương thức để lấy tất cả các ô được sử dụng ở một mức cụ thể từ cơ sở dữ liệu.
Lý do cho JSON / XML: Các tệp có thể chỉnh sửa trực quan, các thay đổi có thể được theo dõi qua SVN dễ dàng hơn rất nhiều. Nhưng có nội dung lặp đi lặp lại.
Có bất kỳ nhược điểm nào (thời gian tải, thời gian truy cập, bộ nhớ, v.v.) so với cái khác không? Và những gì thường được sử dụng trong ngành công nghiệp?
Hiện tại các tập tin trông như thế này:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - Điểm bắt đầu của người chơi, X - Thoát cấp ,. - Không gian trống, # - Nền tảng, G - Gem