Tôi đã mã hóa một ứng dụng bomberman sử dụng kết nối ngang hàng trò chơi để kết nối ngang hàng. Vấn đề là sau một thời gian trò chơi không được đồng bộ nữa.Bộ trò chơi Peer to Peer
Tôi đã xem mã mẫu cho GKTanks và sử dụng mô hình của họ. Không có mối quan hệ máy khách/máy chủ giữa các đồng nghiệp nên tôi không sử dụng một trong game của mình. Cả hai đồng nghiệp duy trì một trò chơi mà họ cập nhật dựa trên dữ liệu nhận được.
Tôi có một NSTimer được sử dụng để chạy gameloop ở mỗi khung. Các NSTimers không đồng bộ nên đôi khi các game thủ trở nên khác nhau cũ: người chơi nhận được một sức mạnh tại cùng một khoảng thời gian và cả hai đều có được sức mạnh vì phải mất một thời gian để gửi dữ liệu.
Tôi sẽ đánh giá cao bất kỳ ý tưởng nào về cách làm cho ứng dụng hoạt động. Tôi đang nghĩ đến việc viết lại mã để sử dụng máy khách-khách hàng nhưng tôi không chắc đó có phải là ý tưởng hay không ... chưa
Cảm ơn bạn!
EDIT: Tôi đã thay đổi mã sao cho trình phát ngẫu nhiên được chọn làm máy chủ. Mỗi lần người chơi đặt một quả bom, anh ta hỏi máy chủ nơi đặt nó. Máy chủ trả về vị trí của người chơi (như đã thấy trên máy chủ) và sau đó cho người chơi biết nơi đặt bom.
Để tăng sức mạnh, máy chủ sẽ kiểm tra xem người chơi có nhận được sức mạnh không và liệu anh ta có gửi gói tin thông báo cho anh ta không.
Một vấn đề khác đã xuất hiện ngay bây giờ. Độ trễ giữa các thiết bị cao (Tôi đang sử dụng kết nối bluetooth). Phải mất khoảng 0,2 giây để đặt một quả bom sau khi khách hàng khai thác nút để đặt nó.
Tôi đang gửi tất cả dữ liệu một cách đáng tin cậy. Tôi làm đúng chứ hả?