Như đã đề cập, điều này là không thể, vì vậy tôi sẽ thử một cách tiếp cận khác:
Nếu bạn không có máy chủ chuyên dụng, hãy chọn một khách hàng tham gia để trở thành máy chủ lưu trữ (điều này có thể được chuyển nếu có nhu cầu).
Giờ đây, máy chủ sẽ thực hiện tất cả logic trò chơi quan trọng, như phát hiện lần truy cập, điều khiển AI, xử lý kho, v.v. cũng như theo dõi thời gian (tức là chỉ định thời gian trò chơi).
Các khách hàng khác sẽ chỉ cố gắng đồng bộ hóa với máy chủ, cố gắng ước tính hoặc xấp xỉ giá trị mong đợi. Nếu độ trễ tăng hoặc mất gói, mọi thứ có thể trở nên khó khăn, nhưng việc bắt kịp, về cơ bản chỉ là chờ đợi bản cập nhật tiếp theo.
Hầu hết các trò chơi (đặc biệt là FPS) che giấu sự thật này bằng cách thực hiện tính toán cục bộ của riêng họ cho chuyển động của chính người chơi, các phát bắn, v.v. để tránh trò chơi cảm thấy bị lag. Mọi thứ vẫn được sửa dựa trên dữ liệu máy chủ. Điều này có thể dẫn đến một số nhầm lẫn, ví dụ như bạn thấy mình bắn kẻ thù, nhưng cùng lúc bạn chết (không có kẻ địch bị bắn trúng), nhưng nó vẫn là một cách tiếp cận tốt hơn nhiều so với đồng bộ hóa hoàn toàn.
Nếu bạn vẫn khăng khăng giữ mọi thứ đồng bộ, có lẽ bạn muốn tạo một loại bộ đếm bước hoặc khung, vì vậy tất cả khách hàng chỉ xử lý một bước logic, sau đó đồng bộ hóa dữ liệu của họ, v.v. Hãy nhớ rằng đây có thể là cả băng thông chuyên sâu cũng như độ trễ, vì vậy tôi không khuyên bạn nên làm điều đó trừ khi bạn có nhiều dữ liệu khác và lối chơi của bạn dựa trên lượt (ví dụ: trò chơi theo phong cách Pháo binh / Giun).