Cần trợ giúp để chọn cách tiếp cận / nền tảng mạng phù hợp cho RTS


7

Tôi đã suy nghĩ một thời gian về việc tạo ra một trò chơi 2D RTS trực tuyến. (2-6 người chơi trong một trận đấu, tối đa 50-60 đơn vị, không có AI). Điều quan trọng ở đây là tôi muốn trò chơi có thể chơi được trên trình duyệt, vì vậy nó sẽ phải là flash hoặc java applet, cả hai đều sử dụng socket TCP. Lúc đầu, tôi hoàn toàn tập trung vào flash vì khả năng tiếp cận thị trường và khả năng tiếp cận cao hơn. Tuy nhiên, sau khi xem xét các phương pháp kết nối mạng khác nhau, tôi không thể đưa ra lựa chọn.

Tôi thực sự thích cách tiếp cận mô phỏng bước khóa trong đó máy chủ và mọi khách hàng đang chạy cùng một mô phỏng, cho đến khi tôi nhận ra rằng sẽ khó khăn như địa ngục (nếu không thể) thực hiện chính xác cùng một logic trong hai ngôn ngữ khác nhau, một trong hai ngôn ngữ là hành động. Đây là nơi java xuất hiện. Với java client và máy chủ có thể chia sẻ mã liên quan đến mô phỏng - điều đó cũng có thể cắt giảm một nửa thời gian phát triển.

Nhưng sau đó, có một cách tiếp cận khác, trong đó khách hàng cố gắng mô phỏng (hay đúng hơn là ngoại suy) trạng thái trò chơi một cách chính xác càng lâu càng tốt, nhưng họ không phải làm đúng - đến một lúc nào đó họ sẽ nhận được toàn bộ trạng thái chụp nhanh Điều chỉnh phù hợp. Flash trông giống như một lựa chọn khả thi một lần nữa, nhưng vẫn, mô phỏng bước khóa có vẻ đơn giản hơn nhiều, vì không có phần "điều chỉnh".

Vậy giả định của tôi có đúng không? Bạn muốn đề nghị gì?

Câu trả lời:


5

Mọi RTS mà tôi biết đều sử dụng mô phỏng bước khóa cho mô hình mạng của nó, ít nhiều vì những lý do tương tự:

Với bước khóa, bạn chỉ cần trao đổi các đầu vào giúp giảm đáng kể lượng băng thông cần thiết. Nếu bạn sử dụng phương pháp nội suy / ngoại suy, với 60 đơn vị x 6 người chơi có giá trị trạng thái x 6 người chơi gửi đến - bất cứ ai đang lưu trữ sẽ cần rất nhiều băng thông ngược dòng.

Hơn nữa, với bước khóa, bạn đảm bảo rằng mọi người đều thấy chính xác những điều tương tự xảy ra, điều rất quan trọng để một RTS cảm thấy công bằng và có chiến lược. Trong trường hợp ngoại suy bạn có thể thấy trên màn hình của mình rằng bạn đang chiến thắng một trận chiến chỉ để tìm thấy khi nhận được một ảnh chụp mới mà bạn thực sự đã thua. Và trường hợp xấu nhất là bạn có thể thắng trận chiến đó nếu chỉ bạn biết mình thua trận.

Một lợi ích cuối cùng, bước khóa làm cho việc gian lận trở nên khó khăn hơn vì bất cứ điều gì mờ ám bạn làm cục bộ sẽ gây ra sự không đồng bộ. Bạn sẽ phải gian lận mô phỏng của mọi người không chỉ của riêng bạn.


Câu hỏi siêu cũ, nhưng tôi phải không đồng ý với "bước khóa khiến việc gian lận trở nên khó khăn hơn". Mặc dù hơi đúng theo ví dụ của bạn. Nó mở ra những cách gian lận khác. Tưởng tượng bạn có FOW, nhưng vì bạn cần MỌI đầu vào từ người chơi (để giữ đồng bộ với những người chơi khác), bạn có thể dễ dàng tìm hiểu về FOW vì về mặt kỹ thuật bạn có tất cả thông tin bạn cần. Điều này đúng cho bất kỳ sự xáo trộn thông tin nào không chỉ FOW.
Bão Muller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.