본문 바로가기

게임 기획/게임 기획자와 시스템 기획(심재근)

[5. 게임 규칙 - 5] 예외 규칙과 세부 규칙

예외 규칙과 세부 규칙

 규칙의 검토와 수정 과정에서

 해당 규칙으로 처리할 수 없는
특별한 경우는

 이를 처리하기 위해 예외 규칙과
세부 규칙을 작성해야 한다.

 두 규칙 모두 특별한 경우를
처리하는 것은 맞지만,

 처리하는 방법이 다르다.

 예외 규칙은,

 일반적인 규칙이 있고,
그 일반적인 규칙으로

 처리할 수 없는 것들만 따로
처리하는 것을 말한다.

 세부 규칙은 일반적인 규칙을
따로 두지 않고,

 각각의 특별한 경우들을
하나씩 처리한다.


 예외 규칙은,

 한 규칙(일반적인 규칙)을 통해
대부분의 경우를 처리할 수 있지만,

 특정한 경우는 다른 규칙을
적용해야 하는 경우에 만들게
된다.

 즉, 규칙과 관련한 내용 중에
상당 부분을

 '일반화'할 수 있는 경우에
예외 규칙을 만든다.

 예외 규칙은 완성된 규칙을
가지고

 게임이 작동하던 도중, 발생한
문제를 해결하기 위해 만들어
지기도 한다.

 '문제를 일으키는 상황'을
예외로 두고 따로 처리를
하는 것이다.

 다음 규칙을 보자.

  • 아이템을 팔면 해당 아이템에 지정된 판매 보상을 지급한다.

 이 규칙을 통해 아이템을 파는
행위를 다 처리하고 있는 도중에,

 유저가 실수로 귀중한 아이템을
파는 경우를 처리해야 한다고
가정해보자.

 이런 경우, 파는 아이템의 종류는

 대부분 일반 아이템과 소수의
귀중한 아이템으로 나뉘게
된다.

 따라서 귀중한 아이템을 파는
것에 관한 추가 규칙은

 다음과 같이 예외 규칙으로
다루는 것이 좋다.

  • 아이템을 팔면 해당 아이템에 지정된 판매 보상을 지급한다.
  • 만약 파는 아이템이 귀중한 아이템이라면, 팝업창으로 의사를 물어보고 판매를 진행한다.

 그 외에도 미래에 일어날
가능성이 있지만

 현재는 필요 없는 것들도
예외 규칙으로 작성해두는
것이 좋다.

 AOS 전장의 맵 오브젝트와
관련된 규칙을 만들고 있는
도중에

 점령전 전장의 맵 오브젝트와
관련된 규칙이 떠오를 수도 있다.

 점령전 정장이 게임상에 도입될지
여부는 알 수 없지만,

 상당히 가능성이 높고,

 이에 대해 특별한 처리가 필요한
기능이 있을 수 있다.

 이런 경우 해당 처리와 관련된
규칙을 예외 규칙으로 작성한 뒤,

 당장 규현하지는 않는 것으로
결정하면 된다.


 예외 규칙은 세부 규칙보다
작성하기가 편하다.

 모든 경우를 따져보고 작성해야
하는 세부 규칙에 비해,

 일단 규칙을 작성한 다음에
예외들만 따로 처리하는 것이
편하기 때문이다.

 또한 개발자들에게 규칙을
구현하는 데 있어

 중요도와 확장성에 대한
힌트를 주기 때문에,

 뒤에 가서 규칙을 첨삭하기에
좀 더 용이해진다.

 '아이템을 팔면 재화를 지급한다.
특정 아이템들은 팔았을
때 예외로 다르게 처리한다.'

 라고 규칙을 정해놓으면,

 개발자는 판매와 관한 예외를
처리할 수 있도록 확장성을
고려해 놓은 것이다.

 예외 규칙 없이 전달했다면,
개발이 끝난 이후에

 판매와 관련한 예외를 추가해
달라고 요청했을 때

 개발자가 난색을 표할 수 있다.


 세부 규칙은 규칙의 적용
대상들이 여러 경우로 나뉠 때,

 각 경우에 대한 규칙을
만드는 것을 말한다.

 예외 규칙은 일반적인 규칙이
적용되는 상황에 대비되는

 예외 상황을 처리하기 위함이라면,

 세부 규칙은 각 상황들을
잘 분류해서 각각을 처리한다.

 예외 규칙이 임시방편 같은
느낌이 나는 것과 달리

 세부 규칙은 꽉 짜인 느낌이
들게 해준다.

 세분화된 규칙들은 중복되는
부분이 있는데,

중복되는 부분이 전혀 없는 세분화된 규칙들은 그냥 다른 규칙일 뿐이다.

 이 내용들은 상위 규칙에서
다루도록 한다.

 이렇게 공통 내용을 상위
규칙에서 다루게 되면,

 세부 규칙은 일반화된 개념들에
대한 상세한 명세처럼 정리된다.

 포커의 '카드 패의 조합'이라는
