Làm thế nào để / nên MMO xử lý ngắt kết nối trong PvP?


20

Trong MMO (thậm chí không nhất thiết phải là MMORPG) một số kỹ thuật để đối phó với người chơi bị ngắt kết nối ở giữa PvP là gì?

Cụ thể - làm thế nào để bạn tránh ảnh hưởng xấu đến những người bị ngắt kết nối do các vấn đề về mạng (hoặc thậm chí là ngoài đời thực), trong khi không ảnh hưởng xấu đến những người đang lôi kéo họ?

Và, quan trọng, làm thế nào để bạn đảm bảo rằng ngắt kết nối không thể được sử dụng như một phương pháp gian lận?

Câu trả lời:


15

Chúng tôi đã có vấn đề này với một số CCG trực tuyến mà tôi đã làm việc. Giải pháp tốt nhất tôi từng thấy:

1) Người chơi PHẢI kết nối với máy chủ, không trực tiếp với nhau và bạn KHÔNG BAO GIỜ chuyển địa chỉ IP của đối thủ trong dữ liệu bạn truyền đến người chơi. Điều này ngăn chặn các cuộc tấn công từ chối dịch vụ trong đó người chơi buộc đối thủ ngoại tuyến để giành chiến thắng.

2) Mất kết nối = bạn thua, đối thủ thắng. Chúng tôi phải cho rằng nếu bạn đánh rơi, đó là một lần giảm để tránh mất mát nhất định.

3) Ngắt kết nối cố gắng kết nối lại trong một khoảng thời gian, do đó, một trục trặc mạng nhỏ không buộc bạn phải thua mà không phải do lỗi của bạn. Lý tưởng nhất là thời gian đủ dài để cho phép ai đó kết nối lại nếu họ vô tình đá cáp, nhưng đủ ngắn để đối thủ không nản chí và ngủ thiếp đi trong khi chờ đợi. Tôi nghĩ rằng chúng tôi tìm thấy khoảng 45 đến 60 giây cảm thấy đúng.

4) Cho phép người chơi báo cáo đối thủ của họ. Đây là một sự bắt kịp cần thiết để ngăn chặn bất kỳ ai tìm thấy một số cách gây phiền nhiễu xung quanh chính sách của bạn. Giống như, có thể bị ngược đãi bằng lời nói đến nỗi đối thủ rơi xuống chỉ để ra khỏi đó, hoặc liên tục ngắt kết nối và kết nối lại để kéo dài thời gian trò chơi, hoặc ném đá để tránh thua lỗ, hoặc bất cứ điều gì. Bạn không thể dừng TẤT CẢ hành vi xấu, nhưng bạn có thể bao gồm một cơ chế trong trò chơi để báo cáo hành vi đó và sau đó để bộ phận hỗ trợ khách hàng của bạn xử lý phần còn lại.


13

MMORPG RuneScape nổi tiếng sử dụng bộ hẹn giờ 1 phút. Khi bạn ngắt kết nối, nhân vật của bạn ở lại thế giới trong một phút, dễ bị tấn công và những gì không.


1
Tương tự cho DAoC. Nó hoạt động rất tốt, vì nếu bạn không làm điều này, mọi người có thể ngắt kết nối để tránh đánh nhau. Đã từng có lệnh "Thoát khỏi máy tính để bàn" / qtd trong DAoC khiến mọi người bỏ cuộc ngay lập tức và nó đã bị xóa do điều này.
Chờ đợi Ólafur

8

Tôi đã phải giải quyết vấn đề này một lần trong một trò chơi đua xe trực tuyến nơi những người chơi thua cuộc thường sẽ tắt bảng điều khiển của họ để tránh mất mát xuất hiện trong hồ sơ của họ. Tuy nhiên, nó áp dụng rất tốt cho mọi tình huống PvP.

