테크니컬 아티스트를 위한 최고의 교과서

저자
카츠라 요스케, 요츠쿠라 타츠오, 마크 살바티 지음
출판사
한빛미디어 | 2014-05-20 출간
카테고리
컴퓨터/IT
책소개
이 책은 테크니컬 아티스트를 목표로 하는 CG 아티스트들에게 필...
가격비교 글쓴이 평점  

이 책은 틀렸습니다. 이 책은 테크니컬 아티스트를 위한 최고의 교과서가 아네요. 이 책은 컴퓨터 그래픽에 관심이 있는 모든 사람이 읽어야 할 교과서입니다.

저는 씬 그래프 엔진을 만든 적이 있는데 그 만드는 과정 동안 이론을 이해하는 것은 쉬운 일이 아니었습니다. 많은 이론을 공부하고도 부족함이 있었고 수학적인 지식도 부족했고 검색을 해야만 혹은 논문을 읽어야만 알 수 있는 지식들도 많았습니다. 

그런데 만약 그 힘들던 시기에 이 책이 있었다면 그 과정이 그렇게 힘들지는 않았을 겁니다. 이 책은 종합 선물 세트와 같습니다 이 책은 수학적인 기반과 광학 혹은 물리적인 설명, 재미있는 이론을 차례 차례 설명해 줍니다.

카메라 좌표, 컬러 모델 등의 근간이 되는 지식을 설명한 이후에 이 책은 그림자와 로컬 쉐이딩으로 들어갑니다. 컴퓨터 그래픽을 하는 사람들이 모두 주목하는 블린 - 퐁을 다루는 세션으로 이어지는 구성이죠. 저는 이 책에서 이 파트를 읽으면서 왜 나는 혼자서 해결해야 했을까 아쉬움에 자다가 이불에 발차기를 하기도 했어요. (그나저나 이 책에서는 블린-퐁이라고 하지 않고 그냥 블린은 블린 퐁은 퐁이라고 부르더군요. 퐁 쉐이더를 블린이 연산하기 쉽게 만든 버전을 우리는 보통 블린-퐁이라고 불렀습니다.)

다음으로 다루는 주제는 텍스쳐입니다. 텍스쳐는 흔히 이미지를 입히는 것이 전부가 아니냐 이렇게 생각할 수 있는데 적은 폴리곤을 이용해서 더 괜찮은 이미지를 보여주기 위해 법선 맵을 활용하는 것이 필수적입니다. 법선 맵을 텍스쳐 영역으로 가져와 렌더링 파이프 라인에 처리해주면 좀 더 디테일이 강한 현실적인 그림을 만들 수 있습니다. 법선 맵을 의도적으로 과장되게 만들면 툰 쉐이딩을 할 수 있어요.

텍스쳐 다음에는 파티클입니다. 사실 저는 파티클에 약한데요. 이 파트를 보아도 조금은 감이 안오긴 합니다. 파티클을 위해 현실적인 물리 법칙들을 설명하고 있는데 이 지식들을 이용해서 어떻게 파티클을 활용해야할지는 과제로 남아있는 것 같습니다.

다음으로 넙스, 필러, 이미지 파일, 동영상 등을 설명하는데 교양삼아 읽어두면 좋을 것 같습니다.

이 책은 기반 지식을 한번에 설명해준다는 점에서 컴퓨터 그래픽의 개념을 배우기 위해서 이 책보다 적합한 책이 있을지는 의문입니다. 컴퓨터 그래픽에 관심이 있다면 이 책을 보세요.

PS: 연습문제는 과하게 어려운 것 같아요. 레벨 조절 실패.

PS2: 신기술에 대해 키워드 설명으로 넘어간 점도 조금 아쉬워요. 하지만 이만큼 설명한 책은 없을 것 같습니다.

And



게임 밸런스 이야기

저자
손형률 지음
출판사
한빛미디어 | 2014-04-02 출간
카테고리
컴퓨터/IT
책소개
게임의 가장 중요한 가치는 재미이며 재미있는 게임은 게임 밸런스...
가격비교 글쓴이 평점  

