Thủ thuật trong cơ chế trò chơi để tránh xử lý bù mạng?


20

Thực hiện bù mạng chậm là khó, làm sao tránh được?

Có lẽ bạn có thể sử dụng các thủ thuật và xây dựng cơ chế trò chơi theo cách mà độ trễ sẽ được coi là không quan trọng hoặc thậm chí là một phần tự nhiên của trò chơi?

Những kỹ thuật đó là gì và có bất kỳ trò chơi hiện có nào (MMORPG, Strategies, ...) sử dụng các kỹ thuật đó không?

CẬP NHẬT:

Các trò chơi theo lượt không yêu cầu bù độ trễ, nhưng sẽ rất thú vị khi xem các cách tiếp cận trong thời gian thực (hoặc chỉ là một ấn tượng về thời gian thực, phần quan trọng - người dùng không nên bị chặn và buộc phải chờ).

Lý do chính để tôi tránh bồi thường độ trễ là sự đơn giản.



6
Nếu bạn đang tìm cách xây dựng một trò chơi trong đó độ trễ không phải là vấn đề; xem xét việc xây dựng một cái gì đó dựa theo lượt trong đó một vài giây là chấp nhận được.
Vaughan Hilts

3
Liên kết Valve đó là tất cả về những cách khá phức tạp trong đó việc bù độ trễ mạng được thực hiện - vì vậy, nó trái ngược với những gì câu hỏi hỏi về.
Kylotan

@JohnMcDonald Yep, tôi biết về bài viết đó từ Valve, và như đã đề cập - nó trái ngược với những gì tôi đang hỏi :).
Alexey Petrushin

Bạn có thể muốn có một cái nhìn tại GGPO cũng như: ggpo.net
Đúng đắn

Câu trả lời:


16

Khách hàng thường thực hiện một số loại phản hồi để cho người chơi biết ngay rằng hành động đã chọn của họ đã được đăng ký, ví dụ:

  • giao diện âm thanh (ví dụ: nhấp vào nút)
  • âm thanh trong thế giới (ví dụ: một nhân vật nói, "Cùng một lúc, chỉ huy")
  • hoạt hình (ví dụ: bắt đầu vung kiếm)

Những điều này có thể diễn ra trong khi thông tin đang truyền đến máy chủ để người chơi không nhận ra rằng hành động của họ chưa bắt đầu. Miễn là máy chủ trả lời kịp thời và hành động sẽ bắt đầu sớm, người chơi có thể không nhận thấy sự chậm trễ.

Các thủ thuật này hoạt động trong các trò chơi mà đầu vào của người chơi khá ít khi xuất hiện và do đó lượng thời gian bạn dành để chờ đầu vào có hiệu lực là một tỷ lệ tương đối nhỏ trong tổng thời gian chơi. Do đó, bạn sẽ muốn tìm cách cấu trúc trò chơi để người chơi tạo ra ít đầu vào hơn. Điều này có thể có nghĩa là làm cho hành động của người chơi trở nên trừu tượng hơn và khiến trò chơi thực hiện hành vi cấp thấp. Ví dụ:

  • thay thế cơ học lái với cơ học đường
  • thay thế cơ học nhắm bằng cơ học lựa chọn mục tiêu
  • thay thế hướng dẫn chiến đấu từng vòng bằng các kế hoạch chiến thuật hoặc chiến lược hơn
  • thay thế thời gian thực / chơi trò chơi liên tục bằng các hệ thống rời rạc / theo lượt

1
Cảm ơn, Bạn chính thức hóa những gì tôi đã hỏi về - sử dụng các đầu vào không thường xuyên, bị trì hoãn từ người chơi. Sẽ rất thú vị khi xem các trò chơi thực tế sử dụng điều đó.
Alexey Petrushin

2
Hàng trăm trò chơi sử dụng những thứ như thế này theo một cách nào đó, nhưng rất có thể nó đã được thực hiện vì những lý do khác với độ trễ che giấu một tác dụng phụ có lợi.
Kylotan

7

