인지요소 상세 명세
인지요소 열거가 끝나면 각각의
인지요소들을 상세 명세한다.
인지요소 명세는 개념과 동작원리,
데이터에 대한 설명으로 구성된다.
이 중 개념과 동작원리는
인지요소 명세에
필수적으로 표함되어야 하는
내용이다.
반면 데이터는 시스템이나
인지요소의 성격에 따라
명세가 필요하지 않을 수도
있다.
콘텐츠 제작을 위한 시스템과
같은 경우는
오히려 데이터 설명이 매우
중요하다는 점을 알아두자.
인지요소 하나를 상세 명세하는
것은 작업량이 많지 않지만,
시스템을 구성하는 인지요소의
양이 상당하기 때문에,
인지요소 명세의 전체 작업량은
굉장히 많다.
개발자가 상세 명세를 보고 구현을
하기 때문에,
꼼꼼하게 작성해야 하고, 또한
개발자가 봤을 때
필요한 내용을 담는 것도 필요하다.
양이 많은데, 내용 마저 딱딱하기
때문에, 가독성에 유의해야 한다.
특히 문서의 형식에 대해 기획자와
개발자의 기호가 다를 수 있으므로,
형식에도 주의를 기울이도록 한다.
인지요소의 개념
인지요소의 개념은 인지요소의
정의와 설명을 뜻하며,
인지요소의 정의는,
말 그대로 인지요소를 규정하는
내용이나 뜻을 보여준다.
뻔한 내용을 적는다고 인지요소를
정의하는 작업을
등한시하는 경향이 있는데, 이는
바람직 하지 않은 자세다.
특히 기획자가 만들어낸 가상의
인지요소가 아니라
실제 존재하는 것을 그대로
차용할 때,
인지요소의 정의를 제대로
내리지 않는 경우가 많다.
예를 들어, '지능은 캐릭터가 똑똑한
정도를 보여주는 수치다.'와 같은
지능에 대한 정의는 뻔한 내용이기
때문에,
이런 정의를 굳이 해야 하는지
의문이 들 수 있다.
하지만 게임이란 현실 게계와는
다른 가상 세계이기 때문에,
이런 정의가 필요하다.
현실에 존재하는 개념과 똑같을
수도 있지만,
기획자의 의도에 따라 무엇인가가
추가되거나 삭제되어 다를 수 있다.
따라서 인지요소의 정의를 명시하는
것을 통해
개념을 한 번 정리하고 넘어가는
것이 좋다.
또한 정의는 인지요소의 다른 개념이나
동작원리의 기획 근거로 사용된다.
'지능'이라는 것이 캐릭터가 기억(사용)할
수 있는 마법의 수와관련이 있다면
납득할 수 있는가?
이는 지능에 대한 정의가, 지능이
가질 수 있는 능력에 대해
개연성을 부여해 주기 때문이다.
정의를 한 뒤에는 인지요소에 대한
구체적인 설명을 하며,
최대한 상세하게 하도록 한다.
자신이 알고 있고 익숙한 인지요소라
하더라도
다른 사람이 반드시 안다고
장담할 수 없다.
게다가 같은 이름의 인지요소라고
하더라도
게임마다 동작하는 내용이 다른
경우가 많기 때문에
자신의 게임의 인지요소가
어떤 것이라고
확실하게 밝히는 것이 좋다.
예를 들어, '민첩성'의 경우
어떤 게임에서는 캐릭터의
이동속도와 연관이 있기도 하고,
어떤 게임에서는 방어력과
관련이 있기도 하다.
그렇기 때문에, 오해가 없도록
'이 게임에서의 민첩성'을
보다 자세하게 설명해야 한다.
시스템을 구현해줄 개발자들은
상대적으로
기획자보다 많은 게임을 경험하지
않았을 가능성이 높기 때문에,
기획자들이라면 대부분 아는
내용도 모를 수 있다.
따라서 인지요소의 개념을
명세할 때는
사소한 것이라도 놓치지 말고
정리하도록 한다.
다른 게임의 참고 자료가 있다면
개념을 파악하기 쉬워지므로,
이런 부가 정보들을 같이
제공하는 것도 좋다.
그 외에 사용된 각종 용어의
설명도 같이 정리하면 좋다.
개념 정리가 쉽게 되지 않을
정도로 복잡한 경우에는
인지요소를 세분화하는 것이
필요하다.
인지요소 하나가 다양하고
복잡한 개념을 가진다면
설명하기도 힘들고, 이해하기도
힘들다.
개념이 복잡하면 동작원리나
데이터 설명을 하는 것도
어려워지기 때문에,
개념을 정리할 때 미리 인지요소를
잘 세분화할 필요가 있다.
예를 들어, '공격력'이라는 스탯에
대한 개념을 정리할 때,
캐릭터의 레벨이 증가할 때마다
수치가 늘어나는 공격력의 개념이
필요할 수도 있다.
캐릭터의 스킬로만 증가하는
공격력의 개념도 필요할 수 있고,
'공격력'하나로 정리하면 내용이
복잡하고,
다양한 개념을 모두 포함하는
공격력을 개발하는 것은 쉽지 않다.
따라서 '공격력', '성장 공격력',
'장비 공격력' 등으로 나눠서
생각하는 것이 좋다.
이런 식으로 인지요소를 명세하는
도중에
새로운 인지요소가 만들어지거나
없어지기도 한다.
인지요소의 동작 원리
동작원리는 인지요소가 게임에서
어떻게 작용하는지를 설명해주며,
개발자가 시스템을 구현할 때
실질적으로 참고하는 내용이다.
개념적인 내용만 가지고는
개발할 수 없기 때문에,
개념 정리 이후에 동작원리를
반드시 정리해야 한다.
개념은 인지요소에 대한 이해를
돕는 내용이고,
동작원리는 실제 개발 명세라고
보면 된다.
예를 들어
카메라 줌은 현재의 카메라 방향으로
이동하는 기능이다.
와 같은 개념 설명만으로는
'카메라 줌' 기능을 구현할 수 없다.
구현하려고 하면 구체적인 내용이
하나도 없기 때문이다.
구현을 하려면
카메라 줌은 캐릭터의 중심점으로부터
카메라의 상대 위치를 계산한 뒤에,
그 상대 위치를 절대값의 비율로 조정한다.
와 같은 동작원리가 필요하다.
동작원리는 자연어로 작성할
수도 있지만,
정확한 동작이 필요한 경우에는
수학 공식의 형태로 많이 정리된다.
동작원리의 내용들 들여다보면
게임 규칙과 유사하며,
어찌 보면 작은 규칙이라고 봐도
무방하다.
동작원리를 작성하는 방법은
규칙을 작성하는 방법과
비슷하기 때문에
이에 대한 내용은 규칙 명세
간계에서 다루도록 하겠다.
카메라 줌 인/아웃 기능을
예시로,
지금까지 설명한 개념 명세와
동작원리 명세에 대해 반추하자.
동작원리를 같이 설명하지 않고는
정리가 힘든 개념을 가졌거나,
개념과 동작원리를 같이 정리해도
복잡하지 않을 정도로
간단한 인지요소들도 있다.
이때는 굳이 개념과 동작원리를
굳이 구분하지 않아도 되며,
문서 형식에 상관없이 내용이
담겨있으면 된다.
민첩성은 캐릭터의 회피율에 영향을 준다.
라는 개념과
민첩성이 1 증가할 때, 회피율이 0.1% 증가한다.
라는 동작원리는 같이 정리
해도 된다.
형식에 집착하지 말고,
내용에 집중하도록 하자.
여러 인지요소들이 비슷한
동작원리를 가지고 있다면
이들을 규칙으로 따로 정리하는
것이 좋다.
그렇게 하지 않으면 여러
인지요소들의 명세에
같은 내용의 동작원리가
정의되며,
이후에 여러 좋지 않은 일들이
일어날 수 있다.
분명히 같은 내용인데 동작원리들
끼리 다르게 정리되어
충돌을 일으킬 수 있다.
처음 정리할 때는 같은
내용이었지만,
내용을 수정할 때 전부 같이
고치지 않으면
서로 다른 내용을 가지게 된다.
또한 시스템 구현에 개발자가
어러 명 관여하게 된면,
개발자가 각각 동작원리를
구현하면서,
같은 기능을 중복으로 구현하는
일이 일어날 수도 있다.
비슷한 동작원리들을 모아서
규칙 정리를 하게 되면
이런 문제를 많이 완화할
수도 있다.
또한 성질이 비슷한 동작원리들을
같이 정리해두면
인지요소에 대한 이해와 개발이
더 용이해진다.
예를 들어 힘, 지능, 민첩성 등과
같은 스탯의 동작 원리는 대채로
비슷하다.
이런 인지요소의 동작원리들을
'스탯 공식'과 같은
규칙으로 정리하게 되면,
이런 스탯들을 총체적으로
이해할 때 도움을 주며,
개발자가 스탯을 구현할 때도
체계적으로 접근할 수 있다.
규칙을 따로 정리하더라도,
인지요소 명세의 완결성과
완성도를 위해,
인지요소 명세에 동작원리를
생략하지 말자.
규칙을 따로 작성했다고 해서
동작원리를 생략하게 되면,
명세를 읽다가 규칙을 보러
다른 문서를 찾아야하는
번거로움이 생긴다.
따라서 규칙을 따로 작성하더라도,
간략하게나마 동작원리를
정리해놓고
규칙을 참조할 수 있도록
하면 좋다.
또한 규칙에 정리된 내용과
인지요소 명세에 있는
동작원리의 내용이
일관성을 갖도록 지속적으로
주의를 기울여야 한다.
만약 동작원리에 수정이
필요하다면,
관련된 규칙과 인지요소
명세를 같이 수정해야 한다.
문서의 일관성을 유지하는
것은
개발 조직 내에 중요한
관리 이슈이기 때문에
무턱대고 규칙을 따로
정히하는 것은 좋지 않다.
여러 동작원리들을 따져보고,
규칙 정리를 하는 것이
좋다고 판단되면,
그때 규칙을 만들도록 하자.
참고 및 출처
|