https://product.kyobobook.co.kr/detail/S000218917446
게임 기획이란 게임을 만들기 앞서 가장 기초적인 단계이다. 1인 개발을 했을 때와 2인 이상의 게임 기획의 의도는 다르다고 생각한다. 내가 작성하는 본문의 내용은 게임 기획 책을 읽고 내 나름대로 정리하고 생각한 1인 게임 개발 기획의 생각 정리이다.
(책 내용을 예시로 한 내용이 있지만, 전부 다 적지는 않는다. 만약 대충 적은 책의 내용들이 흥미롭다면 사서 읽는 것을 추천한다.)
1. 게임 기획이란
게임을 기획할때 여러 가지 기획자가 있다. 시스템 기획, 콘텐츠 기획 등 여러 기획자가 있지만, 1인 개발의 입장에서는 나누는 것이 의미가 없다. 내가 생각한 게임 기획이란 공사할 때 땅을 다지는 역할로 생각된다. 공사를 할 때 가장 오래 걸리고 중요한 역할은 건물을 짓는 것이 아니라 땅을 평탄화하는 과정이다. 땅의 평탄화가 잘 되지 않는다면 나중에 공사를 할 때 사고가 나거나 무너질 수 있기 때문이다. 이와 비교하였을 때 게임 기획이란 것은 평탄화 작업이라고 생각된다. 추상화되어있는 아이디어를 구체화하고 자세하게 적어 남들에게 설명하고 설득하는 역할이라 생각한다. 1인 개발을 한다고 할 때도 마찬가지이다. 작성하고 있는 시점의 나와 나중에 작성된 기획안을 보게 될 나는 다른 사람이라고 생각이 되어, 최대한 세세하게 적는 게 좋아 보인다.
2. 작성 요령
앞서 말했듯 세세하고 자세하게 적는다는 게 '무슨 뜻이냐?' 한다면 예시가 있다. 쿠키런을 예시로 들자면
게임 목표: 쿠키가 젤리를 먹고 오븐을 탈출하는 러닝 게임
이동 규칙: 쿠키가 앞으로 달린다
장애물 규칙: 장애물에 부딪치면 체력이 줄어든다
젤리 규칙: 젤리를 먹으면 점수가 올라간다.
이와 같은 설명은 봤을 때 충분해 보이지만, 프로그래머 입장에서는 다소 부족해 보일 수 있다.
● '앞으로 달린다'가 구체적으로 어떤 방식인가
→ 캐릭터가 실제로 좌표로 움직이며 이동하고, 배경은 고정된 상태인가
→ 배경이 자동으로 이동되며 캐릭터가 정지된 채 달리는 듯 보이는 방식인가
● '장애물에 부딪치면 체력이 깎인다'는 것은 구체적으로 어떤 방식인가
→ 충돌 판정 방식이 무엇인가
→ 동일한 장애물에 연속 충동 시 반복으로 효과가 적용되는가
→ 체력 감소는 어떤 형식으로 적용이 되는가
→ 피격 후 일정 시간 적용되는 무적시간이 있는가? 만약에 있다면 어떻게 작동하는가
올바른 기획서 예시
● 이동 규칙
→ 플레이어 캐릭터를 화면 좌측에 고정하고 달리기 모션을 반복 재생한다
→ 플레이어 캐릭터가 이동하는 것이 아니라 맵이 좌측 방향으로 횡 스크롤되는 구조
→ 스크롤 속도는 캐릭터나 보물의 능력치에 따라 달라져야 한다
→ 플레이 도중 캐릭터와 특정 오브젝트와의 상호 작용으로 속도가 달라져야 한다
● 체력 및 장애물 규칙
→ 체력은 캐릭터의 체력 스테이터스에 따라 초깃값이 결정이 된다
→ 게임 시작 이후 일정한 시간 간격에 따라 체력 값을 지속해서 감소시킨다
→ 감소량 및 감소 속도는 캐릭터나 보물의 능력치에 따라 달라진다
● 젤리 규칙
→ 캐릭터가 젤리 속성 오브젝트에 닿으면 해당 오브젝트를 '획득했다'라고 판정한다 획득한 오브젝트 화면에서 제거된다.
→ 젤리를 획득하면 해당 젤리 오브젝트의 속성에 따라 다양한 효과를 적용받는다 예를 들어 '점수 획득 속성'을 가진 젤리라면 플레이 점수가 누적되고, 체력 회복 속성을 가진 젤리라면 현재 남은 체력에 일정량의 체력을 추가로 부여받는다. 각 젤리의 속성(예: 점수 획득 속성, 체력 회복 속성 등)과 값(예:점수량, 회복량)은 데이터 테이블에서 정의할 수 있어야 한다.
겉모습만 적는 건 기획이 아니라, 작동하지 않는 구상일 뿐
세세하고 자세하게 적는다는 예시이다. 우리가 만약 '카드를 뽑는다'라는 내용이 있다고 가정하다. 이 카드를 어떻게 뽑을 것인가. 댁에서 드로우? 손 패에 있는 카드에서 뽑기? 가챠에서 카드를 뽑기? 와 같이 애매 모호하게 적지 말고,
내 덱에서 카드를 드로우해 내 손패에 가져온다.라는 형식으로 명확하게 적어주는 게 좋다.
만약 내가 게임을 만들다 '무서운 분위기가 좋을 거 같은데?'라고 생각이 든다면 설계로는
→ 맵에 거미줄, 시체, 깨진 유리창, 혈흔 같은 것들을 넣어 시각적인 것들을 조성하자.
라는 형식으로 설계를 해야 한다. 우리는 플레이어가 아닌 설계자의 입장이다. 플레이어 입장에서 생각하지 말고 설계자에 입장에서 항상 생각 후, 어떻게 설계를 해야 할지 생각해야 한다.
좋은 기획서란 '무엇을 느끼게 할 것인가'라는 목표를 명확히 한 뒤, 그 감정을 재현할 수 있는 구조와 수치, 연출 요소로 구체화해야 한다.
3. 기획 의도
기획 의도란 '시스템이 무엇을 달성해야 하는지', '플레이어에게 어떤 경험과 감정을 전달하려는지'를 담은 방향성이다.라는 책의 내용이 있다. 이 내용을 내 나름대로 생각을 해보았을 때 '내가 전달하려고 하는 게임의 요소와 재미는 무엇인지'라고 생각된다. 만약 협동 게임을 만들고 있다고 생각했을 때, '내가 만든 협동 게임만의 재미 요소는 무엇인가?'를 생각해 보면서 만드는 것이 좋다. '다른 협동 게임과의 차별점이 있는가?' '다른 협동 게임과 다른 특별함이 있는가?'와 같은 것들을 생각해 보고 기획서를 작성하고 게임을 만들어 보는 게 좋은 거 같다.
3 - 1 기획 의도가 없는 기획이 위험한 이유
'무엇'을 만들어야 할지보다 '왜' 만들어야 하는지를 모르면 시스템은 유기적인 구조를 갖지 못한다. 단순하게 생각을 해보자. 흔히들 rpg게임에서는 부활이라는 시스템이 있다. 왜 부활 시스템이 있는가?라고 생각하면 간단하다.
내 캐릭터가 죽을 수 있다 -> 그러니 부활 시스템이 필요하다.라고 간단하게 생각할 수 있다. 요지는 '이 시스템을 만들 때 왜 필요한가?'라는 타당성이 필요하다. 만약 적이 없고 내캐릭터가 죽지도 않는데 부활 시스템을 넣는다면 그것은 비효율적이다 라고 볼 수 있다.
4. 기획 의도 설계
모든 기획은 '필요'에서 시작된다. 일일 퀘스트 시스템을 도입하려는 이유가 무엇인지, 즉 '이 시스템은 어떤 문제를 해결하기 위한 것인가?'라는 질문을 통해 문제를 먼저 정의한다.
멀티 게임을 만들때 필요한 문제의 정의지만 나는 멀티 게임을 만들 예정이 없지만 하나 생각이 들게 된 게 있다.
게임을 만들었을 때 불필요한 과정이 있을 수 있다. 예를 들어 메이플이라고 가정한다면 예전 메이플은 검은 마법사라는 보스를 잡을 때 하위 보스들의 재료를 가지고 가 특정 재료로 만들어야 잡을 수 있었다. 지금은 필요하지 않지만, 우리가 봤을 때 '이걸 대체 왜 모아서 해야 하는 거지?'라는 생각이 들 수 있다. 추후에 개선이 되었지만 이러한 경우를 봤을 때, 유저 입장에서 '굳이?'라고 생각되는 것들은 넣지 않는 게 좋다.
5. 시스템 구조화
시스템 구조화는 기능을 단위로 분해해 만드는 것이다.
기능 단위 분해란, 하나의 큰 시스템을 구성하는 기능, 혹은 시스템 내부의 동작 단위를 나누어서 정리하는 것.
우편 시스템을 예로 들어보자. 우편 시스템은 다양한 기능이 있다.
| 주요 기능 | 세부 기능 |
| 우편 발송 | 직접 발송, 시스템 자동 발송, 발송 조건 설정 |
| 우편 수신 | 수신함에 저장, 새로운 우편 알림 |
| 우편 읽기 | 내용 열람, 첨부 아이템 확인 |
| 첨부 아이템 수령 | 수령 조건, 인벤토리 부족 시 처리 방식 |
| 우편 삭제 | 수동 삭제, 자동 삭제(30일 경과시 삭제) |
| 예외 처리 | 시스템 우편은 삭제 불가, 우편 수령 한도 초과 |
이렇게 만드는 것이 기능 단위 분해다. 하나의 시스템을 가지고 세분화시키는 과정이다.
이렇게 만드는 것이 중요하다고 느끼는 점이 프로토타입 게임을 만들 때 느꼈다. 이렇게 기능 단위 분해를 하지 않고 게임을 만들었을 때의 불편한 점은 내가 만들려는 시스템에 대한 확신이 없어, 이것저것 계속 추가를 하다가 결국 코드가 꼬여버리게 된다.
5 - 1 기능 단위로 분해하는 방법
1단계 - 눈에 보이는 기능부터 적기
가장 먼저 플레이어가 직접 할 수 있는 버튼 클릭, 메뉴 선택 같은 '눈에 보이는 기능'부터 나열하자.
● 우편 보내기
● 우편 읽기
● 아이템 받기
● 우편 삭제하기
2단계 - 자동으로 처리하는 기능 적기
플레이어가 직접 수행하지 않아도 시스템이 자동으로 처리하는 기능들을 적어 보자
우편 시스템의 자동 처리 기능
● 시스템이 자동으로 우편 발송
● 우편이 기간 만료로 자동 삭제
3단계 - 작동에 필요한 정보 생각하기
각 기능이 작동하려면 어떤 정보가 필요한지 적어 보자
우편 시스템 작동에 필요한 정보
● 우편에는 보낸 사람, 받는 사람, 내용, 첨부 아이템, 발송 시간 정보가 필요
● 아이템 수령 기능은 인벤토리 공간이 있어야 작동
4단계 - 예외 상황, 실패 상황 적기
기능 단위로 쪼갤 때 특히 중요한 상황은 예외 상황까지 기능 단위에 포함시켜야 한다.
6. 시스템의 구성
시스템을 구성하는 작은 단위들이 어떻게 연결되어 있고, 어떻게 하나의 전체 시스템을 형성하는가. 시스템은 보통
규칙 → 규칙 → 규칙 순서로 이루어져 있어, 이 3개의 규칙으로 동작한다. 단순하게 생각했을 때 식사로 예를 들어보면, 밥을 짓는다 → 반찬을 한다 → 밥을 먹는다 라는 규칙이 있다. 단순하게 보자면 이러한 과정으로 우리는 밥을 먹는다. 만약 이 식사하는 규칙 3개가 엉킨다면 반찬 없이 밥을 먹을 수 있고, 밥을 먹고 밥을 또 지을 수도 있다. 이렇게 시스템 간 유기 관계가 중요하다.
6 - 1 시스템 간 유기 관계 이해 중요도
예시를 하나 들자. 적을 공격한다 → 적을 쓰러트린다 → 이긴다 라는 예시가 있다. 이렇게 단순한 예시에도 여러 가지 시스템 간의 상호 작용이 있다.
● 적을 공격한다
→ 어떻게 공격하는가
→ 공격 대미지는 어떻게 되는가, 적의 방어력에 비례해 대미지가 덜 들어가거나 더 들어가는가
→ 적이 죽는 것은 어떻게 되는가, 막타를 치면 죽는가, 기여도인가
● 적을 쓰러트린다
→ 적도 공격을 하는가
→ 적의 체력이 일정 이하가 내려가면 죽는가
→ 적이 죽는다면 아이템 보상은 누가 받는가
→ 적의 방어력에 비례해 대미지를 덜 받는가
→ 적이 쓰러지지 않을 수 있는가
● 이긴다
→ 승리 규칙이 있는가
→ 패배 규칙이 있는가
→ 항복이 있는가
→ 무승부가 있는가
이렇게 세세하게 있다. 공격 흐름으로 봤을 때
전투 시스템의 공격 규칙에 따라 → 적에게 공격이 명중 → 적의 방어력에 비례해 대미지가 덜 들어간다 → 적의 체력이 일정 수준 이하로 떨어졌다 → 적의 체력이 일정 수준 이하로 떨어져 승리하였다 → 아이템은 기여도에 따라 배분
이렇게 시스템 간 유기 관계 이해가 중요한 이유는 시스템이 꼬이는 이유를 구조적으로 파악할 수 있다. 나중에 코딩을 할 때 여러가지 문제가 겹친다. 코딩을 할때 나는 총알 3발을 부채꼴로 나가서 적에게 대미지를 입히는 것을 원하는데, 총알이 1발만 나갈 수 있고 3발 다 나가지만 한 발만 적용이 돼서 남은 2발은 공격 영향이 없다거나 등 이해하는 과정이 중요하다. 코딩을 못하더라도 코드를 읽고 어떻게 동작하는지 정도는 알아야 한다 생각한다.
'게임 기획' 카테고리의 다른 글
| 기획 기본 틀 (0) | 2025.09.18 |
|---|---|
| 게임 기획안 최종 버전 (0) | 2025.05.04 |
| 디테일 추가 - 1 (0) | 2025.04.11 |
| 게임 스토리 만들기 (0) | 2025.03.23 |
| 게임 제작 내용 (0) | 2025.03.17 |