Giải pháp của tôi đã đi như thế này:

  1. Vào đầu trận đấu, một khi tất cả các cầu thủ đã tham gia và chơi sắp bắt đầu, hãy tính xem kết quả sẽ thế nào nếu người chơi của chúng tôi thua trận đấu. Trong trò chơi đua xe của chúng tôi, 'mất' có nghĩa là 'đứng ở vị trí cuối cùng' và kết quả thông thường sẽ là 'trừ N điểm từ thứ hạng người chơi'.

  2. Lưu kết quả vào một vị trí an toàn (Savegame, bảng xếp hạng, vùng dữ liệu trực tuyến, v.v.).

  3. Cùng với kết quả, lưu trữ cờ 'GameStarted'. Điều này chỉ có nghĩa là trò chơi đã bắt đầu. Chúng ta sẽ cần nó sau này.

  4. Khi trò chơi hoàn thành, hãy tính kết quả thực tế và áp dụng nó vào điểm số / chỉ số của người chơi. Bỏ đặt cờ 'GameStarted'. Đây là quá trình hoàn thành trò chơi bình thường.

  5. Tuy nhiên, nếu người chơi ngắt kết nối, rút ​​cáp hoặc tắt nguồn, cuối cùng họ sẽ quay lại menu trò chơi. Trong mã menu, chúng tôi kiểm tra cờ 'GameStarted'. Nếu được đặt, chúng tôi chắc chắn rằng chúng tôi đã phát hiện ra việc ngắt kết nối trong trò chơi từ trước đó. Sau đó chúng tôi có thể áp dụng kết quả được lưu trữ cho điểm / chỉ số của người chơi. Nó sẽ giống như khi người chơi thua trò chơi. Đó cũng là một ý tưởng tốt để đưa ra một cảnh báo thông báo cho người chơi về những gì đang xảy ra. Sau đó, một khi anh ta thấy rằng có những hậu quả cho việc ngắt kết nối giữa trò chơi, bạn sẽ thấy hành vi đó bắt đầu thay đổi.


Điều đó khá là xảo quyệt. Rõ ràng là nó không thể áp dụng tốt như nhau cho tất cả các loại trò chơi, nhưng khái niệm tính toán hậu quả tiềm tàng là một điều tốt đẹp.
Kylotan

1
Tuy nhiên, khá khắc nghiệt cho việc ngắt kết nối ngẫu nhiên có thể sử dụng một giải pháp trong khu vực đó.
Kzqai

5

Tôi nghĩ rằng cách duy nhất để thực hiện điều này sẽ là vấn đề cấu trúc trò chơi của bạn. Có hai cách để làm cho gian lận bớt ham muốn: trừng phạt hoặc khen thưởng. Vì vậy, nếu bạn không muốn hình phạt bất lợi, hãy nghĩ cách thưởng cho người chơi không bỏ cuộc.

Thay vì phần thưởng từ PvP là sự cướp bóc cơ thể của người bị chinh phục (điều này làm cho việc bỏ đi một điều rất tồi tệ) làm cho việc giành được một số phần thưởng như exp., Vàng, hoặc một thứ gì khác hoàn toàn (Điểm? Xếp hạng?). Nếu một trong những người chơi bị đá thì người chơi còn lại sẽ nhận được phần thưởng và người chơi bị đuổi không được gì nhưng không mất gì. Trừ khi đó là một hệ thống xếp hạng trong trường hợp người chơi rời đi có thể mất một số điểm xếp hạng.


Đó là một phân tích độc đáo, tôi thích nó.
Kzqai

Điều này có thể được khai thác bởi hai người chơi biết nhau. Họ có thể lặp lại điều này bao nhiêu lần tùy thích, vì người thua cuộc không bị phạt.
unor

5

