실무자가 말하는 게임 개발

muchan
muchan
∙∙조회 25

오늘 프로젝트를 맡겨준 회사 대표님께서 특강을 해주셔서 그 내용을 정리해봤습니다.

레벨 디자인 - 유저는 생각보다 관대하지 않음

  • 요즘 사람들은 어려움을 잘 못 견딤. 참을성이 예전 같지 않음
  • 그래서 내가 재밌다고 생각하는 난이도보다 한 단계 더 쉽게 만들어야 함
  • 개발자는 이미 게임을 손에 익힌 상태라 체감 난이도가 왜곡됨
  • 유저한테 뽕맛을 느끼게 해주는 게 중요함. 다 때려부수는 시원한 느낌
  • 실력으로만 승부하게 하면 재미없을 수 있음 → 확률 요소나 사기적인(OP) 요소를 섞어주는 게 좋아 보임

이 부분이 특히 우리 게임에도 바로 적용 가능한 얘기였음. 타워디펜스 쪽 밸런싱할 때 참고할 만함.

코드 붕괴를 막는 습관

  • 자주, 작게 커밋하기
  • 푸시 전에 게임 켜지는지 반드시 확인
  • 위험한 명령어는 되돌릴 수 있는지 먼저 확인
  • 팀이면 같은 파일 동시 수정 안 하도록 역할 분담. 충돌 지옥 방지

수치는 한 곳에서 관리

  • 게임 안의 수치는 하나로 통일해야 함. 안 그러면 툴팁에 적힌 값이랑 실제 적용되는 값이 달라지는 참사가 생김
  • 주인(원본)은 한 곳에서만 정하고, 나머지는 그 값을 참조해서 물어보도록 구현해야 함
  • 유니티에는 이걸 대비한 표준 자료 구조가 있음 (우리도 ScriptableObject / DataTable로 관리 중인 부분)

회귀 위험 (Regression)

  • 전에 고쳤던 버그가 나중에 또 다시 살아날 수 있음
  • 그래서 느리게 가더라도 탄탄하게 가는 게 결국 이득임
  • 리팩토링과 모듈화가 잘 되어 있어야 회귀도 줄고 유지보수도 편함

만든 사람은 자기 게임을 못 봄

  • 만든 사람은 객관적으로 자기 게임을 볼 수 없음
  • 플레이어는 내 상상과 전혀 다른 곳에서 웃고, 전혀 다른 곳에서 막힘
  • 내 자리에선 안 보이던 문제가, 남의 자리에선 첫 실행 몇 분 만에 터짐
  • 그러니 살짝이라도 어물쩡한 느낌이 들면 과감하게 갈아엎는 게 낫다

일하는 방식

  • 하루 끝에 "오늘 게임이 어제보다 뭐가 좋아졌나" 스스로 물어보기
  • 할 일은 그냥 메모장에 적어두기
  • 큰 결정은 바로 지르지 말고 작게 먼저 시험해보기