일반화된 개념들에 대한

 세부 규칙은 각각의 조합들을
설명하는 것이다.

 즉 세부 규칙은 계속적으로
규칙을 쪼개면서 작성하는
것이라고 보면 된다.

 단, 규칙들이 쪼개질 때는
반드시 동일한 개념에 대해서
쪼개져야 하며,

 일반화된 상위 규칙에서부터
나오는 세부 규칙들은 동등한
입장이다.


 <스트리트 파이터 4>와 같은
1:1 대전 격투 게임이

 2:2로 바뀐 형태의 게임을
기획한다고 가정해보자.

 이때 아군 플레이어가 적
플레이어 한 명을 잡아서
넘어뜨리는 도중에

 내가 그 적 플레이어를
승룡권으로 띄우면 어떻게
될까?

 1:1인 경우에는 넘어지기
액션이나 띄워지기 액션을
할 때

 다른 액션을 유발하는 간섭을
받지 않기 때문에

 다음의 2개의 규칙만으로도
충분하다.

  • 잡기 공격이 적중하면 피격 캐릭터는 넘어지기 액션을 하며,
    이 액션은 피격자가 취소할 수 없다.
  • 띄우기 공격이 적중하면 피격 캐릭터는 적중 당한 곳에서 띄워지기 액션을 하며,
    이 액션은 피격자가 취소할 수 없다.

 하지만 2:2가 되면 이 2개가
맞물렸을 때

 대상 캐릭터의 액션을
어떻게 적용해야 할지
애매해진다.

 이런 상황을 처리하지 않고
놔두면,

 파일드라이버로 대상을
잡는 중간에

 승룡권이 적용되어 떠오르면서
우스꽝스럽게 보이게 될 것이다.

 그렇다면 2명의 플레이어가
순차적으로

 대상 캐릭터의 애니메이션
상태를 바꾸는

 이런 상황을 해결하기 위해서
규칙을 어떻게 만들어야 하는가?


 이를 처리하기 위해 '잡기'와
'띄우기'가 적용되는 순서를

 여러 상황으로 나누어
생각해보자.

 즉, '잡기 → 띄우기' 상황과
'띄우기 → 잡기' 상황과 같이

 각각의 경우를 나누어서
규칙을 정하면

 다음과 같이 처리가 가능하다.

  • 잡기 → 잡기 상황 처리 규칙
  • 잡기 → 띄우기 상황 처리 규칙
  • 띄우기 → 잡기 상황 처리 규칙
  • 띄우기 → 띄우기 상황 처리 규칙

 

세부 규칙 작성에 관한 발상의 전환

 세부 규칙을 작성할 때
지나치게 많은 경우가
나오게 되면,

 발상의 전환이 필요하다.

 앞서 예로 든 캐릭터의 강제
상태 변화가 중첩되는 상황에서

 '기절기'라는 상태 변화 조건이
추가되었다고 생각해보자.

 이 경우, 발생할 수 있는
상황의 종류가 27가지가 된다.

3x3x3, 총 27가지의 상황이 존재한다.

 상태 변화 조건이 하나씩
늘 때마다

 기하급수적으로 늘어나는
상황의 총 가지수를 생각하면,

 세부 규칙을 가지고 처리하기가
여간 까다로운 일이 아니다.

 또한 하나의 상태 변화 조건이
바뀌면

 규칙 모두를 수정해야 하기
때문에 번거롭다.


 이럴 때는 상활별로 처리하기
보다는

 다른 관점이나 가치를 도입해서
이런 문제를 풀 수도 있다.

 즉 '점수'나 '우선순위'라는
개념을 도입해서 해결할 수
있다.

 앞의 예시에 대해 다음의
우선 순위 선언을

 하나 추가해보자.

  • 대상의 애니메이션 상태를 강제로 변화시키는 조건이 중첩될 경우, 원래 강제 변화 조건의 우선순위와 비교해 같거나 높은 우선 순위의 조건만 적용시킨다.
  • 잡기의 우선 순의 = 2
  • 띄우기의 우선 순위 = 1

 이 우선 순위를 적용하면

 잡혀서 넘어지기 액션을
하는 도중에,

 띄우기 판정을 받더라도
띄워지기 액션은 하지 않게
된다.

 반대로 띄워지기 액션을
하는 도중에 잡기 공격을
받으면

 띄워지기 액션을 취고하고
넘어지기 액션을 하게 된다.

 동일한 액션으로 변화하면
다시 적용된다.


 이렇게 우선 순위를 통해 규칙
간의 충돌을 처리하게 되면,

 '기절기'와 같은 다른 변화
조건이 추가되더라도

 쉽게 처리할 수 있다.

 만약에 우선순위 적용이 여의치
않은 규칙이 등장하게 되면,

 이에 대한 예외 규칙을 작성해
처리할 수 있을 것이다.


참고 및 출처

게임 기획자와 시스템 기획
국내도서
저자 : 심재근
출판 : 에이콘출판사 2016.07.12
상세보기