워터폴 (waterfall) 체계는 무엇인가?
말 그대로 폭포 형태로 작업 완성 후 다음 단계로 넘겨주며 일방향으로만 진행하며 개발하는 형태를 뜻합니다.
워터폴의 특징
아주 단순하게 봐서는 공장의 생산 라인처럼 단계마다 작업이 완료 된 후 다음으로 넘어가서 완성 될 때까지 진행되는 방식입니다.
워터폴의 적용
게임 개발 체계 중 가장 흔하다고 볼 수 있는 프로세스가 워터폴입니다. 특히 한국 게임 개발 업계에서는 지배적으로 사용되는 프로세스 입니다. 널리 사용되는 이유는 가장 오래된 방식이라 그렇기도 하지만, 상당히 직관적이기 때문이기도 합니다.
워터폴은 게임 전체나 게임의 일부 부분을 개발하는데에 사용됩니다. 플래쉬, 웹, 모바일 게임 등 규모가 작은 게임은 하나의 워터풀 프로세스로 게임 전체가 완성 될 수 있습니다. 하지만 콘솔, PC 온라인 게임 등 어느정도 규모가 되는 게임은 부분형으로 여러개의 워터폴이 동시에 진행 되고 있다고 보셔야 합니다.

위의 도표는 하나의 워터폴 프로세스를 간략화 한것인데, 실질적인 개발 체계는 회사, 팀, 개발 여견 등에 따라 다르기도 하며 훨씬 더 크기 때문입니다. 하지만 위의 4단계는 워터폴의 기본이라 모든 상황에 적용된다고 보시면 되겠습니다.
기획
기획자들이 우선 게임 전체나 게임 일부의 기획을 완료해야 하는 단계입니다. 워터폴 체계에서는 기획자의 작업이 상당히 어렵습니다. 그 이유는 구현 후 단계에서 수정 작업을 최대한 줄이기 위해 모든 것이 감안된 최상의 기획안이 나와야 하기 때문이죠. 재미, 구현 가능성, 정확한 리소스 리스트 등 준비가 완벽해야 구현 단계로 넘어가게 됩니다.
구현
기획대로 프레임워크상에 게임 시스템을 구축하고 그래픽 개발자들이 완료한 리소스를 구현하여 테스트 버젼이 만들어지게 됩니다. 큰 게임은 프로토타이핑, 작은 게임은 알파 버젼이라고 생각하시면 되겠네요. 구현 한 시스템을 테스트를 하기 위해 필요한 그래픽 리소스부터 적용하여 시스템이 의도대로 구현되었는지를 테스트 합니다.
테스트
리소스를 양산하며 적용시키며 게임의 전반적인 플레이를 테스트합니다. 구현 단계에서의 테스트와는 달리, 이 단계에서는 기본 최소 이상의 많은 리소스와 심도 있는 테스트로 버그가 발생하는지 테스트합니다. 온라인 게임의 경우 동기화, AI 등 네트워크와 서버 테스트도 진행하게 됩니다.
수정
구현 및 테스트 과정에서 발생한 문제점들을 수정하는 단계입니다. 단순한 버그의 경우 수정 단계까지 필요치 않겠지만, 게임 개발이라는 것이 순탄치만은 않기에 큰 문제점들이나 기획적인 이슈와 그래픽 이슈 등을 재고하여 재작업이 필요할 수 도 있습니다. 가장 중요한 기준은 '의도대로 실행되는가?' 그리고 '재미가 있는가?'입니다.
워터폴의 장점
1, 직관성
앞서 말씀드린대로 워터폴은 상당히 직관적입니다. 마치 공장의 조립 라인처럼 단계별로 더욱 더 완성된 모습을 찾아가는 형식이라 작업, 진행, 검수 등 모든 것이 직관적입니다.
2. 빠른 적응력
국내 게임 개발 업계의 99%가 사용하는 체계로써 프로세스의 이해도가 상당히 높습니다. 처음이라 해도 직관적이라 배우기도 쉽고요. 워터폴은 개발팀 마다 문화와 방식의 차이 때문에 다양하게 응용될 수 있으니 그런 차이점들만 찾아 적응하면 됩니다.
워터폴의 단점
1. 개발 속도
전 단계에서 작업을 완료 해줘야 다음 단계로 넘어가게 되는데, 개발은 순탄치만은 않기에 일정이 연기되거나 작업이 추가되거나 하죠. 그리고 특정 단계별 작업량에 따라 소요되는 시간 또한 상당히 늘어날 수 있습니다.
2. 프로세스적 모순
단계별 설명을 읽으시다가 "흠 이거 뭔가 좀..." 하신 분들 계셨을겁니다. 공장의 비유를 다시 사용하자면, 조립 라인 끝에 QC(Quality Control)가 "이거 뭐야! 잘못 됐잖아!" 이러는 순간 라인 기계 멈추고 문제 파악해서 제품을 폐기시키거나 다시 조립하게되죠. 워터폴도 비슷합니다. 그렇다면 단계별로 QC를 하면 된다? 네, 흔히 사용되는 방법입니다. 다만, 해결팩을 찾아보면 그 전 단계로 돌려보내야할 경우가 생기기 때문에 워터폴이 역흐름을 타게됩니다.
3. 단계 의존도
워터폴의 성공 여부는 간단합니다. 전 단계에서 얼마나 작업을 꼼꼼하게 잘 해주느냐의 차이입니다. 기획이 완벽하면 구현이 더 원활합니다. 구현이 완벽하면 테스트 과정에서 문제점들이 별로 없겠지요. 마지막으로 테스트가 성공적이었다면 수정의 필요가 낮아지겠죠. 이러한 전 단계의 의존도 때문에 가장 최상위인 기획 단계가 상당히 중요하게 됩니다. 이러한 이유로 기획자의 책임이 크며 기획자들이 가장 욕을 많이 먹게되는 것입니다.
워터폴의 응용
앞서 설명드린 워터폴 체계는 체계의 이해를 위해 간략화했기에 이젠 실질적으로 어떻게 사용되고 있는지에 대해 보겠습니다.
1. 멀티폴 (Multi-Fall)
소규모 게임의 소규모 팀이라면 개발을 유연하게 진행 할 수 있기 때문에 워터폴 체계로 게임을 완성할 수 있지만, 팀과 게임의 규모가 클 경우, 특히 MMO에서는 워터폴을 그대로 사용하기 거의 불가능하다고 봐야합니다. 대규모 게임에서 워터폴이 사용되는 경우는 라이브 개발 밖에 없다고 봐야합니다. 예외는 2번을 참고하시길.
멀티폴이란 다수의 워터폴이 진행되어 하나의 게임이 조합되어 완성되는 방식을 뜻합니다. 자세히 설명드리자면 하나의 워터폴로 게임을 만든다면 다수의 워터폴, 즉 멀티폴로 다수의 게임 요소들이 하나의 게임(강)으로 모여 완성되는 것입니다. 게임 시스템이 많이 개발되야하는 MMO에서는 특히 필수적인 체계입니다.




최근 덧글