Lineage II làm điều này như thế này:

  • Bạn không thể thoát khỏi ứng dụng khách trong khi chiến đấu - bất kỳ cuộc chiến nào cũng bắt đầu, bất kể bạn tấn công, bị tấn công hay chữa lành cho một đồng đội đang chiến đấu và bạn đang ở trong "tư thế chiến đấu", kéo dài trong 15 giây sau hành động cuối cùng như vậy được làm từ.
  • Nếu bạn ngắt kết nối bằng mọi cách hoặc trò chơi của bạn gặp sự cố, nhân vật của bạn sẽ ở lại trong trò chơi trong 15 giây trước khi biến mất. Nó thậm chí còn tiếp tục tự động tấn công bất cứ thứ gì nó đang tấn công, nhưng không sử dụng các kỹ năng - giống như khi bạn đi AFK.
  • một cách để ngắt kết nối ngay lập tức, tuy nhiên, bằng cách kết nối lại với cùng một tài khoản với khách hàng khác. Đây được coi là gian lận biên giới của cộng đồng khi được thực hiện trong PvP và một số công cụ gian lận cũng có tùy chọn để sử dụng nó, vì vậy nó không được sử dụng nhiều ở đó. Tuy nhiên, khi cắn quá nhiều để nhai PvE, một số người vẫn sử dụng thủ thuật này để tránh những cái chết không cần thiết (mặc dù có những vật phẩm trong trò chơi cho phép gần như giống nhau, cụ thể là "cuộn di chuyển trốn thoát").
  • Kết nối lại với một khu vực được gắn cờ PvP (ví dụ như mặt đất lâu đài trong một cuộc bao vây) và một số khu vực sử thi ông chủ không có bản năng cụ thể sẽ di chuyển nhân vật đến thị trấn gần nhất (khu vực an toàn). Do đó, việc ngắt kết nối ở đó để tránh "thua" mang đến một hình phạt cho đội của bạn, điều đó có nghĩa là nó bị ngăn cản mạnh mẽ bởi các quy tắc xã hội của trò chơi.

Cá nhân tôi cũng sẽ làm điều tương tự, chỉ cho phép người chơi xác định trước các hành động mà nhân vật của họ đang thực hiện khi ngắt kết nối (ở lại và chiến đấu, chạy đến vùng an toàn gần nhất để tránh aggro, sử dụng cuộn thoát thường xuyên, sử dụng cuộn cuộn may mắn thoát, ...) và để các nhân vật tồn tại trong thế giới trò chơi ngay cả khi người chơi không đăng nhập.


Tốt đẹp! Tôi thích nó! :)
Nhấp vào Ok

3

Người bị ngắt kết nối sẽ chết một khi anh ta bị đâm đủ, và người còn lại sẽ được ghi nhận cho vụ giết người. Bất cứ điều gì khoan dung hơn sẽ được khai thác.

Nói chung có một bộ đếm thời gian 1- 5 phút trước khi cơ thể bạn rời khỏi thế giới.


3

Không có cách nào để xác định nguyên nhân gây ra sự mất kết nối (mất điện? Tôi có giận dữ ném máy vào tường không?), Vì vậy bạn chỉ có thể cho rằng người dùng đang cố gắng (hoặc sẽ cố gắng) gian lận và khiến họ dễ bị tổn thương trong X phút.


3

Cách xử lý của EVE Online như sau:

  • Tàu bắt đầu tham gia cong vênh 15 giây sau khi ngắt kết nối. Nếu nó bị cong vênh, con tàu sẽ không biến mất. (Tàu của nhân vật của bạn sẽ bắt đầu "chạy trốn" sau 15 giây, trừ khi nó bị "kẹt" bởi người chơi khác)

  • Đồng hồ bấm giờ PVP (thời gian cho đến khi người chơi "chạy trốn" trong khi tham gia chiến đấu PvP) được đặt thành 3 phút. (Điều này là để chống lại một số bộ tính giờ khác).

  • Đồng hồ bấm giờ NPC duy trì ở mức 1 phút, nhưng tàu sẽ biến mất sau 15 giây trừ khi bị vênh bởi NPC.

  • Khi một con tàu bị khóa bởi người chơi, nó sẽ chuyển sang bộ hẹn giờ pvp (để truy cập nó bằng bộ hẹn giờ 1 phút nếu nó ngắt kết nối trong trường hợp không thể nhắm mục tiêu cho đến khi bộ hẹn giờ được đặt).