뿅뿅 뿅뿅. 어린 시절 학교를 마치면 이 소리를 들으러 집으로 뛰어가곤 하였습니다. 단색으로 만들어진 스프라이트가 겹쳐진 이미지는 영상이라고 보다는 초등학생 때 하던 스텐실 과제와 같았고 소리는 찢어지는 듯한 소리였지만 그 소리와 영상을 보는 것이 너무나 들 뜨는 일이었습니다. 그런 경험을 다른 이들에게 주고 싶어 어른이 되면 게임을 만들어보겠다고 생각하곤 했는데 이제는 게임을 만들고 있습니다. 어릴 적에는 나도 그런 경험을 다른 이에게 주는 것을 할 수 있을 줄 알았는데 그런 경험을 다른 이에게 전달하는 것은 쉬운 일이 아니더군요. 가장 큰 문제는 재미와 밸런스였는데 이 두 문제는 딱 잘라서 별개의 것이다고 말하기는 어려운 것이었습니다. 밸런스가 없는 게임이 재밌게 느껴지기도 쉽지 않고 밸런스가 잘 맞아서 전달되는 재미도 있기 때문입니다. 그래서 저는 밸런스를 조금 더 파악해서 게임의 재미를 향상시키고 싶었습니다. 그러던 중에 이 책을 알게 되어 읽게 되었습니다.


한마디로 이 책에서 중요하게 생각하는 것을 요약하면 비교가능한 수치로 환산하는 것이라고 생각합니다. 이 책은 MMORPG에 초점을 맞추어 설명하고 있는데 도적, 전사, 마법사가 상대방에게 입힐 수 있는 데미지로 환산 시켜서 비교하면 다른 클래스의 캐릭터들끼리 밸런스를 맞출 수 있다는 것이지요. 또 상대방에게서 받을 최종 데미지를 계산하면 적절한 적의 수준을 계산할 수 있다는 것이고요. 단기적인 관점으로 보자면 연속적으로 공격하는 캐릭터와 정기적인 공격을 하는 캐릭터 간에 밸런스를 맞추기 어렵기 때문에 이 책에서는 일정한 간격을 중심으로 밸런스를 맞추고 있었습니다. 책에서 언급한 수치는 30초입니다. 30초 동안 전사가 지속적으로 공격한 양과 마법사가 지속적으로 공격한 데미지가 비슷하다면 게임의 진행 방식이 달라도 사용자는 합당하게 느낄 수 있다는 것이지요. 저는 여기서 언급한 30초가 중요한 수치라고는 생각하지 않아요. 어떤 던전에서 마법사가 5분만에 어떤 마법을 썼는데 그 결과 용을 물리칠 수 있었고 용을 물리치는데 기여한 바가 크다고 하다고 친다면 30초마다 평가를 할 경우 그런 부분에 대해서는 감안하지 못할 수 있겠지요. 하지만 이 책에서 말한 수치는 절대적으로 신봉할 수치가 아니라 조금 중,장기적인 기준을 삼아두고 비교가능한 수치를 통해서 균형을 맞추는 것이라고 본다면 큰 문제는 없는 것 같습니다.


이런 관점에서 기존 출시된 게임을 보니깐 흥미로운 부분들이 많이 있더군요. 저는 이브 온라인이란 게임을 재밌게 했는데 이 게임은 우주에서 전함을 타고 다니는 게임입니다. 각 플레이어는 하나의 회사의 어떤 부서에 속하면서 동시에 전함을 운전하는 파일럿입니다. 전함은 세 종류가 있는데 쉴드가 강한 전함, 내구도가 높은 전함, 그리고 각속도(!)가 높은 전함입니다. 각속도가 높은 전함은 세부적인 기동이 우수해서 적의 미사일의 속도를 순간 각속도의 변화로 회피할 수 있는 것이지요. 이렇게 다양한 전함들도 각 특성에 맞는 데미지 공식을 내고 밸런스를 맞추는 것은 충분히 가능하지 않을까 싶어요.


또 한가지 재밌게 보았던 개념은 일종의 마일스톤을 찍는 부분이었습니다. MMORPG에서 개별 캐릭터는 레벨을 가질텐데 개별 레벨마다 여러 직업들의 밸런스를 맞추는 것은 쉬운 일이 아닐 것입니다. 그래서 이 책에서 나왔던 팁은 특정 레벨마다 밸런스를 맞추는 것이었습니다. 레벨 10, 20, 30, 40 식으로 일정 간격으로 밸런스를 맞추는 거죠. 중간 성장하는 과정에서는 어떤 캐릭터가 일시적으로 쉽고 일시적으로 어려운 구간이 있겠지만 결국 밸런스 구간이 다가오면 좋지 못하던 캐릭터가 좋아지거나, 나빴던 캐릭터가 좋아져서 결국 성능의 균형을 이루게 될 것입니다. 이런 접근 방법은 좋았다고 생각해요.


