KR20130106114A - 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법 - Google Patents

리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법 Download PDF

Info

Publication number
KR20130106114A
KR20130106114A KR1020120027762A KR20120027762A KR20130106114A KR 20130106114 A KR20130106114 A KR 20130106114A KR 1020120027762 A KR1020120027762 A KR 1020120027762A KR 20120027762 A KR20120027762 A KR 20120027762A KR 20130106114 A KR20130106114 A KR 20130106114A
Authority
KR
South Korea
Prior art keywords
script
replay
value
variable
online game
Prior art date
Application number
KR1020120027762A
Other languages
English (en)
Inventor
강형석
Original Assignee
주식회사 엔씨소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔씨소프트 filed Critical 주식회사 엔씨소프트
Priority to KR1020120027762A priority Critical patent/KR20130106114A/ko
Publication of KR20130106114A publication Critical patent/KR20130106114A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 리플레이 스크립트를 이용하는 시뮬레이터에 관한 것으로서, 온라인 게임 서버를 테스트 하기 위한 시뮬레이터에 있어서, 온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트를 실행하는 스크립트 머신부를 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터를 제공한다.
본 발명에 따르면, 리플레이 스크립트 내의 변수를 조정하는 것 만으로도 수치 변경에 따른 테스트를 반복적으로 수행할 수 있는 장점이 있다.
또한, 리플레이 스크립트 내의 특정 변수를 지정된 범위 내에서 연속적으로 변화시켜 실행함으로써, 리플레이 스크립트를 고속으로 수행 시 기획 데이터의 변화에 따른 결과를 시뮬레이션 할 수 있는 장점이 있다.
또한, AI 명령어와 같은 지형 데이터를 이용하는 대신, 특정 시간에 랜덤 값을 곱한 것으로 대체하여 리플레이 스크립트를 실행함으로써, 리플레이 스크립트를 고속으로 실행하는 경우 훨씬 효율적으로 리플레이 스크립트를 실행할 수 있는 장점이 있다.

Description

