게임의 수학
법칙
청소년은 물론, 20~30대 사이에서 가장
인기 있는 게임을 꼽으라면 단연 온라인 게임 ‘롤(LOL, 리그 오브 레전드)’이다. 롤은 주로 다섯 명씩 한 팀을 이룬 두 팀이 각기 다른
역할과 능력을 가진 챔피언을 소환해, 다양한 전장에서 대결을 펼치는 팀플레이 게임이다. 게임 플레이어는 118명의 영웅 캐릭터(챔피언) 중 한
명을 선택해 게임에 참여하는데, 팀원들과 힘을 합쳐 상대방의 넥서스(본부)를 먼저 파괴하면 승리를 거둔다.
대결
상대를 정하는 방법에 수학이 있다!
컴퓨터는 승률이 같은 게임 플레이어를 찾을
때 수학으로 설계된 알고리즘을 활용하기도 한다. (GIB)
롤의 특징 중 하나는 리그 시스템이다. 게임
플레이어의 실력에 따라 브론즈, 실버, 골드, 플래티넘, 다이아몬드, 챌린저 순으로 나눠 놓은 것으로, 챌린저를 제외한 각각의 등급은 다시
5단계로 나뉘어 있다. 등급을 올리기 위해서는 반드시 랭크게임을 치러야 하는데, 여기에서 수학이 쓰인다.
출처 (GIB)
랭크게임은 현재 단계에서 100점을 더
얻으면 치를 수 있으며, 무조건 컴퓨터가 대결 상대를 결정한다. 두 플레이어의 승률이 각각 50%가 되도록 맞춰줘 실력을 공정하게 평가하기
위해서다. 팀 랭크게임에서도 두 팀의 승률이 50대 50이 되도록 대결 상대를 골라 준다.
그렇다면 컴퓨터는 승률이 같은 게임
플레이어를 어떻게 알아낼까? 바로 최근 게임 내역을 토대로 ‘MMR’이라고 불리는 매치메이킹 점수(Matchmaking Rating)을 매기기
때문이다. MMR은 미국의 수학자이자 물리학자인 아르파드 옐로가 고안한 점수체계인 ’옐로 점수‘를 변형한 것이다.
옐로 점수는 체스 실력을 나타내기 위해
고안된 것으로, 상대방에 비해 내 실력이 어느 정도인지를 수치로 나타낸다. 기본 원리는 자기보다 점수가 높은 사람과 대결해서 이기면 점수가 많이
오르고, 지면 점수가 조금 떨어지는 것이다. 반대로 자기보다 실력이 낮은 사람과 대결해서 이기면 점수가 조금 오르고, 지면 많이
떨어진다.
옐로 점수는 1200점부터 시작한다. 그
뒤로는 로그함수로 증가하기 때문에 점수가 올라가면 올라갈수록 점수를 올리기 힘들어진다. 또 옐로 점수가 몇 점인지에 따라 두 게임 플레이어의
승률을 구할 수 있다. 100점 차이가 나면 64 대 36, 200점 차이가 76대 24이고, 735점 이상 차이가 나면 점수가 높은 사람이 질
확률은 0이 된다.
그런데 옐로 점수에는 단점이 있다. 시간이
지나면 평균점수가 너무 높아진다는 것이다. 이 때문에 체스에서는 1200점 이하로 점수가 떨어지면 더 이상 점수를 매기지 않는 방법으로 단점을
극복하고 있다. 사실 롤에서도 2012년까지 옐로 점수 방식을 그대로 사용했으나, 이런 단점 때문에 현재는 변형해서 사용하고
있다.
게임
규칙 정하기는 수학 증명과 닮았다?!
게임 디자인은 게임 개발의 가장 기초
단계다. 개발자들은 때때로 고양이가 생쥐를 잡아먹기 위해 생쥐 뒤를 쫓는 것과 같이 일반적인 현상을 게임의 규칙으로 활용하기도 한다.
(GIB)
게임을 개발하기 위해서 가장 먼저 하는 일은
게임 디자인이다. 게임의 모양새와 규칙을 구체적으로 정해 프로그래머가 실제 게임으로 만들도록 체계화 하는 작업이다. 게임 디자인에서 가장 중요한
작업 중 하나는 게임 규칙 정하기다. 일반적으로 캐릭터들의 관계를 통해서 게임의 규칙을 만드는데, 논리적으로 모순이 없어야
한다.
개와 고양이, 생쥐, 치즈를 주인공으로 직접
게임을 디자인해 보자. 먼저 캐릭터들 사이에 어떤 관계가 있는지 정해야 한다. 네 개의 캐릭터 사이에는 이미 우리가 알고 있는 관계가 있다.
서로 쫓고 쫓기는 관계라는 것이다. 쥐는 좋아하는 치즈를 먹기 위해 치즈가 있는 곳으로 가고, 고양이는 생쥐를 잡아먹기 위해 생쥐 뒤를 쫓는다.
개는 앙숙인 고양이가 생쥐를 잡지 못하도록 방해하기 위해 고양이를 추격한다.
이제 게임의 규칙을 만들어 보자. 처음부터
규칙을 정하려고 하면 막막하기만 하다. 따라서 몇 가지 원칙을 세운 뒤 여기서 벗어나지 않는 세부 규칙을 정한다. 여기서는 ‘서로를 쫓아다니지
못하도록 배치하자’라는 원칙을 세우자. 그러면 다음과 같은 규칙을 생각할 수 있다.
➊ 개와 고양이는 서로 옆에 있으면 안
된다.
➋ 고양이와 생쥐는 서로 옆에 있으면 안
된다.
➌ 생쥐와 치즈는 서로 옆에 있으면 안
된다.
이를 실제 게임으로 구현하기 위해서는
동물들을 가둘 공간이 필요하다. 따라서 몇 개의 칸으로 나눠진 우리를 만들고 개, 고양이, 생쥐, 치즈의 수를 정해 적절히 배치하는 게임을
설계한다. 난이도에 따라 이런 게임판을 60개 정도 만들고, 게임에 집중할 수 있도록 이야기를 만든 다음 게임 이름을 지어 준다. 이 내용을 잘
정리해 문서로 작성하면 게임 디자인이 끝난다. 그리고 스마트폰에서 동작하도록 프로그래밍하면 모바일 게임이 완성된다.
게임의 규칙을 정해놓고 나면 별거 아닌 것
같지만, 아무것도 없는 상태에서 규칙을 만들기란 쉬운 일이 아니다. 고도의 논리력을 요구한다는 점에서 규칙 정하기는 수학의 증명과 서로 많이
닮았다.
출처 (GIB)
게임의 세계에서 디자인부터 개발, 운용까지
수학이 쓰이지 않는 데가 없다. 수학을 알면 게임의 법칙을 이해하고 ‘승리 전략’을 세우기도 유리하다. 이참에 게임 고득점을 위해 수학 공부를
시작해 보는 건 어떨까.
필자 소개 /
조가현
국내 유일의 수학 잡지
<수학동아>기자다. 최신 수학 연구를 대중에게 쉽게 소개하고, 수학을 주제로 재미와 감동을 주는 글을 쓰기 위해 노력하고
있다.
글_
조가현
출처_
사이언스올