Có danh sách đóng cửa để thực hiện từng lượt chơi trò chơi giống như ý tưởng thực sự hay :-)
Đóng gói nối tiếp là hoàn toàn có thể. Kể từ Groovy 1.8.5, nó đã được thực hiện dễ dàng hơn như hai phương pháp dehydrate
và rehydrate
đã được thêm vào đóng cửa (để owner
, thisObject
và delegate
có thể bị tước trước serialization)
Nhưng tôi có vấn đề với serialization java bản địa cho tiết kiệm dữ liệu. Để gửi dữ liệu ngắn ngủi giữa các hệ thống, nó có thể tuyệt vời (nhưng thậm chí sau đó tôi sẽ xem xét protocol buffers hoặc thrift)
Xem xét điều gì sẽ xảy ra nếu bạn cần cập nhật trò chơi của mình? Nếu có lỗi trong ảnh hưởng poisoned
, thì mọi người dùng đã lưu với phần đóng bị lỗi độc hại trong tệp lưu của họ sẽ giữ lỗi đó cho đến khi nó bị tắt. Trong trò chơi nhiều người chơi, mọi người có thể thao túng các tệp trò chơi lưu của họ để tự cung cấp cho mình những quyền lực không mong muốn hoặc không mong muốn (vì chức năng cho bản thân quyền lực sẽ được lưu trữ trong tệp). Tôi có thể thấy thao tác một chất độc ảnh hưởng để nó thêm HP thay vì loại bỏ chúng có thể có lợi ;-)
Tóm lại, tôi đoán điều tôi đang nói là tôi sẽ viết một bảng ký tự, với ID cho những thứ đang ảnh hưởng đến người dùng, khoảng không quảng cáo, điểm số, v.v., sau đó kiểm tra và áp dụng các bao đóng khi tệp được đọc.
Nguồn
2012-03-11 09:32:39
Cảm ơn. Tôi đã thử với trình giải mã Java để xem Groovy thực hiện các bao đóng nội bộ như thế nào và bây giờ thấy không có gì sai với việc tuần tự hóa chúng. Chúng đơn giản là các lớp được tạo tự động với phương thức doCall và các tham chiếu được lưu trữ cho tất cả các biến bên ngoài được sử dụng trong phần đóng. Vấn đề duy nhất là họ luôn luôn mang một tham chiếu đến 'this' ngay cả khi nó không được sử dụng, nhưng như bạn đã nói có một công việc xung quanh có sẵn kể từ 1.8.5 – ramirami