리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법{SIMULATOR USING REPLAY SCRIPT AND METHOD THEREOF}
본 발명은 리플레이 스크립트를 이용하여 온라인 게임을 자동으로 테스트 하는 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법에 관한 것이다.
최근에 게임 유저들 사이에는 MMORPG(Massive Multiplayer Online Role Playing Game)가 대중화 되고 있다. 이와 같은 MMORPG의 경우, 게임의 개발 못지 않게 게임의 테스트 또한 중요한 작업의 일부이다.
게임을 테스트하고 개선하는 작업은 기획 단계에서 게임 기획자에 의해 이루어 지며, 이와 같은 게임 테스트를 위해서 리플레이 파일을 이용한다.
리플레이(Replay) 파일이란, 게임 플레이를 패킷 레벨에서 레코딩 한 파일을 말한다. 리플레이 파일을 이용하면 퍼포먼스 테스트 및 메모리 테스트를 할 수 있으며, 그 밖에 게임에서 사용되는 플레이어 캐릭터 등도 테스트 할 수 있다.
이러한 리플레이 파일은 게임을 테스트하는 입장에서 본다면 굉장히 강력한 도구이다. 리플레이 파일을 돌리기만 하면 유저의 조작 없이도 정해진 리플레이 동작을 그대로 수행할 수 있기 때문이다.
그러나, 이러한 리플레이 파일은 코드 형태가 아닌 테스트 하고자 하는 내용을 일일이 나열한 텍스트 형태로 되어 있고, 게임의 테스트를 위한 값들은 상수화 되어 있어, 기획자가 기획 데이터를 변경하여 테스트 하기 위해서는 리플레이 파일 내의 데이터 및 수치를 매번 직접 변경하여야 하므로, 상당히 번거롭고 시간이 많이 소요되는 문제가 있다.
또한, 리플레이 파일 내에서 특정 스킬과 연관된 기획 데이터들은 상수화 되어 있으므로, 특정 스킬의 기획 데이터를 연속적으로 변화시키면서 고속으로 시뮬레이션 하기에도 적합하지 않은 문제가 있다.
따라서, 리플레이 파일을 각종 명령어 및 변수를 사용하여 스크립트 화 함으로써, 온라인 게임 기획자가 각종 기획 데이터를 변경하여 테스트 수행 시 리플레이 파일을 직접 변경하지 않고도 효율적으로 테스트를 수행할 수 있는 방안이 필요하다.
또한, 특정 스킬의 기획 데이터를 자동으로 연속하여 변화시키면서 기획 데이터의 변화에 따른 결과를 시뮬레이션 할 수 있는 방안이 필요하다.
문헌 1. 대한민국 특허공개 제10-2009-0129110호 온라인 게임 리플레이 제공 시스템 및 그 방법 문헌 2. 대한민국 특허공개 제10-2010-0037413호 게임 리플레이 조작 시스템 및 그 방법
본 발명은 상기와 같은 종래기술의 문제점을 해소하기 위하여 안출된 것으로 게임 플레이를 패킷 레벨에서 레코딩 한 리플레이 데이터를 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트를 생성함으로써, 변수를 조정하는 것 만으로도 수치 변경에 따른 테스트를 반복적으로 수행할 수 있고, 특정 변수의 값을 연속적으로 변화시킬 수 있는 리플레이 스크립트를 이용하여 시뮬레이션을 수행할 수 있는 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 일 측면에 따르면 리플레이 스크립트를 이용하는 시뮬레이터가 제공된다.
본 발명의 바람직한 일 실시 예에 따르면, 온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트를 실행하는 스크립트 머신부를 포함할 수 있다.
또한, 상기 리플레이 데이터를 파싱(parsing)하여 상수 값을 검출하되, 검출된 상수 값의 유형에 따라 상기 상수를 그에 대응하는 변수로 대체함으로써 리플레이 스크립트를 생성하는 리플레이 스크립트 생성부를 더 포함할 수 있다.
또한, 상기 리플레이 스크립트 생성부는 상기 변수 값이 제 1 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 1 스크립트를 생성하고, 상기 변수 값이 제 2 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 2 스크립트를 생성하며, 상기 제 1 및 제 2 스크립트를 비교하여 상기 변수 값의 변동에 따라 값이 달라지는 스크립트 변수를 추출하고, 상기 변수 값에 따라 상기 스크립트 변수 값이 자동으로 변경되는 리플레이 스크립트를 생성할 수 있다.
또한, 상기 리플레이 스크립트 생성부는 상기 변수 값을 지정된 범위 내에서 연속적으로 변화시킬 수 있는 제 1 커맨드를 지정하고, 상기 변수 값이 변화될 수 있는 범위를 지정할 수 있다.
또한, 상기 상수 값은 온라인 게임의 특정 스킬의 사용 후 다시 해당 스킬을 사용할 수 있을 때까지 걸리는 시간일 수 있다.
또한, 상기 리플레이 데이터를 파싱하여 미리 정의된 표현이 검출되면, 플레이어 캐릭터의 움직임을 제어하기 위한 복수의 AI(Artificial Intelligence) 명령어 중 상기 미리 정의된 표현에 대응하는 AI 명령어로 대체하는 리플레이 스크립트 생성부를 더 포함할 수 있다.
또한, 상기 리플레이 스크립트 생성부는 상기 미리 정의된 표현에 대응하는 AI(Artificial Intelligence) 명령어를 특정 시간에 랜덤 상수를 곱한 것으로 대체하여 표현할 수 있다.
또한, 상기 리플레이 데이터를 파싱하여 미리 정의된 패턴이 반복되면 이를 반복하여 수행 가능하게 하기 위한 플로우 컨트롤 명령어(flow control command)를 상기 반복되는 패턴의 시작 부분과 끝 부분에 삽입하고, 미리 정의된 조건 제어 표현이 나타나면, 상기 조건 제어 표현에 대응하여 미리 정의된 플로우 컨트롤 명령어로 대체하는 리플레이 스크립트 생성부를 더 포함할 수 있다.
또한, 상기 리플레이 스크립트에 포함되는 변수에 특정 값을 설정하는 기획 데이터부를 더 포함하고, 온라인 게임 기획자는 상기 기획 데이터부를 통하여 상기 리플레이 스크립트에 포함되는 변수에 설정되는 값을 변경할 수 있다.
또한, 상기 스크립트 머신부는 게임 클라이언트에서 수행될 수 있다.
본 발명의 바람직한 다른 일 실시 예에 따르면, 온라인 게임 서버를 테스트 하기 위한 시뮬레이션 방법에 있어서, 온라인 게임 서버가 온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트를 적어도 하나 이상 생성하는 제 110 단계; 및 온라인 게임 서버가 상기 생성된 리플레이 스크립트를 하나 이상의 게임 클라이언트로 제공하는 제 120 단계;를 포함할 수 있다.
또한, 상기 제 120 단계 이후, 상기 리플레이 스크립트에 포함되는 변수에 특정 값을 설정하는 제 130 단계;를 더 포함할 수 있다.
또한, 상기 제 110 단계에서, 온라인 게임 서버는 상기 리플레이 데이터를 파싱(parsing)하여 상수 값을 검출하되, 검출된 상수 값의 유형에 따라 상기 상수를 그에 대응하는 변수로 대체함으로써 리플레이 스크립트를 생성할 수 있다.
또한, 상기 제 110 단계에서, 온라인 게임 서버는 상기 변수 값이 제 1 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 1 스크립트를 생성하고, 상기 변수 값이 제2 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 2 스크립트를 생성하며, 상기 제 1 및 제 2 스크립트를 비교하여 상기 변수 값의 변동에 따라 값이 달라지는 스크립트 변수를 추출하고, 상기 변수 값에 따라 상기 스크립트 변수 값이 자동으로 변경되는 리플레이 스크립트를 생성할 수 있다.
또한, 상기 제 110 단계에서, 온라인 게임 서버는 상기 변수 값을 지정된 범위 내에서 연속적으로 변화시킬 수 있는 제 1 커맨드를 지정하고, 상기 변수 값이 변화될 수 있는 범위를 지정할 수 있다.
또한, 상기 제 110 단계에서, 온라인 게임 서버는 상기 리플레이 데이터를 파싱하여 미리 정의된 표현이 검출되면, 플레이어 캐릭터의 움직임을 제어하기 위한 복수의 AI(Artificial Intelligence) 명령어 중 상기 미리 정의된 표현에 대응하는 AI 명령어로 대체할 수 있다.
또한, 상기 제 110 단계에서, 온라인 게임 서버는 상기 미리 정의된 표현에 대응하는 AI(Artificial Intelligence) 명령어를 특정 시간에 랜덤 상수를 곱한 것으로 대체할 수 있다.
또한, 상기 제 110 단계에서, 온라인 게임 서버는 상기 리플레이 데이터를 파싱하여 미리 정의된 패턴이 반복되면 이를 반복하여 수행 가능하게 하기 위한 플로우 컨트롤 명령어(flow control command)를 상기 반복되는 패턴의 시작 부분과 끝 부분에 삽입하고, 미리 정의된 조건 제어 표현이 나타나면, 상기 조건 제어 표현에 대응하여 미리 정의된 플로우 컨트롤 명령어로 대체할 수 있다.
또한, 상기 제 130 단계 이후, 상기 온라인 게임 서버가 상기 하나 이상의 게임 클라이언트에 의한 리플레이 스크립트 수행을 모니터링 하는 제 140 단계;를 더 포함할 수 있다.
이상에서 설명한 바와 같이, 본 발명에 의한 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법에 의하면, 리플레이 스크립트 내의 변수를 조정하는 것 만으로도 수치 변경에 따른 테스트를 반복적으로 수행할 수 있는 장점이 있다.
또한, 리플레이 스크립트 내의 특정 변수를 지정된 범위 내에서 연속적으로 변화시켜 실행함으로써, 리플레이 스크립트를 고속으로 수행 시 기획 데이터의 변화에 따른 결과를 시뮬레이션 할 수 있는 장점이 있다.
또한, AI 명령어와 같은 지형 데이터를 이용하는 대신, 특정 시간에 랜덤 값을 곱한 것으로 대체하여 리플레이 스크립트를 실행함으로써, 리플레이 스크립트를 고속으로 실행하는 경우 훨씬 효율적으로 리플레이 스크립트를 실행할 수 있는 장점이 있다.
또한, 특정 변수 값의 변화에 따라 값이 달라지는 스크립트 변수를 추출함으로써, 변수 값에 따라 스크립트 변수 값이 자동으로 변경되는 리플레이 스크립트를 생성할 수 있는 장점이 있다.
도 1은 본 발명에 의한 리플레이 스크립트를 이용하는 시뮬레이터가 게임 클라이언트와 온라인 게임 서버를 이용하여 구성되는 구성도이다.
도 2는 리플레이 데이터가 리플레이 스크립트로 변조된 모습을 나타낸 예시도이다.
도 3은 본 발명에 의한 리플레이 스크립트를 이용하는 시뮬레이션 방법을 나타낸 순서도이다.
이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명한다. 한편, 본 발명을 명확히 하기 위하여 본 발명의 구성과 관련없는 내용은 생략하기로 하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명한다.
한편, 발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성요소가 다른 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
도 1은 본 발명에 의한 리플레이 스크립트를 이용하는 시뮬레이터가 게임 클라이언트와 온라인 게임 서버를 이용하여 구성되는 구성도이다.
도 1을 참조하면, 리플레이 스크립트를 이용하는 시뮬레이터는 스크립트 머신부(11), 리플레이 스크립트 생성부(21) 및 기획 데이터부(23)를 포함할 수 있다.
도 1에서는 스크립트 머신부(11)가 게임 클라이언트(10)에서 실행되는 것으로 도시하고 있으나, 반드시 이에 한정되지 않으며, 온라인 게임 서버(20)에서 실행될 수도 있다.
온라인 게임 서버(20)에서 실행되는 리플레이 스크립트 생성부(21)가 리플레이 스크립트를 생성한 후 네트워크를 통하여 적어도 하나 이상의 게임 클라이언트(10)로 전송하고, 기획 데이터부(23)에서 리플레이 스크립트(13)에 포함되는 변수에 특정 값을 설정하면, 스크립트 머신부(11)는 리플레이 스크립트(13)를 실행하게 된다.
스크립트 머신부(11)는 적어도 하나 이상의 리플레이 스크립트(13)를 실행할 수 있는 소프트웨어로 된 스크립트 해석 엔진을 말한다. 구체적으로는, 온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트(13)를 실행하는 기능을 수행한다.
리플레이 데이터란, 온라인 게임의 테스트를 위한 파일로서, 온라인 게임에서 플레이어 캐릭터의 움직임을 제어하거나, 특정 스킬을 사용한 후 다시 사용할 때까지 걸리는 시간 등을 텍스트 형태로 표현한 파일을 말한다.
리플레이 스크립트 생성부(21)는 리플레이 데이터를 파싱(parsing)하여 상수 값을 검출하되, 검출된 상수 값의 유형에 따라 상기 상수를 그에 대응하는 변수로 대체함으로써 리플레이 스크립트를 생성할 수 있다. 여기서 상수 값은 특정 스킬을 사용한 후의 지연 시간을 말하며, 구체적으로는 온라인 게임의 특정 스킬의 사용 후 다시 해당 스킬을 사용할 수 있을 때까지 걸리는 시간을 말한다.
구체적으로는, 리플레이 데이터를 온라인 게임 서버(20)의 저장부(미도시)에 저장한 후, 파싱하여 상수 값을 검출하면 상수 값의 종류를 파악한 후 저장부에 저장된 여러 변수 중 그에 대응하는 변수로 대체할 수 있다. 또한, 리플레이 데이터를 파싱하여 상수 값을 검출하면 상수 값 이전에 위치한 데이터들의 패턴을 분석하여 저장부에 저장된 여러 변수 중 그에 대응하는 변수로 대체할 수 있다.
또한, 리플레이 스크립트 생성부(21)는 변수 값이 제 1 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 1 스크립트를 생성하고, 변수 값이 제 2 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 2 스크립트를 생성하며, 제 1 및 제 2 스크립트를 비교하여 변수 값의 변동에 따라 값이 달라지는 스크립트 변수를 추출하고, 변수 값에 따라 스크립트 변수 값이 자동으로 변경되는 리플레이 스크립트를 생성할 수 있다.
구체적으로는, 리플레이 스크립트 생성부(21)는 변수 값이 제 1 값일 때의 제 1 스크립트를 생성하고, 변수 값이 제 2 값일 때의 제 2 스크립트를 생성한 후, 두 개의 스크립트를 비교하여 변수 값이 변동됨에 따라 값이 달라지는 스크립트 변수를 추출한 후, 변수 값의 변동에 따라 스크립트 변수 값이 어떻게 변화하는지 관계식을 설정한다. 이러한 과정을 거친 후, 설정되는 변수 값에 따라 스크립트 변수 값이 자동으로 변경되도록 하는 리플레이 스크립트를 생성할 수 있다. 이와 같이 함으로써, 온라인 게임 기획자가 특정 변수 값을 변경하는 경우 그에 대응하여 스크립트 변수의 값이 자동으로 변경되어 게임 기획 변경에 따른 게임 테스트를 자동화 할 수 있고, 많은 편리성을 제공할 수 있다.
또한, 리플레이 스크립트 생성부(21)는 변수 값을 지정된 범위 내에서 연속적으로 변화시킬 수 있는 제 1 커맨드를 지정하고, 상기 변수 값이 변화될 수 있는 범위를 지정할 수 있다.
예를 들면, 리플레이 스크립트 생성부(21)는 아래와 같이 변수 앞에 range 명령어를 설정할 수 있다. 또한, 변수 값이 변화될 수 있는 범위(2초~5초, 55~125)를 지정할 수 있다.
/range $cooltime(스킬1) 2초~5초
/range $effect_value1(스킬1) 55~125
range 명령어는 특정 스킬의 기획 데이터를 변화시킬 수 있는 범위를 지정하는 명령어이다. 해당 범위 내에서는 range가 연속적으로 변화하게 된다. 리플레이 스크립트를 이용하는 시뮬레이터는 리플레이 스크립트(13)를 시뮬레이션 할 때, range 내의 값을 조밀하게 변화시키면서 시뮬레이션 하고, objective function을 구하여 테이블 화 한다. 예를 들면, 스킬1의 쿨타임이 2초일 때, 2.05초 일 때, 2.1초 일 때 마다 시간당 재화 생산량을 구하고, 또 스킬1의 effect_value1이 55.1일 때, 55.2일 때 등등 모든 경우의 재화 생상량을 구해 테이블 화 한다.
이렇게 모든 가능한 값에 대해 테이블이 만들어지면, 역으로 objective function으로부터 입력 값을 찾아내는 것도 가능하다. 예를 들어, 재화 생산량을 1시간에 100000키나로 하려 할 때, cool_time과 effect_value1의 조합을 뽑아낼 수 있다. 다시 말해서, 재화생산량을 100000키나로 하려할 때, 스킬1의 cooltime은 3초, effect_value1은 70하면 된다는 식으로 역산할 수 있다.
리플레이 스크립트 생성부(21)는 리플레이 데이터를 파싱하여 미리 정의된 표현이 검출되면, 플레이어 캐릭터의 움직임을 제어하기 위한 복수의 AI(Artificial Intelligence) 명령어 중 상기 미리 정의된 표현에 대응하는 AI 명령어로 대체할 수 있다. 예를 들어, 리플레이 데이터를 파싱하여 “/이동 (100, 50)” 과 같은 표현이 검출되면, 복수의 AI 명령어 중 “/이동 (100, 50)”에 대응하는 AI 명령어인 “/target까지 이동”으로 대체할 수 있다.
또한, 리플레이 스크립트 생성부(21)는 미리 정의된 표현에 대응하는 AI(Artificial Intelligence) 명령어를 특정 시간에 랜덤 상수를 곱한 것으로 대체하여 표현할 수 있다. 예를 들면, 미리 정의된 표현에 대응하는 AI 명령어를 “/target까지 이동”이라고 가정하면, “/target까지 이동”을 “시간×랜덤 값”으로 표현할 수 있다. 이렇게 함으로써, 시뮬레이터가 리플레이 스크립트(13)를 고속으로 실행할 수 있을 뿐만 아니라, 지형 데이터가 없으므로 훨씬 더 효율적으로 스크립트를 실행할 수 있다.
리플레이 스크립트 생성부(21)는 리플레이 데이터를 파싱하여 미리 정의된 패턴이 반복되면 이를 반복하여 수행 가능하게 하기 위한 플로우 컨트롤 명령어(flow control command)를 반복되는 패턴의 시작 부분과 끝 부분에 삽입하고, 미리 정의된 조건 제어 표현이 나타나면, 조건 제어 표현에 대응하여 미리 정의된 플로우 컨트롤 명령어로 대체할 수 있다.
미리 정의된 패턴이 반복되는 경우는 예를 들면, 리플레이 데이터에서 일정 라인 주기로 같은 표현이 반복되는 경우를 말하며, 반복 수행 가능하게 하기 위한 플로우 컨트롤 커맨드로는 WHILE 문, DO-WHILE 문, LOOP 문 등 다양한 플로우 컨트롤 커맨드가 사용될 수 있다. 또한, "/만약", "/~하면" 등과 같은 조건 제어 표현이 나타나면, 조건 제어 표현에 대응하여 미리 정의된 플로우 컨트롤 명령어인 IF, WHEN 등과 같은 플로우 컨트롤 명령어로 대체할 수 있다.
상기의 플로우 컨트롤 커맨드는 일 실시 예에 불과하며, 반드시 이에 한정되지 않는다. 리플레이 데이터를 리플레이 스크립트로 변조하는 실시 예에 대해서는 도 2에서 자세하게 설명한다.
기획 데이터부(23)는 리플레이 스크립트(13)에 포함되는 변수에 특정 값을 설정할 수 있다. 온라인 게임 기획자는 온라인 게임 서버(20)에 있는 기획 데이터부(23)를 통하여 게임 클라이언트(10)에서 돌아가는 리플레이 스크립트(13) 내의 변수 값을 설정하고, 변경할 수 있다. 이렇게 함으로써, 온라인 게임 서버(20)에 복수 개의 게임 클라이언트(10)가 연결되고, 각 게임 클라이언트(10)에서 리플레이 스크립트(13)가 돌아가는 경우, 온라인 게임 기획자는 온라인 게임 서버(20)에 있는 기획 데이터부(23)를 통하여 특정 변수 값을 설정하기만 하면 자동으로 복수 개의 게임 클라이언트(10)에서 돌아가는 리플레이 스크립트(13)에 변수 값을 설정할 수 있다.
도 2는 리플레이 데이터가 리플레이 스크립트로 변조된 모습을 나타낸 예시도이다.
도 2를 참조하면, 온라인 게임 서버(20)에 포함된 리플레이 스크립트 생성부(21)가 리플레이 데이터(30)를 변조하여 리플레이 스크립트(40)를 생성한 모습을 볼 수 있다.
리플레이 스크립트 생성부(21)는 온라인 게임 서버(20)의 저장부(미도시)에 저장되어 있는 리플레이 데이터(30)를 파싱하는 작업을 수행한다.
파싱 결과, 두 번째 줄에 있는 “/이동 (100, 50)”을 발견하면, 그에 대응하여 미리 정의된 AI 명령어인 “/target까지 이동”으로 대체한다.
그 다음 파싱 결과, 네 번째 줄에 있는 상수인 “0.3초”를 발견하면, 상수 값의 유형에 대응하여 미리 지정된 변수인 “$globalcooltime”으로 대체한다. 물론, 상수인 “0.3초” 이전에 위치한 표현들을 가지고 분석할 수도 있다. “0.3초”이전에 위치한 표현인 “스킬1” 및 “/지연”을 발견하면, 그에 대응하여 미리 지정된 변수인 “$globalcooltime”으로 대체할 수 있다.
그 다음 파싱 결과, 여섯 번째 줄에 있는 상수인 “2.7초”를 발견하면, 상수 값의 유형에 대응하여 미리 지정된 변수인 “$cooltime(스킬1) - $globalcooltime”으로 대체한다. 물론 위에서와 같이 상수인 “2.7초” 이전에 위치한 표현들을 가지고 분석할 수도 있다.
또한, 리플레이 스크립트 생성부(21)는 파싱 결과, "스킬 1...스킬 2...스킬 1...스킬 1...스킬 2...스킬 1..."과 같이 일정 패턴이 반복되면, 반복되는 부분의 시작 부분인 세 번째 줄과 반복되는 부분의 끝 부분인 아홉 번째 줄에 플로우 컨트롤 명령어인 "loop" 및 "loop_until_target_dead"를 삽입할 수 있다.
상기의 실시 예에서 설명한 AI 명령어와 플로우 컨트롤 명령어는 일 예에 불과하며 다양한 AI 명령어와 플로우 컨트롤 명령어가 사용될 수 있다.
도 3은 본 발명에 의한 리플레이 스크립트를 이용하는 시뮬레이션 방법을 나타낸 순서도이다.
도 3을 참조하면, 먼저, 온라인 게임 서버(20)가 온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트(13)를 적어도 하나 이상 생성한다(S110).
그 다음, 온라인 게임 서버(20)가 생성된 리플레이 스크립트(13)를 하나 이상의 게임 클라이언트(10)로 제공한다(S120).
그 다음, 리플레이 스크립트(13)에 포함되는 변수에 특정 값을 설정한다(S130).
변수에 특정 값을 설정하면, 게임 클라이언트(10)에서 돌아가는 스크립트 머신부(11)는 리플레이 스크립트(13)를 실행하게 되고, 리플레이 스크립트(13)의 실행 결과, 네트워크를 통하여 온라인 게임 서버를 테스트하게 된다.
마지막으로, 온라인 게임 서버(20)가 상기 하나 이상의 게임 클라이언트(10)에 의한 리플레이 스크립트(13) 수행을 모니터링 한다(S140).
그 밖에 리플레이 데이터를 리플레이 스크립트로 변조하는 방법 및 기타 구체적인 방법에 대해서는 도 1 및 도 2를 참조하여 자세하게 설명하였으므로, 생략하도록 한다.
본 발명은 첨부 도면 및 상기와 같은 실시예를 참조하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 권리범위는 오직 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이며 상기와 같은 실시예에 국한되지 아니한다.
본 발명은 온라인 게임 기술분야에 적용될 수 있다.
10 : 게임 클라이언트 11 : 스크립트 머신부
13, 40 : 리플레이 스크립트 20 : 온라인 게임 서버
21 : 리플레이 스크립트 생성부 23 : 기획 데이터부
30 : 리플레이 데이터

