PvP 도중 MMO가 어떻게 연결을 끊어야합니까?


20

MMO (MMORPG는 아니더라도)에서 PvP 도중에 플레이어 연결을 끊는 데 도움이되는 기술은 무엇입니까?

특히, 네트워크 (또는 실제 생활) 문제로 인해 연결이 끊어진 사람들에게 부정적인 영향을 미치면서 참여하는 사람들에게는 부정적인 영향을주지 않는 방법은 무엇입니까?

그리고 중요한 점은 연결 해제를 속이는 방법으로 사용할 수 없도록 어떻게 보장합니까?

답변:


15

내가 작업 한 일부 온라인 CCG에서이 문제가 발생했습니다. 내가 본 최고의 솔루션 :

1) 플레이어는 서로 직접 연결하지 말고 서버에 직접 연결해야하며, 플레이어에게 스트리밍하는 데이터에서 상대방의 IP 주소를 절대로 전달해서는 안됩니다. 이를 통해 플레이어가 상대방을 승리로이기려면 서비스 거부 공격이 방지됩니다.

2) 연결 끊김 = 잃으면 상대가 이깁니다. 우리는 당신이 떨어 졌다면 특정 손실을 피하기 위해 떨어 졌다고 가정해야합니다.

3) 연결 끊기는 일정 시간 동안 다시 연결을 시도하므로 약간의 순 딸꾹질로 인해 자신의 잘못이 없어지지 않습니다. 이상적으로, 누군가 실수로 케이블을 찼을 때 다시 연결할 수있을만큼 시간이 길지만 상대방이 기다리는 동안 좌절하지 않고 잠들지 않을 정도로 짧습니다. 나는 우리가 약 45 초에서 60 초를 느꼈다고 생각했다.

4) 플레이어가 상대방을보고하도록 허용합니다. 이것은 귀하의 정책에 대해 성가신 방법을 찾는 사람을 막기 위해 필요한 포괄입니다. 예를 들어, 언어 적으로 너무 학대하여 상대방이 그냥 나가기 위해 떨어 뜨리거나, 게임 길이를 늘리기 위해 지속적으로 연결을 끊었다가 다시 연결하거나 손실을 피하기 위해 벽으로 막는 것 등. 모든 나쁜 행동을 막을 수는 없지만 게임 내 메커니즘을 포함시켜이를보고 한 다음 고객 지원 부서가 나머지를 처리하도록 할 수 있습니다.


13

인기있는 MMORPG RuneScape 는 1 분 타이머를 사용합니다. 연결을 끊으면 캐릭터는 전 세계에 1 분 동안 남아 공격에 취약합니다.


1
DAoC와 동일합니다. 당신이 이것을하지 않으면 사람들은 싸움을 피하기 위해 연결을 끊을 수 있기 때문에 훌륭하게 작동합니다. DAoC에는 "Quit To Desktop"/ qtd 명령이있어서 사람들을 즉시 종료 시켰으며, 이로 인해 제거되었습니다.
Ólafur Waage

8

온라인 레이싱 게임에서 한 번이 문제를 해결해야했습니다. 그러나 모든 PvP 상황에 매우 적합합니다.

내 솔루션은 다음과 같습니다.

  1. 경기가 시작될 때 모든 선수가 참가하고 경기가 시작되자 플레이어가 경기에서 패하면 결과를 계산합니다. 레이싱 게임에서 '잃어버린'은 '마지막으로왔다'는 뜻이며 일반적인 결과는 '플레이어 순위에서 마이너스 N 포인트'입니다.

  2. 안전한 장소 (저장 게임, 리더 보드, 온라인 데이터 영역 등)에 결과를 저장하십시오.

  3. 결과와 함께 'GameStarted'플래그를 저장하십시오. 이것은 게임이 시작되었음을 나타냅니다. 나중에 필요할 것입니다.

  4. 게임이 완료되면 실제 결과를 계산하여 플레이어 점수 / 통계에 적용하십시오. 'GameStarted'플래그를 설정 해제하십시오. 이것은 정상적인 게임 완료 프로세스입니다.

  5. 그러나 플레이어가 연결을 끊거나 케이블을 뽑거나 전원을 끄면 게임 메뉴로 돌아갑니다. 메뉴 코드에서 'GameStarted'플래그를 확인합니다. 설정된 경우, 게임 내 단절이 감지 된 것입니다. 그런 다음 저장된 결과를 플레이어 점수 / 통계에 적용 할 수 있습니다. 플레이어가 게임을 잃은 것과 동일합니다. 또한 플레이어에게 무슨 일이 일어나고 있는지 알려주는 경고를하는 것이 좋습니다. 그런 다음 게임 중간에 연결을 끊은 결과가 발생하면 동작이 변경되기 시작한다는 것을 알 수 있습니다.


