![]() ![]() ![]() |
제목 | [Gamasutra] 객체 지향 게임 개발: 반복 개발 기술 | ||||||
---|---|---|---|---|---|---|---|
분류 | 게임 | 등록일 | 05.12.29 | ||||
출처 | 한국콘텐츠진흥원 | 조회수 | 0
|
||||
객체 지향 게임 개발: 반복 개발 기술 Object-Oriented Game Development: Iterative Development Techniques * 도입 이 장에서는 개발에 있어 중요한 두 가지 문제에 대해 논의하고 두 질문에 대한 하나의 답변을 제시하고 있다. 이 문제들은 코드 개발 프로세스의 논리 구조뿐 아니라 생산 방법론에 있어서도 근본이 되는 것으로 밝혀졌다. 두 가지 질문은 다음과 같다. · 작업이 어떤 순서로 수행되어야 하는가? · 게임이 언제 끝나는가? * 우선순위 설정 작업 개발과 관련하여 가장 안 좋은 것은 프로젝트 막바지에 시스템 크리티컬 코드(system-critical code)를 작성하는 것이다. 그러나 이미 이렇게 작업을 한 경험이 있는 사람들은 수도 없이 많을 것이다. 그만큼 보편적으로 일어나는 일이기도 하다. 이는 팀에게 엄청난 스트레스를 유발할 뿐 아니라, 안정적인 것으로 간주된 다른 시스템에서도 백이면 백 각종 문제를 일으키게 된다. 이상적으로, 우리는 이러한 문제들을 일으키지 않는 작업 수행 순서를 선택할 수도 있으며, 어떤 작업을 먼저 해야 하고 어떤 작업을 더 뒤에 해도 되는지도 사전에 알 수 있다. 우리가 이렇게 ‘이상적’인 상태를 달성할 수 없는 경우, 성공시키기 위해 할 수 있는 만큼, 그야말로 무모하게 덤빈다면, 프로젝트의 알파나 베타 단계에서 크리티컬 패스 코드 (critical-path code)를 작성하는 것 보다는 확실히 일을 더 잘 해낼 수 있다. * 가상 스트링(string) 하나의 길이는 얼마나 될까? 게임은 한정된 소프트웨어의 일부이지만, “완성”에 대한 기준을 설명할 때에는 다소 곤란한 점이 있다. 거의 대부분의 경우, 우리가 가게 진열대에서 보는 게임의 기능과 특징은 개발 팀이 원했던 것의 일부에 불과한 것이 사실이다. 완성한 것 보다 더 많은 것을 설계하려 했고, 제작된 모든 기능이 모두 사용되는 것도 아니다. 게임이 “완전히 완성”되는 것이 거의 불가능 하다면, 게임이 출시 가능한지의 여부는 어떻게 결정할 수 있을까? 게임이 실제로 얼마나 ‘완성되어 배포’ 될 수 있는 것인지 우리를 이해 시켜 줄 만한 메트릭스 (metrics)에는 어떤 것이 있을까? 하위 작업 계획 문제에 대해서도 고려해 보자. 어떤 프로그래머(Jo 라고 가정해보자.)가 ‘폭발 트랩(exploding trap)’을 작성하는데 10일이 소요될 것이라고 예상하였고, 그로부터 4일이 지났다. 그렇다면 작업의 40%가 완성된 것일까? 특히 9, 10일째가 되기 전까지는 트랩이 폭발하는 것을 볼 수가 없기 때문에 이것은 말하기 매우 곤란한 문제이다. 하지만 긍정적으로 생각하여, Jo가 매우 열심히 일해서 8일만에 작업을 끝냈다고 가정해보자. 보통은 +2일의 이윤과 함께 작업은 완성된 것으로 간주되며 프로젝트의 모든 것은 순조로워 보인다. 그러나 이 후에, 트랩으로 더 큰 물체를 잡을 수 있도록 하기 위해 트랩을 수정해야 할 경우가 발생할 수도 있다. Jo는 이 문제로 4일을 더 일했고, 그로 인해 -2일의 손실과 함께 프로젝트는 갑자기 이전 위치에서 다시 미끄러져 내려온 것 같이 느껴진다..............(중략) * 자세한 내용은 첨부문서(pdf)를 참고하시기 바랍니다.
|
|||||||
첨부파일 |