[GPG 1 글 1.0] 1권 1.0 섹션 총정리

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

2권이 나오기 전에... 1권의 각 글에서 좀 더 하고 싶은 이야기라던가 강조하고 싶은 것, 번역이나 원문에서 미흡했던 부분들을 자유롭게 써나가기로 했습니다.

매일 하나씩 하는 것은 어려울 것 같구요. 비정기적으로라도.. 그러나 꾸준하게 1권을 총정리해 보겠습니다..


1.0 "데이터 주도적 설계의 마법"은 어렵지 않은 글이라서... 아마도 그냥 죽 훑어보는 것만으로도 충분히 이해할 수 있을 것입니다...

이 글을 이해하는 것보다 어려운 것은 아마도 데이터 주도적 설계를 철저히 지켜나가고자 하는 마음가짐일 것입니다. 글에서 계속 강조하는 것은, "프로그래머 이외의 사람들도 게임에 쓰이는 데이터를 쉽게 변경할 수 있어야 한다"라는 것입니다.

이것은 프로그래머의 '봉사 정신^^'과 관련이 있습니다. GPG 2권 프로그래밍 일반 섹션의 서문을 보면 "우리 엔지니어들은 도구(tool)를 만듦으로서 팀에 봉사하는 데 모든 시간을 보내는 사람들인 것이다."라는 말이 있더군요... 이는 결국 역할 분담과도 관련이 있는 말이구요.. 예를 들어서 총알 속도는 누가 결정하는가.. 프로젝트 관리자일 수도 있고 기획자일 수도 있고 프로그래머 자신일 수도 있겠지만, 어쨌든 그런 게임플레이 상의 결정을 내리는 사람이 프로그래머가 아니라면, 그 사람이 가장 편하게 그러한 결정을 변경할 수 있게 만들어 주는 것이 프로그래머의 봉사정신일 것입니다.

그리고 39페이지에도 좋은 말이 있습니다.

"게임 개발 과정은 반복적이며 진화적이다. 애초에 생각했던 게임과 최종적으로 만들어진 게임이 전혀 다른 물건인 경우도 흔하다."

이는 기존의 소프트웨어 공학/개발 방법론에서는 금기시되는 특징입니다. 기존 방법론에서는 철저한 사전 조사, 요구 사항 분석, 명확한 설계 문서 작성, 결정된 개발 공정을 지키는 것 등등을 미덕으로 간주했지만, 최근 각광받고 있는 '경량(lightweight)/민첩한(agile)/적응적(adaptive)' 방법론에서는 '밥상 뒤엎기-.-(rework)는 피할 수 없으며, 최대한 변화에 민첩하게 적응할 수 있도록 하는 것이 효율적이다'라는 접근 방식을 사용하더군요... 게임이야말로 민첩하고 적응성 있는 개발 방법론이 필요한 소프트웨어라고 생각하구요. 그것을 잘 받쳐주는 것이 바로 데이터 주도적 설계가 아닐까 합니다.

그리고 여담으로.. 게임이라는 종류의 소프트웨어에 적합한 방법론을 만드는 것은 우리 자신의 몫일 겁니다.. 적어도 전산학자나, 업무용 소프트웨어 개발자가 할 수 있는 일은 아니겠죠. 물론 그들의 이론이나 경험을 받아들이는 것은 당연하겠지만요..

그 다음은 스크립팅에 대한 문제인데, 장단점이 모두 나와 있습니다. 여전히 중요한 것은 위에서 말한 봉사 정신과 적응성일 것입니다. 자신과 동료들이 편하려면, 그리고 설계의 변화에 적응할 수 있으려면 스크립트를 어떻게 적용해야 할 것인가..라는 관점에서 고민해 봐야 할 것입니다.

데이터의 중복에 관해서는 Once and Only Once라는 실천 지침을 기억해야 할 것입니다. Once and Only Once는 특히 ExtremeProgramming에서 강조하는 지침으로, 문자 그대로 '딱 한 번만'입니다. 동일한 의미의 데이터가 한 번 이상 존재하면, 메모리를 많이 차지하는 것뿐만 아니라, 오류나 실수 가능성도 늘어나게 됩니다.

글에서는 데이터 중복을 피하기 위한 방법으로 상속을 제시했으나, 상속만 해당하는 것은 아닐 것이구요. 참조(reference) 또는 클래스의 레이어링이나 조합(composite) 패턴도 한 가지 방법일 것입니다. 크게 본다면 객체 지향적 설계, 특히 게임 내의 모든 개체, 데이터를 철저히 최소 단위의 객체들로 분할해서 캡슐화하는 것이 필요할 것입니다 - 물론 속도에 영향을 미치지 않는 한에서요:)

마지막으로, '결론' 부분에 대해서 좀 더 이야기하고 싶은 것은, 게임의 수명을 늘리는 전략입니다. 많은 게임들은 사용자 맵 에디터를 제공하거나 모드 제작자들을 적극 지원함으로서(심지어 소스 코드를 완전히 공개해서) 게임의 수명을 늘리고 있습니다. 국산 게임의 경우 '겨울전쟁'이 그런 전략을 적극적으로 사용한다고 하던데 해보지 않아서 잘은 모르겠습니다만....

GPG 2권을 보면 서문에서 마크는 '게이머가 개발자가 된다면, 모두가 이기는 것이다'라는 뜻의 말을 하더군요. 데이터 주도적 설계는 그러한 수명 늘리기 전략의 중요한 수단이기도 한 것입니다...
Guest

Post by Guest »

존경~
이런글 까지 써주시니..

2권 한글판 나오기전에 1권 글 한번 정리하는것 정말 좋을것 같습니다.
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

음 솔직히..
스스로 생각하기에 총정리라는 이름을 붙인 건 좀 '오버'한 것 같거든요... 다 끝맺을 자신도 별로 없구요.. 그냥.. 제가 GPG 1권을 어느 수준으로 이해하고 있는지 정도로 봐주시길.. ^^;;;

그리고 다른 분들도 이런 식의 글을 써주셨으면 합니다... 자신이 어떤 것을 배웠고 어떤 것이 아쉬웠는지를 정리하는 차원에서요...



Post Reply