꽤 교활합니다. 분명히 모든 게임 유형에 똑같이 적용 할 수는 없지만 잠재적 결과를 미리 계산하는 개념은 좋은 것입니다.
Kylotan

1
그러나 실수로 연결이 끊어지면 매우 가혹하여 해당 영역에서 솔루션을 사용할 수 있습니다.
Kzqai

5

나는 이것을 풀 수있는 유일한 방법은 게임 구조의 문제라고 생각합니다. 부정 행위를 덜 바람직하게 만드는 두 가지 방법이 있습니다 : 처벌 또는 보상. 따라서 당신이 불리한 형벌을 원하지 않는다면, 떨어지지 않은 플레이어에게 보상하는 방법을 생각하십시오.

PvP의 보상 대신 정복자의 몸의 전리품 (매우 나쁜 것을 떨어 뜨림)은 exp., gold 또는 다른 것과 같은 보상을 수여합니다 (Points? Ranking?). 플레이어 중 하나가 킥오프되면 나머지 플레이어가 보상을 받고 킥오프 한 플레이어는 아무것도 얻지 못하지만 아무것도 잃지 않습니다. 순위 시스템이 아닌 경우 플레이어가 떠나면 일부 순위 점수가 손실 될 수 있습니다.


그것은 독특한 분석입니다, 나는 그것을 좋아합니다.
Kzqai

서로를 아는 두 명의 플레이어가이를 악용 할 수 있습니다. 패자는 벌칙을받지 않기 때문에 원하는만큼 반복 할 수 있습니다.
unor

5

