Tôi hiện đang trong giai đoạn lập kế hoạch cho trò chơi 2D dành cho thiết bị di động mà tôi sẽ tạo trong C++ bằng cocos2d-x. Trò chơi sẽ được bật và mỗi lượt sẽ có một giai đoạn trong đó mô phỏng vật lý sẽ diễn ra. Nó cũng sẽ là nền tảng chéo.Bật mạng vật lý nhiều người dùng theo số
Tôi mới sử dụng mạng nhiều người và tự hỏi cách tốt nhất để đồng bộ hóa vật lý là vì Box2d không hoạt động giống nhau trên các thiết bị khác nhau.
Mô phỏng không phải xảy ra đồng thời trên mỗi thiết bị nhưng tôi cần kết quả chính xác như nhau. Lý tưởng nhất là người chơi sẽ có thể chứng kiến, trên thiết bị của chính họ, cùng một mô phỏng vật lý (tức là chuyển động phóng, nảy, va chạm) và kết quả xảy ra trong khi đối thủ của họ biến bất cứ khi nào họ quyết định bắt đầu lượt của mình.
Cách tốt nhất để làm điều này là gì? Từ nghiên cứu của tôi, tôi đã đưa ra một vài giải pháp. Tôi có nên viết một số mã máy chủ mà tôi sẽ đưa đầu vào của người dùng và xử lý tất cả các mô phỏng vật lý, sau đó gửi kết quả cho mỗi thiết bị? hoặc là có một cách tôi có thể xử lý các mô phỏng trên một thiết bị và gửi tất cả các thông tin khác?
Ngoài ra chính xác cách nào một người gửi mọi thứ xảy ra trong quá trình mô phỏng qua mạng vì tôi không thể chạy mô phỏng trên mỗi thiết bị và được đảm bảo cùng một kết quả? Tôi chỉ cần cập nhật các máy chủ (hoặc thiết bị) với thông tin về những gì xảy ra trong mỗi vài TimeSteps?
Tôi cũng sẽ xem xét triển khai phát hiện vật lý/va chạm của riêng mình.