게임 서버가 게임 출시 전에 클라이언트를 처리 할 수 ​​있는지 확인하는 방법은 무엇입니까?


13

우리는 멀티 플레이어를 지원하는 iOS 기반 게임을 개발하고 있습니다. 지금까지 모든 것이 실제로 좋아 보이지만 이제는 서버가 10000 개의 클라이언트를 처리 할 수 ​​있는지 확인하려고합니다. 서버가 그렇게 많은 트래픽을 견뎌 낼 수 있는지 어떻게 알 수 있습니까?

답변:


15

트래픽로드 테스트에는 많은 도구가 있지만 네트워크 트래픽은 방정식의 일부일 뿐이므로 프로세서 사용률과 지속적인 데이터베이스 쿼리는 다음과 같이 게임 서버에만 적용되는 다른 것들도 테스트해야합니다. 측정하고 싶은 중요한 요소로 즉시 떠오르는 다른 두 가지 요소 (게임 서버의 작동 방식에 대한 지식을 바탕으로 결정해야 할 다른 요소도있을 것임).

이렇게하는 가장 좋은 방법은 " 게임 플레이어 시뮬레이션 "클라이언트 프로그램을 작성하고 여러 컴퓨터에서 여러 인스턴스를 실행하는 것입니다. 단점은 이것이 많은 컴퓨터를 사용해야 할 수도 있지만 일부 지역 대학에는이를 실행할 수있는 큰 컴퓨터 실습실이있을 수 있다는 것입니다 (대학 교수는 실제로 궁금한 경향이 있기 때문에 교수는 테스트 결과에 관심이있을 수 있습니다) 좋은 연구).

클라이언트는 플레이어만큼 정교하지 않아도 될 수 있지만 다음과 같은 일을하는지 확인하고 싶을 수도 있습니다 (술에 취한 소프트웨어 개발자보다 약간 더 기능적 일 수 있다면 매우 지능적 일 필요는 없습니다). 정말 자신을 집으로 운전해서는 안됩니다. 따라서 캐릭터를 특별한 방법으로 표시하여 벽을 걷는 것과 같은 바보 같은 일을 할 수 있고 게임 내 판매자로부터 무작위로 선택된 상품을 구입할 수있는 무제한 예산이 있으며 끝이 없습니다. 탄약 보급품 등) :

  • 무작위로 무작위 채팅 텍스트 보내기
  • 전 세계 에서 임의의 방향으로 탐색 합니다 (그러나 주요 도시에 더 가까이있는 경향이 있습니다)
  • 다른 플레이어가 가까이있을 때 무작위로 무기를 발사하도록 무작위로 선택
  • 구매 / 상인에서 임의로 제품을 판매하고, 때때로 항목 덤프 세계를
  • 불에 불을 붙이는 (또는 다른 형태의 국소 파괴를 일으킴)
  • 야생 동물 무리를 화나게하고 뒤쫓아 다니는 바쁜 도시로 뛰어든 다음, 로그 아웃할지 여부를 임의로 결정합니다 (로그 아웃하도록 선택한 경우, 야생 동물이 마을의 다른 사람들을 공격하기 시작할 것입니까?)
  • 부상당한 선수를 치료하십시오
  • 복잡한 장소에서 무작위로 선택된 마법 주문을 설정하십시오.
  • 날 음식 요리, 날 재료 및 기타 재료 (예 : 채광) 등
  • ... 플레이어가 정기적으로 수행 할 수있는 다른 간단한 작업

한 번에 9,000 명의 플레이어가있을 것으로 예상되는 경우, 서버가 27,000 명의 시뮬레이션 된 바쁜 플레이어의로드를 처리 할 수있는 방법을 알 수 있도록이 숫자를 3 배 이상 테스트하십시오 (많은 플레이어가 유휴 상태, 특히 사회 유형).

또한 ( 이것은 매우 중요합니다. )이 작업을 수행하는 경우 일반 문자로 로그인하고 바보 같은 일을하는 모든 컴퓨터 플레이어의 비디오를 녹화하고 우리와 함께 그 비디오를 공유하십시오. 웃음 ( 게임에서 올바른 시나리오를 찾을 수 있다면 " 술취한 헛간 춤 "이이 영화에서 좋은 타이틀이 될 것이라고 생각합니다 )! ;-디


2
귀하의 답변에 대해 감사드립니다.이 시뮬레이션 플레이어를 사용하여 테스트해야하며 궁극적으로 클라우드 서비스 중 하나를 사용하여 클라이언트를 실행할 것이라고 생각합니다. 참고로 멀티 플레이어 게임이지만 플레이어는 세계를 탐색하고 서로를 사냥 할 수 있으므로 언급 한 작업은 샘플 클라이언트에서 거의 구현되지 않습니다! 같은 질문을 가진 다음 사람이 모든 것을 테스트하기 위해 인생 시뮬레이션 게임을 출시하기를 바랍니다!
Ali1S232

자, 게임에 적용되는 것을 테스트하십시오 (환영합니다!). 나는 당신의 게임 기능에 대해 전혀 몰랐기 때문에, 그것이 다뤄질 희망에 많은 가능성을 포함 시키려고 노력했습니다.
Randolf Richardson

일부 게임은 초기 베타 시험판으로 시작하지만 베타 단계에서 플레이어가 게임을 좋아하지 않는다고 판단한 다음 다시 시도하지 않기 때문에 어려운 결정이 될 수 있습니다. 다시 (문제가 해결되었지만).
랜돌프 리차드슨

2
-1, 비현실적인 답변. 여성 게임 개발자는 존재하지 않습니다. (Jks, +1은 테스트 결과를 시각적으로 공유하는 데 동의했습니다).
감속

3
핸드 헬드 콘솔의 MMO에 대해 정확히이 작업을 수행했다고 덧붙입니다. 시뮬레이션 된 플레이어는 서버가 스트레스에 어떻게 대처할 수 있는지 테스트하는 데있어 가장 좋은 방법이었습니다. 또한 비공개 베타 (약 500 명으로 제한)를 개최했으며, 베타 테스터의 행동에 대해 생성 된 통계를 사용하여 시뮬레이션 된 플레이어가 내가 관리 할 수있는 실제 플레이어처럼 행동하도록 조정했습니다. 베타가 끝난 후, 4 만 명의 시뮬레이트 된 플레이어를 느슨하게 설정하여 서버를 혼란스럽게 만들었습니다. 많은 신체 상해!
Trevor Powell

0

이것은 오래된 질문에 대한 답변입니다. 검색 엔진으로 여기에 오는 사람들에게 유용 할 수 있기를 바랍니다. Netgend 는 50,000 명의 VUser를 에뮬레이트 할 수있는 모든 성능 테스트 플랫폼을 보유하고 있으며 모든 유연한 클라이언트 에뮬레이션을 수행 할 수 있습니다.

특히 블로그를 참조하십시오

  • 간편한 네트워킹
  • 서버 응답에서 필드를 추출
  • 이진 데이터를 사용한 성능 테스트

메시지 처리는 http 메시지로 제한되지 않으며 모든 메시지에 적용됩니다.

도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.