본문 바로가기

도서관

게임 로그(Game Log)의 구성과 분류 - 분석 업무 기초 (Fun QA 등)


게임을 분석하기 위한 한 방법으로
게임 로그를 사용할 수 있습니다.

최근의 게임QA 입사지원 동향을 살펴보면,
Fun QA 쪽에 대한 관심이 증가하고 있는것 같습니다.

Fun QA 에서는 게임 내용을 직접 분석하기도 하지만,
게임 로그를 통해 주장의 근거 자료를 확보하는 경우가 종종 있습니다.

게임 로그가 어떻게 구성되어 있는지,
게임 로그를 설계하는 관점에서 살펴보겠습니다.

※ 게임 로그는 QA 보다는 운영(GM)에서 사용하는 빈도가 더 높은 편입니다.
    유저의 문의를 처리하기 위해서는, 로그를 추적하고, 해석하는 능력이 필요하고,
    로그에 대한 활용 경험도 개발보다 운영쪽이 더 풍부하기 때문에
    구현 단계에서, 운영팀이 직접 참여 하거나 의견을 제시하는 경우가 많습니다.





1. 기록 단계별 분류

- 게임 로그는 DB에 쌓이는 것이기 때문에, DB Machine의 시스템 제약을 받습니다.
   MMORPG는 동시에 수많은 액션이 발생하므로, 데이터 테이블을 여러 개 연결하는 작업이 많아지면,
   데이터 적재시 동시처리에 지연을 가져올 수 있습니다.

- 그래서 게임 로그는 게임서버에서 얻을 수 있는 단순한 정보를 남기고 (원본 로그)
   이를 다시 사람이 판별하기 쉽도록 변경하고, 여기에 부가정보를 더하는 과정을 (표준화 로그) 거치게 됩니다.

※ 최근에 개발된 게임들은, 별도의 재가공 없이 로그를 바로 읽을 수 있도록,
    표준화 로그 형태로 작업이 많이 이루어 지고 있습니다. 



2. 발생시간과 기록시간의 동시성에 따른 분류

A. 액션로그
- 액션이 발생할 때, 그 즉시 남는 로그를 액션로그라 하며, 대부분의 게임 로그는 여기에 포함됩니다.
- 액션로그는 액션의주체 + 액션정보 + 부가정보로 구성 됩니다.
   아래는 액션로그의 예제 입니다.

데이터

로그이름

로그분류

로그주체

서버 다운 내역

server close

시스템

server

계정 플레이 타임

account login

게임

server

account logout

게임

server

캐릭터 플레이 타임

character login

게임

server

character logout

게임

server

클래스별 캐릭터 생성

character create

게임

server

레벨 업

character levelup

게임

server

아이템별 사용빈도

character takeon con

게임

DB

개인상점 거래품목

character trade

게임

server

아이템 생성

item create

게임

server

아이템 습득

character get

게임

server

아이템 드랍

character drop

게임

server

아이템 소비

character useitem

게임

server

아이템 소멸

item delete

게임

server

아이템 거래

Item trade

게임

server

아이템 강화

character enchant

게임

server

캐릭터 killed

character killed

게임

server



B. 히스토리로그
- 게임의 변동내역을 쉽고 빠르게 알아볼 수 있도록 하기 위하여, 일정한 주기로 현재의 상태를 기록하는 로그를 말합니다.
- 히스토리로그는 시간 + 기록하고자하는정보 로 구성 됩니다.
   아래는 히스토리로그의 예제 입니다.

데이터

로그이름

로그분류

로그주체

동시접속자수

server user

시스템

server

서버 상태 내역

server ping

시스템

DB

클래스별 캐릭터 분포 전체

character class all

시스템

DB

클래스별 캐릭터 분포 접속중

character class con

시스템

server

아이템별 총 수량

item all

시스템

DB

지역별 로그인 정보

account login

게임

server

계정정보

결제정보

클래스별 로그인 정보

character login

게임

server