Claims (19)

  1. 온라인 게임 서버를 테스트 하기 위한 시뮬레이터에 있어서,
    온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트를 실행하는 스크립트 머신부를 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  2. 제 1 항에 있어서,
    상기 리플레이 데이터를 파싱(parsing)하여 상수 값을 검출하되, 검출된 상수 값의 유형에 따라 상기 상수를 그에 대응하는 변수로 대체함으로써 리플레이 스크립트를 생성하는 리플레이 스크립트 생성부를 더 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  3. 제 2 항에 있어서,
    상기 리플레이 스크립트 생성부는 상기 변수 값이 제 1 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 1 스크립트를 생성하고, 상기 변수 값이 제 2 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 2 스크립트를 생성하며, 상기 제 1 및 제 2 스크립트를 비교하여 상기 변수 값의 변동에 따라 값이 달라지는 스크립트 변수를 추출하고, 상기 변수 값에 따라 상기 스크립트 변수 값이 자동으로 변경되는 리플레이 스크립트를 생성하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  4. 제 2 항에 있어서,
    상기 리플레이 스크립트 생성부는 상기 변수 값을 지정된 범위 내에서 연속적으로 변화시킬 수 있는 제 1 커맨드를 지정하고, 상기 변수 값이 변화될 수 있는 범위를 지정하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  5. 제 2 항에 있어서,
    상기 상수 값은 온라인 게임의 특정 스킬의 사용 후 다시 해당 스킬을 사용할 수 있을 때까지 걸리는 시간인 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  6. 제 1 항에 있어서,
    상기 리플레이 데이터를 파싱하여 미리 정의된 표현이 검출되면, 플레이어 캐릭터의 움직임을 제어하기 위한 복수의 AI(Artificial Intelligence) 명령어 중 상기 미리 정의된 표현에 대응하는 AI 명령어로 대체하는 리플레이 스크립트 생성부를 더 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  7. 제 6 항에 있어서,
    상기 리플레이 스크립트 생성부는 상기 미리 정의된 표현에 대응하는 AI(Artificial Intelligence) 명령어를 특정 시간에 랜덤 상수를 곱한 것으로 대체하여 표현하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  8. 제 1 항에 있어서,
    상기 리플레이 데이터를 파싱하여 미리 정의된 패턴이 반복되면 이를 반복하여 수행 가능하게 하기 위한 플로우 컨트롤 명령어(flow control command)를 상기 반복되는 패턴의 시작 부분과 끝 부분에 삽입하고,
    미리 정의된 조건 제어 표현이 나타나면, 상기 조건 제어 표현에 대응하여 미리 정의된 플로우 컨트롤 명령어로 대체하는 리플레이 스크립트 생성부를 더 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  9. 제 1 항에 있어서,
    상기 리플레이 스크립트에 포함되는 변수에 특정 값을 설정하는 기획 데이터부를 더 포함하고,
    온라인 게임 기획자는 상기 기획 데이터부를 통하여 상기 리플레이 스크립트에 포함되는 변수에 설정되는 값을 변경하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  10. 제 1 항에 있어서,
    상기 스크립트 머신부는 게임 클라이언트에서 수행되는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이터.
  11. 온라인 게임 서버를 테스트 하기 위한 시뮬레이션 방법에 있어서,
    온라인 게임 서버가 온라인 게임을 테스트 하기 위해 게임 플레이를 패킷 레벨에서 레코딩 한 파일인 리플레이 데이터를 적어도 하나 이상의 변수 및 제어 명령어를 사용하여 변조한 리플레이 스크립트를 적어도 하나 이상 생성하는 제 110 단계; 및
    온라인 게임 서버가 상기 생성된 리플레이 스크립트를 하나 이상의 게임 클라이언트로 제공하는 제 120 단계;를 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  12. 제 11 항에 있어서,
    상기 제 120 단계 이후, 상기 리플레이 스크립트에 포함되는 변수에 특정 값을 설정하는 제 130 단계;를 더 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  13. 제 11 항에 있어서,
    상기 제 110 단계에서, 온라인 게임 서버는 상기 리플레이 데이터를 파싱(parsing)하여 상수 값을 검출하되, 검출된 상수 값의 유형에 따라 상기 상수를 그에 대응하는 변수로 대체함으로써 리플레이 스크립트를 생성하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  14. 제 13 항에 있어서,
    상기 제 110 단계에서, 온라인 게임 서버는 상기 변수 값이 제 1 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 1 스크립트를 생성하고, 상기 변수 값이 제2 값일 때의 유저의 게임 플레이를 스크립트화 하여 제 2 스크립트를 생성하며, 상기 제 1 및 제 2 스크립트를 비교하여 상기 변수 값의 변동에 따라 값이 달라지는 스크립트 변수를 추출하고, 상기 변수 값에 따라 상기 스크립트 변수 값이 자동으로 변경되는 리플레이 스크립트를 생성하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  15. 제 13 항에 있어서,
    상기 제 110 단계에서, 온라인 게임 서버는 상기 변수 값을 지정된 범위 내에서 연속적으로 변화시킬 수 있는 제 1 커맨드를 지정하고, 상기 변수 값이 변화될 수 있는 범위를 지정하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  16. 제 11 항에 있어서,
    상기 제 110 단계에서, 온라인 게임 서버는 상기 리플레이 데이터를 파싱하여 미리 정의된 표현이 검출되면, 플레이어 캐릭터의 움직임을 제어하기 위한 복수의 AI(Artificial Intelligence) 명령어 중 상기 미리 정의된 표현에 대응하는 AI 명령어로 대체하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  17. 제 16 항에 있어서,
    상기 제 110 단계에서, 온라인 게임 서버는 상기 미리 정의된 표현에 대응하는 AI(Artificial Intelligence) 명령어를 특정 시간에 랜덤 상수를 곱한 것으로 대체하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  18. 제 11 항에 있어서,
    상기 제 110 단계에서, 온라인 게임 서버는 상기 리플레이 데이터를 파싱하여 미리 정의된 패턴이 반복되면 이를 반복하여 수행 가능하게 하기 위한 플로우 컨트롤 명령어(flow control command)를 상기 반복되는 패턴의 시작 부분과 끝 부분에 삽입하고,
    미리 정의된 조건 제어 표현이 나타나면, 상기 조건 제어 표현에 대응하여 미리 정의된 플로우 컨트롤 명령어로 대체하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
  19. 제 12 항에 있어서,
    상기 제 130 단계 이후,
    상기 온라인 게임 서버가 상기 하나 이상의 게임 클라이언트에 의한 리플레이 스크립트 수행을 모니터링 하는 제 140 단계;를 더 포함하는 것을 특징으로 하는 리플레이 스크립트를 이용하는 시뮬레이션 방법.
