← 블로그 목록

버그를 창의적으로 활용한다는 말은 모든 결함을 미화하자는 뜻이 아니다

버그가 기능이 됐다는 일화는 매력적이지만, 그렇다고 모든 결함을 낭만으로 덮을 수는 없다. Street Fighter II의 콤보 같은 격투게임 사례와 게임 버그 분류 연구를 빌려, 우연한 동작이 시스템으로 살아남기 위한 세 가지 조건과 대부분의 버그가 여전히 고쳐야 할 결함인 이유를 구분해 정리한다. 진짜 창의성은 버그를 방치하는 데가 아니라 우연을 의도된 규칙으로 바꾸는 데 있다.

버그를 창의적으로 활용한다는 말은 모든 결함을 미화하자는 뜻이 아니다

버그를 창의적으로 활용한다는 말은 모든 결함을 미화하자는 뜻이 아니다

게임 개발에는 종종 버그가 기능이 됐다는 이야기가 따라붙는다. 실제로 우연히 발견된 동작이 재미를 만들고, 나중에는 정식 시스템으로 자리를 잡는 경우가 있다. 하지만 이 말은 자주 오해된다. 모든 결함을 미화하거나 품질 문제를 낭만으로 덮자는 뜻은 아니다.

중요한 것은 우연한 현상을 만났을 때, 그것이 재미를 늘리는 발견인지 게임을 망가뜨리는 결함인지 구분하는 판단 기준이다.

우연한 발견이 시스템이 되려면 세 가지를 통과해야 한다

게임디벨로퍼 글과 격투게임 사례를 보면, 우연한 동작이 살아남는 경우에는 공통점이 있다.

Street Fighter II의 콤보는 자주 언급되는 예다. 원래 의도된 완성형 시스템으로 출발한 것은 아니었지만, 플레이어가 이를 숙련의 영역으로 받아들이면서 격투게임 장르 전체를 바꿨다.

대부분의 버그는 여전히 버그다

이 사례가 흥미롭다고 해서, 버그를 고치지 않아도 된다는 뜻은 아니다. 대다수 버그는 플레이어의 예측 가능성을 깨고, 저장 데이터를 망가뜨리고, 진행을 멈추게 하며, 경쟁 환경을 무너뜨린다. 특히 출시 이후의 게임 버그 연구는 놓친 결함이 개발자와 사용자 모두에게 큰 비용을 만든다고 지적한다.

즉, 버그를 기능으로라는 말은 예외적인 선별 과정이지, 품질 관리를 대체하는 철학이 아니다.

살릴 수 있는 우연은 프로토타입에서 더 자주 보인다

우연한 발견이 유용한 순간은 보통 초기 실험 단계다. 물리 반응이 예상보다 재미있게 튀거나, 이동이 이상하게 꼬였는데 오히려 리듬이 살아나는 경우처럼 말이다. 이때 개발자는 단순히 고치거나 남기는 선택만 하지 않는다. 왜 재미있었는지 분석하고, 그 현상을 의도된 규칙으로 다시 설계해야 한다.

즉, 진짜 창의성은 버그를 방치하는 데 있지 않고, 우연을 구조로 바꾸는 데 있다.

마치며

버그는 때때로 기획의 힌트가 된다. 하지만 그 가치는 우연 자체보다, 그 우연을 어떻게 읽고 다듬느냐에 달려 있다. 플레이어가 반복 가능하게 배울 수 있고, 게임의 핵심 재미를 강화하며, 시스템을 망가뜨리지 않는다면 그때는 기능 후보가 될 수 있다.

나머지는 대부분 고쳐야 한다. 좋은 개발자는 버그를 낭만화하는 사람이 아니라, 무엇을 살리고 무엇을 지워야 하는지 구분하는 사람에 가깝다.

참고 자료

← 목록으로
Related

함께 읽으면 좋은 글

게임 UIUX세이브 시스템
세이브 화면은 저장 기능이 아니라 유저의 기억을 대신하는 인터페이스다

세이브·로드 화면은 기능적으로는 파일 목록이지만 플레이어 입장에서는 어디까지 했고 이 슬롯을 덮어써도 되는지를 대신 떠올려 주는 인터페이스다. 닐슨 노먼 그룹의 사용성 원칙 가운데 시스템 상태 가시성과 기억보다 인식 원칙을 빌려, 스크린샷·플레이 시간·진행 상태 같은 기억 보조 정보와 잘못된 덮어쓰기를 막는 슬롯 설계를 정리한다.

프로젝트 관리칸반WIP
프로젝트 관리에서 중요한 것은 재고율보다 동시에 벌려 놓은 일의 양을 줄이는 것이다

게임 프로젝트가 느려질 때 사람들은 생산성이 떨어졌다고 말하지만, 실제로는 동시에 너무 많은 일이 벌려져 있어서 흐름이 멈춘 경우가 많다. 칸반의 WIP 제한과 리틀의 법칙을 빌려, 진행률 숫자보다 실제로 완료된 단위가 중요하고 좋은 관리자는 착수보다 완료를 밀어 준다는 점, 그리고 바쁘게 보이는 팀과 완료를 만들어 내는 팀의 차이를 정리한다.

게임 개발툴 프로그래밍엔진 개발
툴과 엔진 개발자는 게임을 만드는 사람들의 작업 시간을 설계하는 개발자다

툴과 엔진 개발자는 게임을 직접 안 만드는 사람처럼 오해받지만, 실제로는 아티스트·디자이너·프로그래머의 작업 시간을 설계하는 개발자다. MachineGames, Ubisoft, Supercell의 채용 공고에서 반복되는 키워드와 실무 설명을 따라, 이 역할이 결국 내부 사용자 경험과 반복 비용·디버깅 가능성을 다루는 제품 개발에 가깝다는 점을 정리한다.