Tôi cần lưu một số dữ liệu trò chơi tùy chỉnh. Bản đồ, người chơi, v.v.
Tất cả trong số họ sẽ có "đối tượng phụ". Ví dụ: bản đồ và bản đồ sẽ có một "mảng" gạch. tức là dữ liệu phân cấp. Hy vọng không có gì nhị phân.
Điều gì sẽ là một định dạng tốt cho những điều này?
Cho đến nay tôi đã xem xét:
Serailization: Đây là NHANH CHÓNG và dễ dàng, nhưng có xu hướng bị phá vỡ khi tôi thay đổi các lớp bên dưới :(
XML: Tôi thực sự ghét phân tích cú pháp này. Trường hợp thử nghiệm của tôi là hơn 100 dòng mã và có vẻ như hàng tấn "công việc bận rộn" với định dạng rất đơn giản.
INI: sẽ thực sự vụng về cho dữ liệu phân cấp.
Protobuf: Không bao giờ sử dụng nó, nhưng đọc bạn phải thực hiện rất nhiều thao tác thủ công xung quanh và phá vỡ nếu bạn thay đổi lớp học.
Sự lựa chọn khác? Đó là lý do tại sao tôi ở đây!
Chỉnh sửa: đây là Java btw.
Chỉnh sửa 2:
Tôi giải quyết "Tuần tự nhị phân có kiểm soát" (xem bên dưới).
Ưu điểm:
nó nhanh
nó nhỏ (trên đĩa) và có thể dễ dàng nén / giải nén trong quá trình đọc / ghi.
thật dễ dàng để đọc / ghi từ trò chơi và bộ công cụ.
Tôi có thể quyết định những gì cần bao gồm / loại trừ đối tượng.
Đối tượng / Dữ liệu có thể được lồng nhau.
Nhược điểm:
Không thể chỉnh sửa bằng tay (như XML, YAML, v.v.)
Không thể dễ dàng đọc / sửa đổi nó với các tập lệnh
Tuần tự hóa Java theo mặc định là khá chậm / cồng kềnh so với các hàm ý khác, nhưng nó ổn định và hoạt động