KR1020120027762A 2012-03-19 2012-03-19 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법 KR20130106114A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120027762A KR20130106114A (ko) 2012-03-19 2012-03-19 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120027762A KR20130106114A (ko) 2012-03-19 2012-03-19 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법

Publications (1)

Publication Number Publication Date
KR20130106114A true KR20130106114A (ko) 2013-09-27

Family

ID=49454174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120027762A KR20130106114A (ko) 2012-03-19 2012-03-19 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법

Country Status (1)

Country Link
KR (1) KR20130106114A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978261A (zh) * 2014-04-03 2015-10-14 腾讯科技(深圳)有限公司 应用程序的测试方法、装置及系统
CN112650474A (zh) * 2020-12-18 2021-04-13 咪咕互动娱乐有限公司 控制脚本生成方法、装置、网络设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978261A (zh) * 2014-04-03 2015-10-14 腾讯科技(深圳)有限公司 应用程序的测试方法、装置及系统
CN112650474A (zh) * 2020-12-18 2021-04-13 咪咕互动娱乐有限公司 控制脚本生成方法、装置、网络设备及存储介质
CN112650474B (zh) * 2020-12-18 2024-03-22 咪咕互动娱乐有限公司 控制脚本生成方法、装置、网络设备及存储介质

Similar Documents