리니지 II는 다음과 같이합니다.

  • 당신은 싸움 중에 게임 클라이언트를 종료 할 수 없습니다-당신이 싸우는 팀원을 공격하거나, 공격하거나 치유했는지 여부에 관계없이 모든 전투가 시작됩니다. 했다.
  • 어쨌든 연결을 끊거나 게임이 중단되면 캐릭터가 사라지기 전에 15 초 동안 게임에 남아 있습니다. AFK를 사용했을 때와 마찬가지로 공격하고 있던 기술을 사용하지 않고 자동 공격을 계속합니다.
  • 입니다 다른 클라이언트와 동일한 계정에 다시 연결에 의해, 그러나 즉시 해제 할 수있는 방법은. 이것은 PvP에서 할 때 커뮤니티가 경계선 속임수로 간주하며 일부 치트 도구에는이 옵션을 사용할 수 있으므로 많이 사용되지 않습니다. 그러나 PvE에서 씹기에는 너무 많은 물기를 할 때 일부 사람들은 불필요한 사망을 피하기 위해 여전히이 속임수를 사용합니다 (게임 내 아이템은 거의 동일하게 허용됩니다.
  • PvP- 플래그 된 구역 (예 : 공 성기 동안 성지)과 일부 특정 비 인스턴스 서사시 보스 지역에 다시 연결하면 캐릭터가 가장 가까운 마을 (안전 구역)로 이동합니다. 따라서 "손실"을 피하기 위해 연결을 끊으면 팀에 불이익이 가해지며 이는 게임의 사회적 규범에 의해 강력히 권장되지 않습니다.

개인적으로, 나는 비슷하게 할 것입니다. 플레이어가 캐릭터의 단절에 대해 취한 행동을 미리 정의 할 수있게하십시오 (숙박과 싸움, 민첩을 피하는 가장 가까운 안전 지대를 향해 달려 나가십시오. 플레이어가 로그인하지 않은 경우에도 게임 세계에서 캐릭터를 유지합니다.


좋은! 나는 그것을 좋아한다! :)
클릭 Ok Ok

3

연결을 끊은 사람은 찔리면 죽고 다른 사람은 죽임을 당합니다. 더 관대 한 것은 착취 될 것입니다.

일반적으로 몸이 세상을 떠나기 전에 1 ~ 5 분의 타이머가 있습니다.


3

연결이 끊어진 원인을 파악할 수있는 방법은 없습니다 (전원이 끊어 졌습니까? 벽에 기계를 던지나요?). X 분 동안.


3

EVE Online에서이를 처리하는 방법은 다음과 같습니다.

  • 연결 해제 후 15 초 후에 선박이 휘어지기 시작합니다. 뒤틀린 경우 선박은 뒤 틀리지 않습니다. (다른 플레이어가 함정에 빠지지 않는 한, 캐릭터의 함선은 15 초 후에 도망 가기 시작합니다)

  • PVP 타이머 (PvP 전투 중에 플레이어가 도망 갈 때까지의 시간)는 3 분으로 설정됩니다. (이는 여러 다른 타이머에 대응하기위한 것입니다).

  • NPC 타이머는 1 분을 유지하지만 NPC가 뒤틀린 경우를 제외하고 15 초 후에 배가 날아갑니다.

  • 배가 플레이어에 의해 목표물을 잠그면, pvp 타이머로 전환해야합니다 (타이머가 설정 될 때까지 목표물을 지정할 수없는 상황에서 연결이 끊어지면 1 분 타이머를 사용하여 반박해야합니다).



2

전투에서 플레이어의 일반적인 패턴을 모델링하는 방법이 있다면 다시 연결하거나 전투 중 가장 먼저 일어날 때까지 AI 모드로 보낼 수 있습니다. 그러나 X 시간 안에 돌아 오지 않는 한 전투에 대한 보상 (특급, 아이템 등)을주지 마십시오.


0

나는 일종의 히스테리시스를 구현할 것입니다. 당근과 스틱을 사용할 수 있습니다. 그러나 사용할 레코드를 선택하는 것은 트랙 레코드를 기반으로 할 수 있습니다 (연결과 현재 "성능"에 대한 분석을 수행하고 사용할 수도 있습니다). 희망적으로 직접 대하는 방법입니다. 간단한 모델 :

  • 내가 "나쁘고"DC라면 나는 막대기를 얻는다. 나는 지금 더 나쁘다.
  • 내가 "나쁘고"완성되면 나는 지팡이를 얻지 못하지만 보상도 얻지 못한다. 나는 이제 선한 것에 더 가깝습니다.
  • 내가 "좋다"고 DC라면, 나는 지팡이를 얻지 못하지만 보상도 얻지 못합니다. 나는 이제 더 나쁘게된다.
  • 내가 좋고 완전하면 보상을받습니다. 나는 지금 더 좋다.

당신은 그것을 남용 할 수 있습니다. 그러나 그렇게하는 것은 총알을 깨 물는 것보다 더 많은 노력이 필요할 수 있습니다. (예를 들어 DC 2 개가 나쁘면 기술적으로 손실의 절반을 제거 할 수 있습니다. 그러나 일부 남용을 완화 하고 영리한 플레이어보다 적은 남용의 경우에는 남용을 모두 줄입니다 ).

이것을 사용하면 점수 판이 100 %가되지 않습니다. DC는 양호하지만 손실은 기록하지 않기 때문에 가능합니다. 그러나 다른 좋은 선수는 승리를 기록 할 수 있습니다. 또한 100 %로 합산되지 않으면 2 명의 플레이어가 협력하여 DC 플레이어를 끄고 승리를 쌓을 수 있습니다.

따라서 완벽하지는 않지만 gamestate + connection에 대한 베이지안 분석을 추가하면 펑키 니스를 감지하고이 체계를 방탄으로 만들 수 있습니다. (베이 즈 분석을 물리 칠 수는 있지만 인간은 이것을 잘하지 못하며 수학은 대부분의 사람들에게 도달하지 못합니다. DC와의 싸움을 "프라이밍"하는 데는 시간 투자는 말할 것도 없습니다.)


흠. 수정할 수없는 문제가 하나 있습니다 ... 만약 "나쁜"승리가 "공식"을 얻지 못하면 불만을 제기 할 수 있습니다. 어느 쪽이 방해가됩니까? 가능한 해결 방법 : "시즌"이 끝날 때까지 보상을 숨겨서 문제를 해결하십시오. 그러나 "나쁜"플레이어는 낭비 된 시간 "투자"에서 떨어질 수 있습니다. 윈윈?
Black
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.