이 책을 보면서 느꼈던 첫번째 아쉬움은 장르적인 제한이었습니다. 저는 모바일 게임을 만드는 사람이고 인디 개발자이기 때문에 대규모 MMORPG를 만들 일은 없어요. 솔직히 스마트 폰에서 대규모 MMORPG가 성공적으로 구현될 수 있는지도 조금 의문입니다. 이 책은 8할이 MMORPG이고 2할 정도가 RTS였는데요. 다른 장르에서 균형을 이루기 위한 수식등은 어떻게 생각해봐야 하는지는 과제로 남아 있는 것 같습니다.


두번째 아쉬움은 레벨 디자인에 대해서는 언급이 적었던 부분입니다. 아무래도 장르적인 특징인지 지역별로 특성을 두고 어떤 몬스터를 두어야 하는지 조금 큰 규모로 생각하게 만드는 것 같습니다. 하지만 많은 게임에서는 지형 지물을 아기자기하게 사용하고 그 과정에서 발생하는 유리/불리함 등이 게임에 미치는 영향들이 분명히 있을 것이고 그런 요소들이 게임의 재미에도 영향을 줄 것입니다. 그런 부분들에 대한 업급이 없었습니다. 이 부분에서도 여러 캐릭터나 진영간의 유리 불리를 세밀하게 설계하면 더 재밌게 게임을 할 수 있을텐데 그런 점은 좀 아쉽습니다.


마지막으로 이 책에서 게임의 재미를 밸런스에게만 맞추고 심지어 밸런스와 재미를 동격으로 보는 점은 좀 아쉬웠습니다. 최근 글로벌하게 흥행한 플래피 버드의 재미 등은 이 책이 설명하기 어렵다고 생각해요. 물론 이 책이 밸런스에 대해 관점을 보이고 있는 책인 것은 인정하는데 게임의 재미가 밸런스에 달렸다고 하면 다른 요소에 대해 오해할 수 있지 않을까 그런 생각이 듭니다.


이 책의 추천 대상:

1. MMORPG에서 밸러스를 맞추고 싶은 분들.

2. 밸런스에 대한 손형률님의 견해를 바탕으로 자신의 견해를 찾고 싶은 분들.


이 책의 비추천 대상:

1. 다른 장르에서 정답을 원하시는 분들.

And



유니티로 게임을 만드는 10가지 방법

저자
카토우 마사키 지음
출판사
한빛미디어 | 2014-03-17 출간
카테고리
컴퓨터/IT
책소개
언제까지 유니티 입문서를 보면서 엔진 사용법만 익힐 것인가?유니...
가격비교 글쓴이 평점  

유니티로 게임을 만드는 10가지 방법


“우와 10가지 게임에 대한 책이야?”

장르별 게임 알고리즘 가이드 유니티로 게임을 만드는 10가지 방법이란 이름을 들었을 때 정말 기발한 책이다는 생각이 들어 놀라웠습니다.

그렇기 때문에 의심을 가졌죠. 정말 제대로 된 10가지 게임이 맞아? 게임 메카닉 (게임을 하기 위한 규칙과 피드백)이 비슷한 것 아냐? 이 책에서 보여주는 게임의 장르는 천편일률적이지는 않습니다. 도깨비를 물리치는 간단한 액션 게임, 그림 퍼즐, 보석 수집 게임, 사운드 탐사 게임, 리듬 게임, 전방향 슈팅, 퍼즐 게임, 점프 게임, 롤 플레잉, 레이싱 게임. 이렇게 다양한 게임 10편으로 수집이 되어 있습니다. 게임은 단순한 형태로 되어 있지마 구성은 일률적이지 않은 것입니다.

