저번 일지에서는 그리드 이동 / 경로 표시 / 오브젝트 / 코스트 시스템을 만들었습니다. 이번 일지에서는 턴제 게임의 필수 요소 '턴 시스템'을 만들고, 게임의 전투 양상이 어떤 방식으로 흘러갈지 고민해봤습니다. 일반적인 턴 시스템은 제가 추구하는 방향에 맞지 않아서 페이즈를 통해 적의 공격을 미리 표시하는
기본적인 턴 시스템
<턴 흐름>
1. 턴 매니저에서 유닛 등록
- 플레이어가 먼저 시작하도록 설정
2. 플레이어 턴
- 카드 드로우
- 이동 및 액션
- 종료 버튼으로 턴 엔드
3. 적 유닛 턴
- 이동 및 액션 후 자동 턴 엔드
(2번부터 다시 반복)
먼저 간단한 턴 시스템을 만들어봤습니다. 턴 매니저에 유닛을 등록하고, 순서에 따라서 유닛이 하나씩 턴을 가져가는 방식입니다. 이제 적의 행동 AI를 만들어서 턴 흐름을 가시적으로 살펴보려고 했는데... 여기서 문제가 생겼습니다. 제가 추구하는 전투의 흐름이 단순히 공방을 주고 받는 느낌이 아니기 때문입니다. 그래서 먼저 제 프로젝트가 제공하려는 경험에 대해 고민해보고, 다른 게임들을 참고해서 새로운 턴 시스템을 만들어봤습니다.
제공하려는 경험

첫 번째 일지에서 저는 '적을 숨긴다'는 아이디어를 냈습니다. 딱히 깊은 고찰을 하고 결정한 아이디어는 아니었고 그래픽 제약을 해소하는 방법 중의 하나였습니다. 그렇다보니 전투 디자인을 결정하려는 지금에서는 이것이 오히려 방해가 되었습니다. 솔직히 전투 디자인을 확정짓고 개발을 시작한 것이 아니기 때문에 지금이라도 간단하게 고민을 하려 합니다.
게임의 메카닉을 만들려면 먼저 게임을 통해 플레이어에게 제공하려는 경험 혹은 감정을 생각해봐야 합니다. 특정 경험을 제공하려면 플레이어는 어떤 행동을 해야 할까요? 그 행동을 이끌어내려면 어떤 식으로 코드를 짜야 할까요? 이렇게 역순으로 되짚어가면서 메카닉을 생각하는 것입니다. 이후엔 메카닉에 맞게 코드를 짜고, 플레이어가 메카닉으로 게임을 어떻게 플레이하는지 그 행동으로 어떤 감정을 느끼는지를 플레이 테스트로 확인하게 됩니다.
.jpg?alt=media)
제가 제공하고 싶은 경험은 '전략적인 상황 대처'입니다. 특정 문제 상황이 주어졌을 때, 그걸 해결할 최선의 방법을 찾아내는 것입니다. 문제를 풀기 위해서는 먼저 무엇이 문제인지 확실히 해야 합니다.
페이즈 시스템과 기타 게임 디자인
<페이즈 흐름>
1. 적 유닛 준비
- 이동 및 공격 준비 후 턴 엔드
2. 플레이어 턴
- 카드 드로우
- 용사와 고양이 캐릭터를 이동시키거나 공격
- 종료 버튼으로 턴 엔드
3. 적 유닛 액션
- 준비했던 액션을 실행
(이하 반복)

위에서 언급한 게임들은 일반적인 턴 시스템과 다르게 적 유닛에게 두 번의 기회가 주어집니다. 그래서 저는 페이즈 시스템을 통해서 이걸 구현해봤습니다. '적 유닛 준비 - 플레이어 액션 - 적 유닛 액션'이라는 각 페이즈를 순환하는 방식입니다. 시각적으로 표현하면 아주 좋겠지만, 아직 공격 시스템을 개발하지 않았기 때문에 텍스트와 이동을 통해 페이즈를 보여주는 정도로만 하겠습니다.
또, 이동 경로 내에 적이 있으면 우회하는 시스템을 추가했습니다. 이건 이전부터 만들다가 작동을 안해서 미뤄뒀었는데, 알고보니 너무 사소한 문제였습니다. 그냥 코드 순서를 바꿔서 해결했죠... 그리고 초반에 생각했던 적 유닛을 숨기는 시스템은 너무 많은 문제를 야기할 것 같아서 폐기했습니다. 대신 정보를 숨기는 방식으로 적용할 예정입니다.
다음 일지에서는 적 유닛의 스킬 시스템을 개발할 예정입니다. 솔직히 이번 주에는 게임 디자인 고민을 하느라 개발을 많이 하진 못했습니다. 그냥 하나씩 하나씩 해나갈 수 있는 게 아니라 시스템이라는 게 이것저것 다 얽혀있다보니 최소한의 틀을 잡는 시간이 필요했습니다.

GMTK 게임잼 2023 TOP 20 중 하나인
현재 생각하고 있는 프로젝트의 모습은 두 개의 플레이어블 캐릭터를 조작하는 것입니다. 두 캐릭터는 다른 역할을 가졌지만, 코스트를 공유합니다. 그래서 플레이어 턴에 두 캐릭터를 자유롭게 스위칭하면서 이동 및 스킬을 사용하는 것이죠. 또, 적 유닛은 기본적으로 정보를 숨기고 있지만, 플레이어 캐릭터 주변에서는 정보가 밝혀지게 됩니다.
그러니까 적의 정보를 파악하는 보상을 위해 적에게 가까이 접근하는 리스크를 감수해야 하는 것입니다. 생각해보니 사쿠라이 마사히로 씨가 강조했던 것이 바로 리스크 & 리워드였군요. 이것도 중요하게 염두에 두고 게임 디자인을 해야겠습니다.
참고자료
[1] [Godot] 고도 엔진으로 턴제 게임에서 Turn Manager 구현하기! │김감자르반4세 https://www.youtube.com/watch?v=gjJt02e904A
[2] Game Genres - a Design Perspective │Indie Game Clinic
https://www.youtube.com/watch?v=3KJbYdNP5js
[3] MDA: A Formal Approach to Game Design and Game Research │Robin Hunicke, Marc LeBlanc, Robert Zubek
https://users.cs.northwestern.edu/~hunicke/pubs/MDA.pdf
[4] How To Think Like A Game Designer │Game Maker's Toolkit https://www.youtube.com/watch?v=iIOIT3dCy5w
[5] Risk and Reward [Game Essence] │Masahiro Sakurai on Creating Games https://www.youtube.com/watch?v=FXqEykD5Ub4
[6] The Best Games from GMTK Game Jam 2023 │Game Maker's Toolkit
https://www.youtube.com/watch?v=tYxZ_LOlFnU