Publication Publication Date Title
US8762113B2 (en) Method and apparatus for load testing online server systems
CN107943707B (zh) 行为树的测试方法、装置和存储介质以及终端
US9465718B2 (en) Filter generation for load testing managed environments
Iftikhar et al. An automated model based testing approach for platform games
CN107861862A (zh) Ui自动化测试方法、装置及计算机可读存储介质
Guttenbrunner et al. A measurement framework for evaluating emulators for digital preservation
Lovreto et al. Automated tests for mobile games: An experience report
KR20220086873A (ko) 숙련도 조절이 가능한 npc 생성 장치 및 방법
AU2022203306A1 (en) Computerized gaming system and method of operating thereof
CN112633501A (zh) 基于容器化技术的机器学习模型框架的开发方法与系统
KR20130106114A (ko) 리플레이 스크립트를 이용하는 시뮬레이터 및 그 방법
Cho et al. Online game testing using scenario-based control of massive virtual users
Cho et al. Scenario-based approach for blackbox load testing of online game servers
Pereira et al. Cloud based IOPT Petri net simulator to test and debug embedded system controllers
CN104572244A (zh) 仪器仿真的方法
JP6959624B2 (ja) セキュリティアセスメントシステム
CN113610242A (zh) 数据处理方法、装置和服务器
CN109992467B (zh) 交互式应用产生的数据的解析方法和系统
CN111600959A (zh) 一种内网客户端的测试数据生成方法及装置
CN115129323B (zh) 数据资源包的处理方法、装置、设备和存储介质
Cope A Common Automation Framework for Cyber-Physical Power System Defense
KR101978403B1 (ko) 부하 발생 장치, 이의 동작 방법, 및 이를 포함하는 성능 테스트 시스템
Tuovinen Mobile game test automation with image recognition
Porion Behavioural comparison of test and field executions of video games
CN115934526A (zh) 一种应用级物联网固件仿真执行方法及系统

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination