From Content for Next Generation Games by Chris Wells
김항기 시나리오 기반 온라인 게임 서버 부하 테스트 기술
1. 시나리오 기반 온라인 게임 서버 부하 테스트 기술
Electronics and Telecommunications Research Institute
2010. 9. 14.
ETRI 콘텐츠연구본부 스마트게임연구팀 김항기
2. 온라인게임 서버테스트 기술
Table of Contents
INDEX 1. 서버부하테스트 기술
2. 온라인게임 QA 기술
3. 결론
Electronics and Telecommunications Research Institute
3. ETRI 서버 부하테스트 기술
VENUS BLUE
서버 부하테스트 기술 (VENUS BLUE)
Electronics and Telecommunications Research Institute
4. ETRI 서버 부하테스트 기술
온라인 게임 QA 동향
온라인 게임 상용화시 QA 테스트에 소요되는 기간
• 온라인 게임 개발 시 QA 테스트에 소요된 기갂 (클로즈드 베타 이후 추정)
- 월드 오브 워크래프트 : 클로즈 베타 테스트 개시 이후 10개월
- 리니지 II : 클로즈 베타 테스트 개시 이후 10개월 (개발 기갂 3녂, 28% 소요)
- 아이온 : 클로즈 베타 테스트 개시 이후 13개월 (개발 기갂 4녂, 27% 소요)
젂체 게임 개발 공정의 25% 이상을 차지하며, 게임의 품질을 좌우하는 중요한 과정임
* 헬게이트 런던의 경우, 서버 다운으로 인한 손실 금액이 170억원으로 추정
리니지 II 월드오브워크래프트 헬게이트 런던 아이온
2003/10/01 : 상용화 2005/01/18 : 상용화 2008/02/22 : 상용화 2008/11/25 : 상용화
2002/11/30 : 클로즈 베타 2004/03/01 : 클로즈 베타 2007/07/01 : 프렌즈 테스트 2007/10/25 : 클로즈 베타
테스트기간 : 10개월 테스트기간 : 10개월 테스트기간 : 8개월 테스트기간 : 13개월
<4/53> Electronics and Telecommunications Research Institute
5. 온라인게임 QA 기술
EasyQA
온라인게임 QA 기술
(EasyQA)
Electronics and Telecommunications Research Institute
6. 온라인게임 QA 기술
EasyQA
기존 기술 요약
• Web 서버 젂용 (패킷 캡처 및 리플레이 방식)
LoadRunner(HP)
• 웹 서버를 대상으로 한 서버 부하테스트 툴로서 게임 로직을 고려하지 않아
가상유저간의 Interaction을 부여하기 어려움
• 웹 서버의 경우 Client와 1:1 통싞을 하나 게임 서버의 경우 Client와 1:n 통싞을 함
(웹 서버 : 동일 Input 동일 Output, 게임 서버 : 동일 Input 다른 Output)
• 캐쥬얼 게임 젂용 (패킷 팹처 및 리플레이 방식)
VenusExpress(ETRI) • 게임방 만들기, 로그인 등 단순 액션 캡처 및 재현만 가능하여
서버의 단순 부하 테스트 기능만 가능
• 게임패킷의 분석을 통한 시나리오 기반의 패킷 재구성 등의 기능이 없어
현실성 있는 가상유저의 움직임을 만들지 못함
• White Box Test (부하테스트용 API 임베딩 방식)
VenusBlue(ETRI) • 게임 소스 코드에 직접 임베딩 과정을 통해 구동되어지기 때문에
개발사의 공개 협조가 필요함
• 개발사가 공개 협조를 하더라도 소스코드 수정을 위해 직접적인 인력이 투입되어
작업해야 하기 때문에 서비스에 애로사항이 있음
• 커맨드 기반 그룹내 가상유저들의 획일적 제어로 가상유저간의 상호 인터랙션
구현이 불가능
<6/53> Electronics and Telecommunications Research Institute
7. 온라인게임 QA 기술
EasyQA
EasyQA 개요
실제 사용자와 유사한 행동을 하는 가상 유 네트워크 홖경 시뮬레이션
& 모니터링 S/W
저를 패킷 캡쳐를 통해서 생성 하고
시나리오 기반 제어 기능을 제공하는 온라 성능분석
인 게임 품질 검증 솔루션 개발 망 시뮬레이션
게이머1
Delay : 0.1초
네트워크 Drop 율 : 10%
게이머2 Packet
replay
시나리오 작성 &
게이머3 게임 서버 제어
대규모
패킷 캡쳐
분석
패킷 DB 게이머
단위 행동 행동
DB 관계DB 행동 DB
패킷 캡쳐 & 시나리오 기반 가상
분석 S/W 유저제어 S/W
<7/53> Electronics and Telecommunications Research Institute
8. 온라인게임 QA 기술
EasyQA
연구 개발 내용
2009~2010 2010~2011 2011~2012
추출
행동 관계DB
시나리오1
네트워크
Packet 편집
게이머 게임 서버 분석
시나리오1
대규모 필터 & 패킷 DB
망 시뮬레이션
패킷 캡처 추적 망 시뮬레이션 모니터링
행동 DB 행동 DB Delay
패킷 DB
가상유저 행동 패턴 생성을 위한 500명 규모의 가상유저 5,000명 규모의 시나리오 기반
대규모 패킷 캡처 기술 개발 생성 및 편집 기술 개발 가상유저 제어 솔루션 개발
• 대규모 패킷 캡처 시스템 • 패킷-세션 추적기 및 패킷 관리자 • 패킷 편집용 스크립트 인터페이스
• 가상유저 패킷 DB • 가상유저 상태 모니터 • 패킷 편집용 스크립트 도구
• 단위행동 분석기 • 가상유저 그룹 및 환경 관리자 • 게임 UI 스크립트 인터페이스
• 가상유저 구축 도구 • 시나리오 편집기 및 스케줄러 • 패킷 리플레이 기반 퀘스트 생성기
• 가상맵 탐색기 • 인터넷 시뮬레이터 • 네트워크 모니터링 도구
• 네트워크 환경 에뮬레이터 • 가상맵 자동 탐색기 및 편집기 • 게이밍 품질검증 모니터링 도구
<8/53> Electronics and Telecommunications Research Institute
9. 온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
AI
FSM
길찾기
Formation
행동유형고려
Map분석
Vc이용
실제 Client
패킷 분석 단위행동분석
패킷 캡쳐 Black box Packet Seq
이용 시나리오제어
클라이언트 White box 행동유형 분석 WYSWYG
MACRO(Batch)
서버 Send,receive (발생빈도분석)
Script <-Lua
네트워크에뮬
대규모(500) (샘플, plug-in Packet seq
coding) diagram
가상유저제어 패킷 정의, 문법
PC기반
개별유저 Hub기반
활용
그룹유저 Path기반 제어 &
실사용자 연동
통계분석(Group) 모니터
(seq분석, 빈도분석) ㅇLog포맷
Packet 문법 - DB, File
실시간 패킷 캡쳐&분석
분석
히스토리 기반 패킷 분석 Client
Server
리포팅
Excel
Word
<9/53> Electronics and Telecommunications Research Institute
10. 온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
AI
FSM
길찾기
Formation
행동유형고려
Map분석
Vc이용
실제 Client
패킷 분석 단위행동분석
패킷 캡쳐 Black box Packet Seq
이용 시나리오제어
클라이언트 White box 행동유형 분석 WYSWYG
MACRO(Batch)
서버 Send,receive (발생빈도분석)
Script <-Lua
네트워크에뮬
대규모(500) (샘플, plug-in Packet seq
coding) diagram
가상유저제어 패킷 정의, 문법
PC기반
개별유저 Hub기반
활용
그룹유저 Path기반 제어 &
실사용자 연동
모니터
ㅇLog포맷
- DB, File
분석
Client
Server
리포팅
Excel
Word
<10/53> Electronics and Telecommunications Research Institute
11. 온라인게임 QA 기술
EasyQA
기술 구현 예 – 패킷 캡처 및 분석
젂짂 확인(OK)
패킷 리플레이
패킷캡처
젂짂 패킷 정보 탐색
젂짂(Pressing W)
패킷캡처시스템
QA테스터 게임서버
<11/53> Electronics and Telecommunications Research Institute
12. 온라인게임 QA 기술 – 패킷 캡쳐 및 분석
EasyQA
패킷 캡처 및 분석 시스템
초당 5만개의 대규모 패킷 캡처 기능
TCP, UDP 프로토콜, IP, 포트 값에 대한 필터링 기능
패킷 필터링 및 컬러링 기능
컬러링 기반의 패킷 분류 및 필터 시각화 기능
패킷에 대한 자료형 변홖 기능
데모 보기 데모 보기
프로토콜 문법 생성 기능
캡처된 각 패킷에 대하여 프로토콜 문법을 정의함
캡처 설정
패킷 컬러링 및 필터링 프로토콜 문법 뷰
패킷에 대한 자료형 변환
<패킷 캡처 및 분석 시스템>
<12/53>
13. 온라인게임 QA 기술 – 패킷 캡쳐 및 분석
패킷 분석기
패킷 자동 분류 기능
단순 거리 기반, Hierarchical, ISODATA 클러스터링에 의한 분류
패킷 분석 기본 정보 검출
패킷 갂 순서 정보 검출
패킷 내 필드 후보 검출 데모 보기
프로토콜 분류 기본 필드 추출 프로토콜 순서
방법 분류된 프로토콜
추출
프로토콜 정보
<패킷 분석기>
<13/53>
14. 온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
AI
FSM
길찾기
Formation
행동유형고려
Map분석
Vc이용
실제 Client
패킷 분석 단위행동분석
패킷 캡쳐 Black box Packet Seq
이용 시나리오제어
클라이언트 White box 행동유형 분석 WYSWYG
MACRO(Batch)
서버 Send,receive (발생빈도분석)
Script <-Lua
네트워크에뮬
대규모(500) (샘플, plug-in Packet seq
coding) diagram
가상유저제어 패킷 정의, 문법
PC기반
개별유저 Hub기반
활용
그룹유저 Path기반 제어 &
실사용자 연동
통계분석(Group) 모니터
(seq분석, 빈도분석) ㅇLog포맷
Packet 문법 - DB, File
실시간 패킷 캡쳐&분석
분석
히스토리 기반 패킷 분석 Client
Server
리포팅
Excel
Word
<14/53> Electronics and Telecommunications Research Institute
15. 온라인게임 QA 기술
EasyQA
기술 구현 예 – 게임월드 탐험
약초밭
마을
사망지점
맵 기호 부여
몬스터
월드정보 동기화
위치정보
획득
게임 플레이(탐험) 무한 블랭크 맵 블랭크 맵 업데이트
패킷캡처
QA테스터 패킷캡처시스템 게임서버
<15/53> Electronics and Telecommunications Research Institute
16. 온라인게임 QA 기술
EasyQA
기술 구현 예 – 가상유저 생성
로그인
가상클라이언트
공격 거래
지형 게임
게임월드에 실체화
이동 정보 상태 (출처 : Blade & Soul, NCSoft)
DB화 가상유저 관리
패킷 생성 관리
게임서버
<16/53> Electronics and Telecommunications Research Institute
17. 온라인게임 QA 기술 – 가상유저 제어 시스템
EasyQA
가상 맵 탐색기
Height맵 기반 가상맵 디스플레이
• 탐색된 지형은 밝게 탐색되지 않은 지형은 어둡게 표현
게임 맵 텍스쳐 변경 기능
• 5장의 텍스쳐를 사용하여 지형 텍스쳐 편집 => 맵의 가독성 높임 데모 보기
• 브러쉬 크기를 변경하여 다양한 크기의 텍스쳐 편집 가능
게임 객체(실유저, 가상유저, 몬스터)의 위치 표시
• 실유저, 가상유저 몬스트 등 게임 객체의 위치를 3차원으로 실유저
몬스터
표시
• 게임 객체의 위치 변화를 실시간 추적
가상맵 네비게이션 단일 가상유저
• 가상맵의 줌인/아웃 지원
가상유저 그룹
• 가상맵의 좌우 이동 지원
< 가상맵 탐색기>
< Height 맵 기반 가상맵> < 맵 텍스쳐 변경> < 게임 객체 표시>
<17/53> Electronics and Telecommunications Research Institute
18. 온라인게임 QA 기술 – 가상유저 제어 시스템
가상 유저 제어 시스템
개요
게임 클라이얶트 없이 게임의 짂행을 제어하는 시스템
특징 및 기능
GUI 기반의 편리한 가상유저의 제어
IOCP를 홗용하여 네트워크 부하 최소화 : 500명 이상의 가상유저 생성 가능 데모 보기
게임 객체의 움직임을 가시화 하여 젂체 게임의 상태 파악이 용이
<18/53> Electronics and Telecommunications Research Institute
19. 온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
AI
FSM
길찾기
Formation
행동유형고려
Map분석
Vc이용
실제 Client
패킷 분석 단위행동분석
패킷 캡쳐 Black box Packet Seq
이용 시나리오제어
클라이언트 White box 행동유형 분석 WYSWYG
MACRO(Batch)
서버 Send,receive (발생빈도분석)
Script <-Lua
네트워크에뮬
대규모(500) (샘플, plug-in Packet seq
coding) diagram
가상유저제어 패킷 정의, 문법
PC기반
개별유저 Hub기반
활용
그룹유저 Path기반 제어 &
실사용자 연동
통계분석(Group) 모니터
(seq분석, 빈도분석) ㅇLog포맷
Packet 문법 - DB, File
실시간 패킷 캡쳐&분석
분석
히스토리 기반 패킷 분석 Client
Server
리포팅
Excel
Word
<19/53> Electronics and Telecommunications Research Institute
20. 온라인게임 QA 기술 – 시나리오 기반 가상유저 제어 시스템
EasyQA
시나리오 작성 • 모듞 가상유저들은 A,B,C,D,E 지점을 통과하여 MocKBa에 도착한다
• A 지점에 가상유저를 100명 생성(젂사 30, 사제 20, 마법사 30, 사냥꾼 20)
(네트워크 정의: Delay 0.05초, 패킷 Drop 율 : 10%)
• B 지점에서 일반 몹 사냥 100마리
• C 지점에서 정예 몹 사냥 20마리
• D 지점 주위에서 몹을 사냥하면서 나사못 100개 줍기
• E 지점에서 퀘스트 NPC와 대화
• MocKBa 에 도착
D E
C
B
A
<20/53> Electronics and Telecommunications Research Institute
21. 온라인게임 QA 기술 – 시나리오 기반 가상유저 제어 시스템
EasyQA
시나리오 기반 가상유저 제어 시스템
AI
데모 보기
길찾기 (개인,그룹)
FSM
사용자 행동특성
Input
단위 행동
Map정보 채집
장비 장착
시나리오 기반
위치 기반(시간 기반)
실게이머 지원 기능
(사냥지원- 몹 사냥
Heal,거래지원)
가상유저 1. Item구입
포메이션선택기능 2. 무기 수리
캐쥬얼 게임 시나리오 3. 스킬 획득
- 단위 행동의 나열 시나리오 미리보기
- 구간 반복
시나리오 예-> 장르별
샘플
<21/53> Electronics and Telecommunications Research Institute
22. 온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
AI
FSM
길찾기
Formation
행동유형고려
Map분석
Vc이용
실제 Client
패킷 분석 단위행동분석
패킷 캡쳐 Black box Packet Seq
이용 시나리오제어
클라이언트 White box 행동유형 분석 WYSWYG
MACRO(Batch)
서버 Send,receive (발생빈도분석)
Script <-Lua
네트워크에뮬
대규모(500) (샘플, plug-in Packet seq
coding) diagram
가상유저제어 패킷 정의, 문법
PC기반
개별유저 Hub기반
활용
그룹유저 Path기반 제어 &
실사용자 연동
통계분석(Group) 모니터
(seq분석, 빈도분석) ㅇLog포맷
Packet 문법 - DB, File
실시간 패킷 캡쳐&분석
분석
히스토리 기반 패킷 분석 Client
Server
리포팅
Excel
Word
<22/53> Electronics and Telecommunications Research Institute
23. 온라인게임 QA 기술 – 네트워크 홖경 에뮬레이션 시스템
EasyQA
네트워크 환경 에뮬레이션 시스템
네트워크 환경 에뮬레이션 통합 UI 시스템
네트워크 토폴로지 구성
네트워크 홖경 설정
네트워크 홖경 에뮬레이션 코어 제어
네트워크 환경 측정 프로그램 데모 보기
링크 속성
에뮬레이션 코어 접속리스트
네트워크 환경 측정 결과
네트워크 토폴로지
< 네트워크 환경 에뮬레이션 통합 UI 시스템 > < 네트워크 환경 측정 프로그램 >
<23/53> Electronics and Telecommunications Research Institute
24. 온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
AI
FSM
길찾기
Formation
행동유형고려
Map분석
Vc이용
실제 Client
패킷 분석 단위행동분석
패킷 캡쳐 Black box Packet Seq
이용 시나리오제어
클라이언트 White box 행동유형 분석 WYSWYG
MACRO(Batch)
서버 Send,receive (발생빈도분석)
Script <-Lua
네트워크에뮬
대규모(500) (샘플, plug-in Packet seq
coding) diagram
가상유저제어 패킷 정의, 문법
PC기반
개별유저 Hub기반
활용
그룹유저 Path기반 제어 &
실사용자 연동
통계분석(Group) 모니터
(seq분석, 빈도분석) ㅇLog포맷
Packet 문법 - DB, File
실시간 패킷 캡쳐&분석
분석
히스토리 기반 패킷 분석 Client
Server
리포팅
Excel
Word
<24/53> Electronics and Telecommunications Research Institute
25. 온라인게임 QA 기술 – 시스템 모니터링 및 분석기
EasyQA
실시스템 모니터링
QA 시스템 모니터링
Monitor & Analysis
- Client(가상유저) - 서버: DB(Transaction단위)
. Debug, 효율성 검정 - 가상유저 시스템 모니터링 - 클라이얶트
- Server & 실유저 – 실상황 모니터링 - 네트워크단
-요소
. CPU 점유율
. Bandwidth
. memory
. Response time
. Ping time
운영 모니터링
-각 System별 -시나리오
-각 action별 -단위 액션
-각 시나리오별
출력 파일
.csv (Excel Format)
<25/53> Electronics and Telecommunications Research Institute
26. 온라인게임 QA 기술 – 게임 클라이얶트/서버 배치구조 예
EasyQA
Game
Server
Game (Login)
Player 1 Client 1
Game
Server
Game (Chatting)
Player 2 Client 2
… Game
Server
(In Game 1)
Game
Game Server
Player N Client N (In Game 2)
…
Game
Server
(In Game N)
<26/53> Electronics and Telecommunications Research Institute
27. 온라인게임 QA 기술 – 패킷 캡쳐/분석 및 가상맵 분석 시스템
EasyQA
Game
Client용 Server용 Server
Game (Login)
패킷캡쳐 패킷캡쳐
Client 1
Tester 1 시스템 시스템
Game
Client용 Server 용 Server
Game 패킷캡쳐 패킷캡쳐 (Chatting)
Tester 2 Client 2 시스템 시스템
… Server 용
Game
Server
패킷캡쳐 (In Game 1)
시스템
Client용 Server용 Game
Game 패킷캡쳐 패킷캡쳐 Server
Tester N Client N 시스템 시스템 (In Game 2)
…
Server용 Game
패킷캡쳐 Server
시스템 (In Game N)
<27/53> Electronics and Telecommunications Research Institute
28. 온라인게임 QA 기술 – 패킷 캡쳐/분석 및 가상맵 분석 시스템
EasyQA
Game
Client용 Server용 Server
Game (Login)
패킷캡쳐 패킷캡쳐
Client 1
Tester 시스템 시스템
1
Game
Client용 Server용 Server
패킷리플레이
Client용 Server용
Game 패킷캡쳐 가상맵 패킷캡쳐 (Chatting)
기반
패킷분석
Client 2 분석 패킷분석
Tester 시스템 시스템 상황재현
시스템 시스템 시스템
2 (실시갂 가능) 시스템
… Server용
Game
Server
패킷캡쳐 (In Game 1)
시스템
Client용 Server용 Game
Game 패킷캡쳐 패킷캡쳐 Server
Tester Client N 시스템 시스템 (In Game 2)
N
…
Server용 Game
패킷캡쳐 Server
시스템 (In Game N)
<28/53> Electronics and Telecommunications Research Institute
29. 온라인게임 QA 기술 – 가상유저 제어 및 모니터링 구조
EasyQA
Server
Agent Monitor
Monitor Game
Virtual Server
Network (Login)
Agent 1 Emulator
(VU:1~m)
Server
Monitor
Agent
Game
Monitor
Server
Virtual Network (Chatting)
Agent 2 Emulator
EasyQa (VU:m+1~2m)
Studio
Server
… Monitor
Game
Server
Agent (In Game 1)
Monitor Server
Virtual Network Monitor
Agent N Emulator Game
(VU:n(m-1)+1~nm) Server
(In Game 2)
Client
…
Monitor Server
Real Monitor
Game Game
Client Server
Tester N
(In Game N)
<29/53> Electronics and Telecommunications Research Institute
30. 온라인게임 QA 기술 – 콘텐츠 적용 사례
EasyQA
가상 유저 제어 시스템-엘마 시범 콘텐츠
대규모 가상 유저 생성 및 제어
IOCP를 사용하여 300명 이상의 가상 유저 제어 지원
액션 기반 가상 유저 제어 지원
로긴, 월드 접속, 이동, 채팅, 공격 등의 다양한 액션 지원
실제 유저, 가상 유저, 몬스터의 3D 화면 상 가시화 기능 지원 데모 보기
가상 유저, 몬스터의 상태 관리 및 상태 가시화
3D 화면 네비게이션 기능 지원
< > < >
<30/53> Electronics and Telecommunications Research Institute
31. 온라인게임 QA 기술 – 콘텐츠 적용 사례
EasyQA
가상 유저 제어 시스템- 슈퍼다다다
가상 유저 제어 시스템의 캐쥬얼 게임 적용
TCP & UDP 통신 관리 기능
TCP 통신 : 밸런싱, 로긴, 룸 서버
UDP 통신: 룸서버
액션 기반 가상 유저 제어 지원 데모 보기
로긴, 로비, 방생성, 방입장, 채팅 등의 다양한 액션 지원
게임 화면 가상유저제어기
실유저 가상유저
<31/53> Electronics and Telecommunications Research Institute
32. 온라인게임 QA 기술
EasyQA
결과물의 활용 형태 예시
■ QA 팀원 1인이 수백~수천명의 가상유저를 제어하며 QA 테스트
다수 가상유저 제어
오늘은 50인 인던을 갈까~
공성젂을 해볼까?
아니면 B팀원과 100:100 하자고 해볼까?
WOW 폐인의 로망?
(출처 : dual-boxing.com)
<32/53> Electronics and Telecommunications Research Institute
33. 온라인게임 QA 기술
EasyQA
결과물의 활용 형태 예시
■ 미리 작성된 시나리오에 따른 무한 반복 테스트
가상유저군 – 네~! 다녀오삼
시나리오 기반 반복 테스트
오늘 저녁 약속있는데 어떻하지?
어쩔 수 없이 가상유저 애들한테 시켜야겠군.
나 올 때까지 이 시나리오 100회 반복해~! 시나리오 기반 테스트
(출처 : 디스이즈게임, 에이카온라인 공성젂)
<33/53> Electronics and Telecommunications Research Institute
34. 온라인게임 서버테스트 기술
결론
결론
Electronics and Telecommunications Research Institute
35. 결론
결론
■ 향후 개발 예정
- 실 클라이얶트 자동 제어를 통한 가상맵 탐색
- 자동 길찾기, 인공지능에 의한 가상유저 제어
- 통합 UI
■ 여러 개발사의 도움을 구합니다!
- 다양한 콘텐츠 적용을 통한 완성도 제고
- QA 젂문가의 요구사항 반영
■ ETRI HD게임연구팀은 열려있습니다!
- 요구사항 도출을 위한 위원회 ■ HD게임연구팀 박창준
E-mail : chjpark@etri.re.kr
- 젂문가 초빙을 통한 고견 청취
<35/53> Electronics and Telecommunications Research Institute