Suy nghĩ ngẫu nhiên:

  1. gian lận: sử dụng tên lửa . Tên lửa phát nổ trong một bán kính, che giấu bất kỳ sự kỳ lạ.
  2. gian lận: xác định trước kết quả và buộc điều kiện xảy ra một cách trực quan
  3. cheat: các cuộc tấn công mất thời gian , ẩn độ trễ trong atk + hoạt hình + gián đoạn kết quả
  4. cheat: ngắt kết nối phản hồi cục bộ khỏi các công cụ mạng
  5. cheat: rất nhiều VFX hoặc hoạt động màn hình bao gồm bất kỳ sự kỳ lạ.
  6. sử dụng thiết kế phản ứng hành động đòi hỏi phải giải quyết trước khi tiếp tục

Vì vậy, yeah, gian lận rất nhiều.


4

Câu trả lời khá đơn giản - chỉ cần xây dựng các trò chơi không có các phần quan trọng về thời gian. Bạn đang tìm cách tránh thực hiện các loại nội suy này vì một lý do cụ thể mà tôi thực hiện, điều đó có nghĩa là bạn không quan tâm đến trò chơi co giật và nhanh. Điều này là hoàn toàn có thể buộc tội cho rất nhiều trò chơi, bao gồm Civilization (là một trò chơi chiến lược). Tuy nhiên, hãy hiểu điều này KHÔNG được chấp nhận đối với một trò chơi chiến lược THỜI GIAN mà bạn cần truyền nhiều dữ liệu qua mạng theo thời gian thay đổi. Nếu bạn muốn thiết kế một trò chơi xung quanh một mạng có độ trễ rất cao, hãy xem xét những điều sau:

  1. Xây dựng trò chơi theo lượt. Trong các loại trò chơi này, đầu vào thời gian thực của trạng thái là không cần thiết và người chơi khác có thể chỉ cần đẩy trạng thái của trò chơi vào máy khách của họ khi đến lượt. Điều này giúp giảm áp lực lên mạng và cho phép độ trễ tăng lên thậm chí vài giây nếu muốn. Civilization là một trò chơi dựa trên nền tảng rất phổ biến và nằm trong chiến lược.
  2. Giữ cho người chơi khác quyết định tác động đến mức tối thiểu. Nếu trò chơi của bạn mang tính chiến lược và không thể chơi theo lượt, hãy xem xét giảm tác động của các gói bị trì hoãn. Khách hàng có thể thực hiện hầu hết các mô phỏng không? Một ví dụ là một trò chơi chiến lược được chơi một mình trong một lúc và sau đó, 16 phút, được mô phỏng với một người chơi khác (có lẽ là một trò chơi chiến đấu trong đó người chơi gửi quân mỗi khoảng x và báo cáo lại mỗi khoảng thời gian y.

Tôi hy vọng điều này sẽ giúp ít nhất một chút; mà không biết ý tưởng trò chơi chính xác của bạn thì thật khó. Tôi giả sử bạn có lý do để muốn tạo trò chơi của mình theo mô hình như vậy (đơn giản, tiết kiệm băng thông, giảm độ phức tạp của mạng)


4

Bạn cũng có thể biến lag thành một phần trong lối chơi của mình vì mục đích "hiện thực". Giả sử người chơi của bạn có ý định điều khiển một số robot từ xa, bạn có thể buộc độ trễ tối thiểu là 500ms hoặc 1 giây (bạn phải thực hiện một số hệ thống đệm độ trễ động).


Đây là một twist tốt đẹp
o0 '.

0

Đó cũng là một mẹo hay để đơn giản là che giấu hành động của người chơi. Rất nhiều game FPS làm chính xác điều này. Chúng không hiển thị bất kỳ hình ảnh nào của hầu hết các viên đạn chỉ phát ra âm thanh và bạn nhận được kết quả dưới dạng sát thương gây ra cho người chơi.

Tôi đã chơi một số game FPS trong đó vũ khí có độ chính xác cao (bắn tỉa và như vậy) có hiệu ứng hình ảnh rất rõ ràng và bạn thực sự có thể thấy rằng người chơi khác đã bắn phía sau bạn, nhưng vì bị bồi thường, bạn đã bị giết.

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.