계정정보

결제정보

서버인원 통계

account login

게임

server

character login

게임

server

계정정보

결제정보

불량이용자 통계

admin ban

게임

server

계정정보




3. 액션별 상세 분류

- 액션 주체에 따라 시스템로그, 캐릭터로그, NPC로그(캐릭터가 주체가 아니면서 시스템로그가 아닌 모든 액션들) 로 분류를 나눕니다.

- 게임서버나 DB의 설계에 따라 적재할 수 있는 구체적인 데이터의 항목은 제한 될 수 있으므로,
   실제 로그의 구현은 상황에 따라 case by case 로 진행하게 됩니다.
   아래는 액션별 로그의 예제 입니다.

A. 시스템 로그
 server start : 서버시작시 남는로그
 server close : 서버비정상 종료시 남는로그
 server user : 동시접속자를 일정주기로 체크하는 로그
 server ping : 서버의 응답시간을 일정주기로 체크하는 로그
 character class all : 캐릭터 클래스의 총 숫자를 종류별로 일정주기로 체크하는 로그
 item all : 아이템의 총숫자를 종류별로 일정주기로 체크하는 로그
 character class con : 현재 접속중인 캐릭터들의 클래스 비율을 일정주기로 체크하는 로그
 character takeon con : 현재 접속중인 캐릭터들의 착용 아이템을 일정주기로 체크하는 로그

B. 캐릭터 로그
 account login : 접속자의 정보를 확인하는 로그 (ip, play time포함됨)
 account logout
 character create : 캐릭터 생성을 확인하는 로그
 character delete
 character login : 캐릭터의 로그인을 확인하는 로그
 character logout
 character lovelup : 캐릭터의 레벨업을 체크하는 로그
 character get :  아이템을 줍는 로그
 character drop
 character buy : 아이템을 상점에서 사는 로그
 character sell : 아이템을 상점에 파는 로그
 character trade : 개인상점 등 교환로그
 character upgrade : 아이템을 업그레이드 하는 로그
 character enchant
 character useitem : 소모성 아이템을 소모하는 로그
 character killed : 전투에 의해 캐릭터가 죽는로그
 admin : 운영자 명령어에 대한 로그

C. NPC 로그
 item create : 아이템을 생성하는 로그 (보통은 몬스터가 drop함)
 item delete
 monster create : 몬스터가 생성될때 남는로그
 monster killed




- 로그의 기록은 게임의 진행 상태를 가장 잘 표현할 수 있는 방법으로 이루어 져야 하므로,
   6 하원칙에 근거하야 작성 하게 됩니다.

- 그런데, 실제 게임에서는 액션의 대상이 존재하므로, 6 하원칙에 "대상" 을 추가하여 총 7 가지 기준이 필요 합니다.

※ 예제로 제시된 로그는, 전체 내용이 다 기재된 Full Log 입니다.
    그러나, 실제 게임로그는 이런 Full Log 보다는, 최소한의 정보만을 기재한 Short Log 로 표시하는 경우가 많습니다.

    예를 들어, 위 로그는 Short Log 형태로는 아래와 같이 표현됩니다.
    >> 2012-01-01 00:00:01, 길동형님, get, money, 2163153, 150
    (이 이외의 다른 정보들은 DB 를 참조하여 조회할 수 있으므로, Short Log 에서는 표현하지 않습니다)



게임QA 입장에서, 업무 영역을 확장하지 않는다면,
게임 로그를 이렇게까지 자세히 알 필요는 없습니다.

다만, 로그에 대한 이해가 높아지면,
좀더 다양한 방법으로 유저의 동향을 분석해 낼수 있게되고,
이러한 분석이 FQA(Fun QA) 나, DQA(Data analysis QA) 로 이어지는데 큰 도움이 될 것입니다.

※ Fun QA 는 게임 분석과 로그 분석을 병행하고 있고,
    Data analysis QA 는 로그 분석에 좀 더 특화 되어 있습니다.