2013년 2월 2일 토요일

Game에서 통계의 의미?

 통계는 Game을 기획하는 단계에서 가장 고려가 되지 않는 부분이지 않을까 해서 Server 개발자로서 기획에 바라는 Game에서 통계의 이야기를 해 보기로 한다.


 1. 통계에서 중요한 것은 핵심 요소 이다.

Game에는 다양한 요소가 어우러져서 이루어집니다. User, Rule, Character, Play, Money, Manage 등 Game 장르 나 플랫폼에 따라서 각각 다른 중요도를 띄게 됩니다. 통계를 먼저 요구할 때는 이 중에서 어느 것을 핵심 요소로 삼아서 다른 요소를 끼어 맞출 것이냐가 전제가 되어야 합니다.
 예를 들어서, RPG Game이라면 실제로 User는 Character에 의존해서 Game을 진행합니다. 그렇기 때문에 User의 Game Pattern을 분석하고 싶다면, Character를 핵심으로 해서 통계를 작성함으로써 User가 Character를 어떻게 Play하고, 어떤 Rule은 존중하고 어떤 Rule은 무시하는지 알 게 됨으로써 새로운 Rule을 만들고, 그 Rule을 Character에 어떻게 적용함으로써 재미 요소를 끌어낼 것인지 결정할 수 있게 됩니다.
 이렇게 운영되고 있는 Game의 재미 요소를 극대화하기 위해서 필요한 것이 통계라는 점을 고려한다면, 어떤 것을 핵심 요소로 삼아야 하는 지에 대해서는 기획 단계에서 먼저 고민을 해 주는 것이 맞지 않을까?
-핵심 요소만 부각시키고 나머지 요소를 낮추어서 보겠다는 이야기가 아니라, 핵심 요소를 기반으로 해서 다양한 요소를 통계로 묶어서 보여주겠다는 이야기라는 점을 인식해야 합니다. 경제나 사회 쪽에서 사용하는 통계 툴처럼 다양성을 모두 고려한 통계 작업을 진행하는 것은 Game에서는 어렵습니다. 대신 사용자가 어떻게 Game을 하는 지 Data를 수집하는 것은 매우 쉬운 일이니 이를 바탕으로 해서 Game 기획과 System을 개선해 나갈 수 있다면 가장 좋은 모범이 되지 않을까 싶다. 


 2. 통계에서 불변의 요소는 바로 시간이다.

인간도 시간에서 자유롭지 못하듯, Game도 시간에서 자유로울 수는 없다. User마다 Game에서 제공되는 시간이 다르다면, User간의 교류는 불가능하게 될 수 밖에 없다. 또 System에서 시간에 따라 User에게 제공되는 결과도 모두 다르게 인식된다는 것을 의미 한다.
통계에서도 마찬가지 이유로 시간은 불변의 것으로 취급받아야 한다. 시간을 중심으로 해서 변화되는 요소를 확인하고자 하는 통계라면, 그 대상에 대해서 시간은 동일한 규칙으로 작용되어야 한다. 동일한 규칙이 아니라면 혼돈으로 가득차게 되어서 결과적으로 모든 행위가 의미가 없어지게 될 것이기 때문이다.
통계에 시간적 혼돈이 개입된다면 통계 자체의 의미가 사라지게 되기 때문에 혼돈을 덜 일으키기 위해서 가장 먼저 해야 할 일이 바로 모든 요소에서 시간은 동일하다라는 것을 확인하는 것부터 시작해야 한다.
기획의 설계 단계에서 시간을 어떤 식으로 다루어야 할 지에 대해서 고민할 필요성은 없지만, 설계가 완료된 시점에서 운영으로 넘어가는 단계에서 시간이 가장 큰 고려 대상이 된다. 설계에서 부각된 요소를 운영에서는 관리 측면에서 점검을 하고, 이를 가능하게 할 수 있는 통계를 요구하게 된다. (개발 입장에서는 설계 단계에서 통계에 필요한 요소를 먼저 언급해 주면 운영 단계에서 논의하는 것이 빠르게 된다.) 고정된 시간 축을 중심으로 어떤 요소에 대해서 통계를 작성해야 할지 결정할 수 있게 된다.


 3.통계가 Server Resource를 소모하는가?