2

Nếu bạn có cách mô hình hóa các kiểu người chơi thông thường trong trận chiến, bạn có thể gửi chúng vào chế độ AI cho đến khi chúng kết nối lại hoặc trận chiến kết thúc tùy theo điều kiện nào đến trước. Nhưng đừng cho họ bất kỳ phần thưởng nào (exp, vật phẩm, v.v.) cho trận chiến trừ khi họ trở lại sau X lượng thời gian.


0

Tôi sẽ thực hiện một số loại trễ. Bạn có thể sử dụng cà rốt và cây gậy. Nhưng việc chọn sử dụng có thể dựa trên hồ sơ theo dõi (bạn cũng có thể phân tích kết nối của họ và "khả năng thắng" hiện tại và sử dụng điều đó.). Hy vọng bạn sẽ làm điều đó trực tiếp. Mô hình đơn giản:

  • Nếu tôi "xấu" và tôi DC tôi sẽ nhận được cây gậy. Tôi bây giờ xấu hơn.
  • Nếu tôi "xấu" và tôi hoàn thành tôi sẽ không nhận được cây gậy nhưng tôi cũng không nhận được phần thưởng. Tôi bây giờ gần hơn để được tốt.
  • Nếu tôi "tốt" và tôi DC tôi không nhận được cây gậy nhưng tôi cũng không nhận được phần thưởng. Bây giờ tôi gần hơn để trở nên xấu.
  • Nếu tôi tốt và hoàn thành, tôi nhận được phần thưởng. Tôi bây giờ tốt hơn.

Bạn có thể lạm dụng nó có. Nhưng làm như vậy có thể mất nhiều nỗ lực hơn là chỉ cắn viên đạn. (Nếu mất 2 DC là xấu chẳng hạn, về mặt kỹ thuật bạn có thể thoát khỏi một nửa số tiền thua lỗ của mình. Nhưng nó giảm nhẹ một số lạm dụng và trong trường hợp ít hơn những người chơi thông minh lạm dụng tất cả ).

Được cấp bằng cách sử dụng này có nghĩa là bảng điểm sẽ không tổng hợp tới 100%. Vì bạn có thể DC trong khi tốt và không ghi nhận một mất mát. Nhưng người chơi giỏi khác có thể ghi một chiến thắng. Ngoài ra, không tổng hợp tới 100% có nghĩa là 2 người chơi có thể hợp tác tắt trình phát DC để xếp chồng chiến thắng.

Vì vậy, không thể đánh lừa được, nhưng thêm phân tích Bayesian về kết nối gamestate + có thể có thể phát hiện sự buồn cười và làm cho sơ đồ này chống đạn. (Bạn có thể đánh bại phân tích Bayes nhưng con người không giỏi làm điều này và toán học nằm ngoài tầm với của hầu hết mọi người, chưa kể đầu tư thời gian để "đánh bại" một cuộc chiến để vượt qua DC là ổn).


Hừm. Tôi có thể thấy một vấn đề không thể chỉnh sửa ... Nếu chiến thắng "xấu" có thể phàn nàn về việc không nhận được "chiến thắng" của họ trừ khi bạn thực hiện kế hoạch rất công khai. Mà tất nhiên mời can thiệp. Giải pháp có thể: Ẩn phần thưởng cho đến khi kết thúc "mùa giải", điều này ít nhất củng cố vấn đề ... nhưng có thể dẫn đến những người chơi "xấu" rơi vào "đầu tư" lãng phí thời gian. Thắng-thắng?
Đen
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.