이렇게 다양한 내용을 다루고 있다고 하면 많은 사람들이 각 개별 챕터가 허술하게 작성되어 있는 것이 아니냐는 의문을 가지기도 합니다. 하지만 책은 허술하게 작성되어 있지 않습니다. 이 책은 허술하지 않습니다. 제가 보기에 이 책을 읽을 때 장애가 되는 것은 세 가지 문제 밖에 없어요. 첫 번째는 언어입니다. 이 책의 예제들은 마이크로소프트의 C# 언어로 되어 있습니다. 많은 사람들이 C#은 이제 쓰지 않는 언어가 아니냐 이야기를 하는데 두가지 영역에서 이 언어는 여전히 강한 것 같습니다. 윈도우즈 애플리케이션과 모바일 게임입니다. C#은 WPF (Window Presentation Foundation)을 통해 쉽게 윈도우즈 애플리케이션 개발에 사용할 수 있습니다.  

모바일 게임을 위한 플랫폼인 유니티의 메인 언어가 C#이기 때문에 모바일 게임에서도 C#은 메이저 언어라고 볼 수 있습니다. 이 책은 자바스크립트와 C#의 차이에 대해 언급하고 있지만 C# 언어를 모르는 사람에게는 충분한 분량이 아닙니다. 만약에 C#을 좀 더 자세히 다루었다면 이 책의 두께는 세, 네배로 두꺼워졌을 겁니다. 저는 두꺼운 책을 좋아하지 않기 때문에 적절한 선택을 한 작가와 편집자에게 박수를 드립니다.

두 번째 문제점은 유니티 버전에 따른 인터페이스 변경입니다. 저는 유니티를 처음 사용해보는데 책에 있던 유저 인터페이스와 저의 인터페이스는 많이 달랐습니다. 그 이유는 책이 기술된 시점 혹은 번역된 시점에 사용되었던 유니티 버전이 달랐기 때문이 아닐까 생각합니다. 저는 유니티를 사용해본 적이 없었기 때문에 바뀐 인터페이스를 잘 몰랐고 여러 차례 시행착오나 검색을 통해 문제를 해결하였습니다. 만약 이 시행착오를 줄여 줄 정리된 문서가 있다면 이 절차를 겪지 않을 수 있었을 겁니다. 책은 출간 된 이후에 편집이 어려우니깐 책에서 바뀐 유저 인터페이스를 다루기는 어렵습니다. 그런데 웹을 이용했으면 어땠을까 하는 생각이 들어요. 책에는 예제 소스가 담겨있는 사이트의 주소가 있는데요. 만약 해당 책에 대한 정리된 정보가 있는 페이지가 있었다면 그것을 참고해서 시간을 줄일 수 있을 겁니다. 무분별한 질문이나 낙서 글이 올라오는 것은 문제이긴 해요. 하지만 적절한 시스템으로 정보 성 글만 표시할 수 있다면 조금 더 상황이 나아질 수 있을겁니다. 한빛에서 그런 용도의 주소를 만들어 책에 표기해주었으면 좋겠습니다.

세번째 문제는 인내심인 것 같습니다. 책이 아무리 좋은 내용을 다루고 있어도 그것을 다루는 사람이 의지가 없다면 진행하기 힘들겁니다. 원론적인 내용이죠. 하지만 이 책은 10개의 게임을 다루고 있고 이 게임들이 연속적으로 개발하는 것이 아니기 때문에 순서대로 따라가서 이 책의 내용을 다 해본다는 것은 쉽지 않습니다. 하지만 책의 일부 파트만을 다룬다고 해서 그것이 나쁘지는 않다고 봅니다. 우리가 책을 볼 때 책의 첫 페이지 부터 끝까지 보지는 않잖아요? 이 책도 비슷합니다. 이 책이 설명하는 10가지 게임을 모두 섭렵하는 것도 뜻 깊은 일이지만 그렇지 않다고 하더라도 큰 문제라고 생각하지는 않아요. 그것도 나름대로 의미가 있습니다.

언어, 유니티 버전, 인내심 이외에 이 책을 읽는데 장애물이 없느냐는 질문을 할 수 있어요. 책의 뒷면을 보면 만들면서 배우는 유니티 게임 프로그래밍을 보아야 한다고 나와있기에 더더욱 그럴 수 있어요. 저는 만들면서 배우는 유니티 게임 프로그래밍 책이 있지만 안타깝게 내용은 보지 못했습니다. 그런데 자신있게 말할 수 있는 것은 안 봐도 되요. C# 언어를 알고 있다면 바로 이 책으로 시작해도 됩니다. 그럼 이제부터 당신도 유니티 개발자가 되는 것입니다. 물론 저도 이제 유니티 개발자이고요.

And