당연히 Program이 돌아가면 System의 Resource를 사용하게 되는 것은 당연하다. 그런데, 통계 때문에 Game을 운영해야 하는 Resource가 부족해진다면 문제가 되지 않을까? 통계와 관련된 작업이 많아진다면 당연히 System을 별도로 배정해야 하는 것으로 해결될 수 있을 것이라고 생각을 많이 한다. 그러나, 통계에 필요한 내용이 작성되는 순간은 Game의 진행 과정에 이루어지기 때문에 이미 Game을 운영하는 Resource에 포함이 되어 있다는 것이다. (보통 통계 결과를 보기 위해서 사용되는 Resource 만을 생각하는데, 통계에 필요한 Data를 작성하는 데 들어가는 Resource에 대해서도 생각을 해야 한다.)
 통계 작성을 위해서 필요한 Data 수집은 주로 Database를 통해서 이루어지게 된다. 통계를 위해서 필요한 특정 요소에 대해서 어떤 식으로 Data를 처리할 지에 대해서 구체적인 사항이 결정이 되어 있다면, Database 수준에서 1차적인 Data 확보가 완료될 수 있다. 그러나, 이 부분에 대해서 구체적으로 결정이 되어 있지 않다면, 통계를 위해서 관계를 만드는 작업이 System의 Resource를 소모할 수 밖에 없게 된다. 통계를 보는 동안 Game 진행에 영향을 줄 수 있는 요소가 발생할 수 있다는 것으로 받아 들여도 된다.
 통계에 반영되어야 할 Data를 Game 진행 과정에 녹이는 것도 Server 개발에서 중요한 요소가 된다는 것을 이해했을 것이다. 아무리 작은 통계라 해도, 그 Data를 만들기 위해서 Database 전반과 System Resource를 할당해야 한다면, 문제가 된다는 것이다.


 4.통계 요소를 개발 완료 후 추가하게 되면?

Server 개발이 완료된 후에 통계에 대해서 추가를 하게 된다면, 경우에 따라서는 기존 개발 내용을 번복하거나 전면적으로 수정해야 하는 일이 발생할 수도 있다는 것이 문제의 핵심이다.
기획에서 해당 통계 자체의 기술적 난이도만 고려해서 추가를 요구하게 된다면, 실제 개발에서 해당 통계 요소를 위해서 Game System에서 건드려야 할 Data와 통계를 위해서 어떻게 가공해야 할 지에 대해서는 면밀하게 고려하지 않은 요구라고 할 수 있다. 기획에 이러한 세세한 부분까지 고려해 달라고 이야기하는 것이 아니라, 통계 요소의 추가를 기획하는 단계에서 기존의 Game System에 대해서 조금 더 이해하고 접근하게 된다면, 현재 요구하는 통계 요소를 위해서 필요한 작업에 대해서 목록이 나오지 않을까?
통계 요소의 추가에 대해서는 신중하게 고려해야 하며, 전체적인 System의 변경까지 고려해 가면서 천천히 진행해야 할 요소이다.


 5. 통계를 보기 위해서 별도의 Tool이 필요한가?

통계 결과가 어떤 형태로 표시되는 가는 관리자나 경영 쪽에서 본다면 중요할 수 있다. 하지만, 유의미한 통계 결과를 보여주는 데 있어서 특별한 Tool은 필요하지 않다고 본다. Web 환경에서 실시간으로 통계를 봐야 한다고 해도, Web 기술로 충분히 진행이 가능하다. 그런 상황에서 별도의 Tool을 고집할 이유는 없다고 본다.
특히 Tool을 통해서 Game Server에 접근하는 것은 System Resource와 보안 측면에서도 그렇게 바람직한 것은 아니다. 다수의 사용자가 원하는 때에 통계에 접근할 수 있게 하는 것도 중요한 요소이기 때문에 Tool로 통계를 만드려고 하기 보다는 Web 환경에서 만드는 것이 더욱 효율적일 수 있다. (보통 Tool을 고집하는 이유는 다수의 사용자에 대해서 편리한 관리를 하고 여기에 통계를 붙이겠다는 생각 때문이다. 그러나, 실제로 Tool을 이용하면 복잡도만 높아질 뿐 절대로 편리한 관리가 이루어지지는 않는다.)


 Game 통계와 관련해서 주저리 주저리 글을 써 보았는데, 업무 진행하면서Architect로서 미리 조언하지 못한 부분도 많이 발견이 되어서 좋은 듯 싶다. 의견이 있으면 내용을 더 추가해 나가야 할 것 같다. (아직은 중구난방, 중언부언도 좀 많기는 하지만, 필요한 글인 듯 싶어서 쓰기 시작했다.)