2010년 7월 14일 수요일

블로그 제목대로 이제 이 곳의 문을 닫습니다.

저번에 한 번 공지를 했던 적이 있는데..... 잘 안보이는 곳에 있어서 그랬는지 그날 지금까지 가장 많은 방문자가 다녀가시는 이변이 생겼었죠.

 

어쨋든 이제 http://blog.naver.com/gameguru 로 이사를 합니다.

2010년 7월 12일 월요일

FreeMind

마인드맵은 아실거예요. 그런데 마인드맵을 손으로 그리다보면 항상 고민되는 것이

 

  • 어떻게 보관을 할까?
  • 계속 해서 마인드맵은 커지는데 그리는 공간은 한정적이다.

 

일 듯 합니다.

 

그래서 무료 소프트웨어로 소개드릴 프로그램이 바로 FreeMind입니다. Java를 기반으로 하고 있는 프로그램이기 때문에 JRE 1.4이상의 버전을 설치하셔야 됩니다. 그런데 이 프로그램이 32bit라서 OS를 64비트를 사용하고 계셔도 JRE는 32비트용으로 설치하셔야 프로그램이 동작합니다. 안그러면 실행이 안되요. 귀찮으시면 아래 링크에서 다운로드 받으시면 됩니다.

 

하지만 FreeMind 소프트웨어도 단점은 존재하더군요. 개인적으로 생각하는 단점은

 

  • 마인드맵이 손을 사용함으로써 뇌를 활성화하는데 그런 부분이 없다.
  • 자유로운 라인과 그림들을 사용할 수 없다.
  • 아이콘을 삽입할 수 있는데 사용자정의 아이콘이 없다.

 

다운로드

 

2010년 7월 11일 일요일

서평 #3

 

제목 : Real-Time Rendering 2nd

저자 : Tomas Akenine-Moller,Eric Haines

역자 : 신병석,오경수

출판 : 정보문화사

제목 : Real-Time Rendering 2nd

저자 : Tomas Akenine-Moller,Eric Haines

역자 : 신병석,오경수

출판 : 정보문화사

 

3d graphics 분야는 전산학에서 그리 각광을 받고 있는 분야는 아닌 것 같다(물론 국내를 기준으로 해외가 어떤지는 잘 모르겠다). 게임 관련 산업의 성장으로 인해 게임 프로그래밍에 대한 관심이 조금씩 모이면서 자연스레 3d 게임 프로그래밍에 대한 관심으로 이행되어왔다고 볼 수 있겠다. 그래서 현재는 게임 프로그래밍에 종사하는 분들(물론 3d클라이언트 프로그래머들만)과 게임 프로그래머가 되고자 지망하는 분들이 3d graphics에 관심을 두고 있지만 게임이라는 한정된 영역에서 그것도 너무 실무적인 것들만 빨리 알고자하는 우를 범하고 있다는 생각을 하지 않을 수 없다. 마치 DX나 OpennGL을 사용해서 3d프로그래밍을 하는 것이 3d graphics 전부를 이야기하는 것처럼 말이다. DX나 OpenGL 관련 서적을 보더라도 가장 먼저 나오는 것은 3d graphics에 관련된 기초 수학(벡터,행렬,쿼터니온,변환 등)에 대한 내용과 그래픽 파이프라인에 대한 내용으로 시작을 한다. 왜냐하면 이 것이 가장 기본이기 때문이다. DX나 OpenGL은 하드웨어와 애플리케이션을 연결해 주는 하나의 interface일 뿐이다. 결국 3d 프로그램을 하기 위해서는 3d graphics에 대한 이해와 관련 알고리즘들을 많이 알고있어야만 가능한 것이다. 3d graphics에 대한 이해와 지금까지 알려진 많은 알고리즘들에 대해서 단 한권의 책으로 시작을 하고 싶다면 이 책이 그 해결책이 될 것이다.

이 책은 제목처럼 3d graphics 분야에서 off-line이 아닌 real-time쪽 내용들을 집대성한 책이라고 볼 수 있을 것 같다. 물론 real-time과 off-line의 3d graphics의 기본이나 알고리즘이 완전히 다른 것은 아니다. 그래도 이 책에서 말하는 모든 내용은 사용자와 상호작용이 가능한 정도의 응답 속도를 가지는 3d graphics 환경을 구축하기 위한 내용들만 모은 한마디로 3d graphics에 부분 집합으로 보면 될 것같다. 2000년도에 1판을 읽어보면서 그 내용의 깊이(물론 특정 장들은 내용이 좀 심층적이고 특정 장들은 소개 정도에 그치지만)와 다루는 영역에 있어서 놀라움을 금치 못했는데 real-time graphics 분야가 3d 그래픽 카드의 무어의 법칙을 뛰어넘는 발전으로 인해 많은 변화가 있었기에 1판이 이제 구식 책으로 변화가던 시점에 2판이 출시 되었고 내용의 충실함과 다루는 영역의 방대함은 여전하였고 그래픽 카드의 가장 큰 변화였던 셰이더에 대한 내용이 추가되었고 현재 게임에서는 많이 사용되지 않지만 DX 10에서 적극적으로 지원하기로 한 곡선/곡면에 대한 내용도 추가되었다. 개인적으로 볼 때 이 책은 초/중/고급 모든 독자들에게 도움이 되는 책인 것 같은데 먼저 3d graphics에 대한 기초적인 내용들을 충실하게 다루고 있기 때문에 초급 독자분들에게 교재로써 손색이 없는 것 같고(2,3,4,5장과 부록 A,B 부분만이라도 꼭 읽자) 이 책의 목적이 여기저기 흩어져 있는 정보를 모두 모아 총망라한 책이기 때문에 중/고급 독자들이 필요한 내용을 찾고자할 때 인터넷에서 검색 사이트에서 검색어로 검색을 하듯이 이 책에서 필요한 장을 살펴보고 이 책에서 제시한 래퍼런스들을 찾아서 읽어보면 많은 도움을 받을 수 있을 것이다.

끝으로 한국어판에 대해서 잠시 이야기를 하자면 솔직히 이 책이 출간될 것이라고 생각을 한 적은 없었다. 이 책은 대학 교재 형식의 책이라서 실제 실무에 관련된 책 위주로 번역서가 출간되는 현실(물론 게임 프로그래밍관련해서 다른 분야는 잘 모르겠다)로 인해 번역서를 기대하는 것은 무리라고 생각했는데 뜻하지 않게 출간이 되었고 번역의 수준은 번역을 하신 두 역자분들이 관련 분야의 교수여서 그런지 상당히 자연스럽고 이해하기도 좋았다. 다만 용어 선택에 있어서 게임 업계에서 표준 용어로 사용하고 있는 용어가 아닌 용어들을 선택한 점이 좀 아쉽고 한국어판의 책이 좀 크다는 것이 또 다른 아쉬움으로 남는다.

서평 #2

 

 

제목 : 게임 프로그래머를 위한 C++

저자 : Noel Llopis

역자 : 최현호

출판 : 정보문화사

제목 : 게임 프로그래머를 위한 C++

저자 : Noel Llopis

역자 : 최현호

출판 : 정보문화사

 

처음 제목만보고 이 책을 생각했을 때는 판매의 수단으로 제목을 이용하는 건가? 라는 생각을 했다. 프로그램을 작성하는데, 게임 프로그램용 C++가 따로 있는 것은 아니기 때문이다. 그런데 이 책을 읽어보고 난 후에는 많은 C++ 책들 중에 명저라고 불리는 책들이 다들 자신만의 색깔을 가지고 있듯이 이 책도 자신만의 색깔을 가지고 있는 아주 좋은 책이라는 생각이 들었다.

이 책은 게임 프로그램이 가지는 특수성인 속도가 가장 중요하다는 점과 메모리의 사용이 한정될 수도 있다는(콘솔용 게임 제작시) 점을 부각시켜서 책을 집필했다는 측면에서 다른 서적들과 차이가 있다고 할 수 있을 것 같고 게임 제작시 책에서 기술한 기능, 기법들이 사용되면 좋은 경우와 아닌 경우에 대해서 이야기를 하고 있는 점도 이 책만의 장점인 것 같다.

1부에서는 흔히 상속으로 인한 메모리 사용량의 증가가 있고 가상 함수는 일반 함수보다 가상 함수 테이블에서 함수를 찾아야 하기 때문에 느리고 예외 처리도 프로그램의 속도를 저하시킬 수 있기 때문에 사용하지 말아야하고 레퍼런스를 오인해서 포인터만 사용하는 등 실제로 프로젝트를 진행하면서 서로 이견을 가지던가 아니면 오해를 하고 있는 기능들에 대해서 비용 분석과 장단점들에 대해서 자세히 논의 하고 있다(물론 아시는 분들이 보면 진부한 내용일 수도 있다).

그리고 2부에서는 성능 향상을 위한 방법들에 대해서 이야기하고 동적 할당의 속도 저하 문제와 메모리 단편화 문제들을 해결하기 위한 메모리 관리자 제작에 대해서도 논의하고 또 STL에 대해서 속도나 메모리 사용량 측면에서 개인이 작성한 자료 구조들보다 못하다는 오해를 가지고 있는 게임 프로그래머들의 오해를 말끔히 해소할 수 있도록 STL에 대해서도 사용 비용과 성능에 대해서 자세히 논의를 하고 있다.

마지막으로 3부에서는 꼭 게임에 종속적인 내용도 아니고 C++ 언어 종속적인 내용도 아니지만, 실제적으로 사용되는 여러 기법들에 대한 내용으로 추상 인터페이스, 그리고 그 활용예인 플러그인, 자시만의 RTTI시스템, 팩토리 패턴을 이용한 게임 엔티티들 생성, 또 게임 프로그램을 제작할 때 가장 중요하고 힘든 세이브, 로드에 대해서도 이야기하고 프로젝트 진행시 필요한 물리적 설계와 안정적인 게임 프로그램을 작성하기 위한 방법들에 대해서 논의하는데 프로젝트를 진행하면서 아주 실용적인 기법들이기 때문에 많은 도움이 될 것이다.

이 책은 솔루션 북이 아니라 가이드 북이다. 한 마디로 지침서로서 실제 프로젝트 진행시 고려해야할 사항들에 대해서 이야기하고 있고 실제 그러한 사항들을 적용해서 프로그램을 하는 것은 독자의 몫이다. 솔루션 북을 원하는 독자에게 이 책은 정확한 해답이 될 수 없다는 것을 미리 밝혀둔다. 이 책의 저자가 쓴 내용들은 실제 프로젝트를 진행해본 분들이 읽어보면 많은 공감을 할 내용이다. 그 만큼 이 책의 내용이 실용적이라는 것이고 이 책을 읽으므로써 많은 세월 경험을 쌓지 않고도 그러한 경험을 할 수 있은데 이러한 특징은 본래 책이 줄 수 있는 장점이고 이 책이 그러한 도움을 준다는 것 자체가 이 책의 가치를 부여하는 것이라고 말하고 싶다.

2010년 7월 9일 금요일

여자 사람 #38

사와지리 에리카

 

미니 서평 #12


 

제목 : Working Effectively with Legacy Code

저자 : Michael C. Feathers

출판 : Prentice Hall

 

이 책은 제목대로 Testing Code가 전혀 없는 기존 코드를 좀 더 좋은 코드로 변목시키기 위해서 Testing Code를 어떻게 활용할 수 있는가에 대한 책이다. 이 책을 보면 단순히 TDD가 그렇게 좋은 방법론인 것인가? 라는 생각보다는 Testing을 하기 위해서 좀 더 기존 코드를 잘 이해할 수 있고 객체의 의존성을 줄이고 Big Fat 객체들을 슬림하게 다이어트 시킬 수도 있다라는 것을 배웠다. TDD에 반감을 가지고 있지만 이 책을 보고 TDD가 아니더라도 UnitTest를 하는 것이 좋다는 것을 알 수 있었다.

NBA에 큰 사건이 일어났군요.

MLB의 시즌이 끝나도 항상 스토브리그때문에 많은 관심을 받듯이 NBA도 시즌이 종료되어도 에어컨리그때문에 많은 관심을 받습니다.

 

그런데 특히 올해는 전례를 보기 힘들 정도로 대어급 FA가 많아서 에어컨리그에 많은 관심을 두고 있었는데 결국 가장 주목을 받는 선수는 킹 제임스(르브론 제임스)였는데 제임스가 마이애미행을 결정했네요.

 

드웨인의 마이애미 잔류와 크리스 보쉬의 마이애미 이적만으로도 동부의 강자로 떠올랐는데, 이제 킹이 이적을 함으로써 보스턴의 빅3(레이 앨런, 케빈 가넷, 폴 피어스)가 탄생할 때 엄청난 주목을 받았고 그 다음 시즌 바로 우승을 했었지만, 그 빅3는 이들에 비하면 작게만 느껴지네요.

 

팀으로서 시너지가 생기고 부상이 없다는 가정과 백업 멤버가 충실하다면 리그의 각종 기록들을 다시 제조할 수 있는 엄청난 팀의 탄생입니다. 올해 NBA시즌이 기다려집니다.

하필 게임 제목이

우리 회사가 만들고 있는 게임의 제목은 아키블레이드다. 그런데 구글에서 아키블레이드를 검색해보면 다음과 같은 재미있는 결과가 나온다.

게임시장 한-미 `빅3` 맞대결

- 디지털타임스 - 3일 전
서정근 기자 2010년 하반기 이후 국내 게임 시장을 두고 `테라', `아키에이지', `블레이드앤소울' 등 토종 MMORPG(다중접속역할수행게임) 빅3와 `월드오브워크래프트: ...

지금 한창 게이머들의 관심을 받고 있는 토종 MMORPG의 아키에이지와 블레이드앤소울이 문제의 작품이다. 이 두 게임의 제목이 조합되어서 결국 우리 게임은 뒤로 밀리게 되어있는 것이다. 슬프다.

2010년 7월 8일 목요일

여자 사람 #37

사사키 노조미

 

완벽한 특이점 발생.

 

어제 블로그 문을 닫고 Naver 블로그로 이전한다고 공지를 올렸는데 보신 분들이 있는지 의아할 정도로 저 갑작스런 특이점이라니 역시 설명하기 힘들군요.

Unreal Engine은 좋은가요?

Unreal Engine은 다음과 같은 점이 좋습니다.

 

  • 빠르게 프로토타입을 만들고 확인할 수 있으면 제공되는 툴들을 이용해서 프로그래머, 아티스트, 기획등 모든 개발자들이 지속적으로 게임에 변화를 주고 바로바로 확인을 할 수 있습니다.
  • 이제 UE3도 나온지 5년이 지나면서 UDN에 도움이 되는 많은 문서들을 확인할 수 있습니다.
  • 툴 사용에 대한 동영상 강좌들도 많이 준비되어있고 한글 자막이 있습니다.
  • 많은 개발사들이 사용하고 특히 한국 Maillist가 있어서 사용중 궁금한 적으로 물어볼 수 있습니다.
  • UDK라는 공개용 엔진이 있어서 툴이나 스크립트를 사용할 수 있는 초보를 구하기 쉬울 수 있습니다.

 

그러나 OOP적으로 Unreal Engine이 좋은가요? 라고 누군가 질문을 하신다면 아니요. 라고 답할 것 같습니다. 객체 계층의 최상위 객체인 UObject가 SRP(단일 책임 원칙)을 위배하고 있습니다.

 

UObject는 다음과 같은 책임을 가지고 있습니다.

 

  • Type Info
  • Script Executor
  • Object Factory
  • Garbage Collector

 

더 큰 문제는 실제로 가장 많이 사용하는 AActor 객체는 더욱 거대한 몬스터 객체라는 것 입니다. 결국 AActor가 몬스터다 보니 그 하위 객체들 중에 실제로 화면상에 보이지도 레벨 에디터 상에서 레벨에 세울 수도 없는 GameInfo와 같은 객체가 그래픽 출력이나 물리적 상태에 대한 속성들을 다 가지고 있습니다.

 

개인적으로 Unreal Dedicated Server를 개량하려고 생각 중이여서 이런 거대한 객체가 있다는 것이 메모리 사용에 별로 좋지 않기때문에 성능에 대한 고민을 안할 수가 없습니다.

 

In-House Engine이 아닌이상 자기 입맛에 딱 맞는 엔진은 있을 수 없습니다. 그래서 어떤 엔진을 사용하려고 한다면 꼭 평가판을 심도있게 사용해보고 결정하는 것이 좋습니다. 언리얼엔진도 마찬가지로 꼭 개발팀에서 평간판을 사용해보고 모두의 의견을 듣고서 결정하시라고 당부드리고 싶네요.

2010년 7월 6일 화요일

선택은 느릴수록 좋다.

Scaleform이라는 회사가 있다. 3D랜더러에서 플래시 데이터를 출력해주는 미들웨어인데 최근들어 전세계에서 많은 게임들이 이 GFx라는 미들웨어를 이용해서 UI를 제작한다.

 

작년 9월에 처음으로 GFx 도입을 결정하기 위해서 평가판을 사용했고 생각보다 편이성이 뛰어나고 로직과 스킨이 별로로 작업 진행을 할 수 있는 직교성때문에 작년 10월에 2천만원을 주고 라이센스를 했다.

 

문제는 올 5월에 발생했는데 Epic에서 UE3에 GFx를 통합하고 UE3 라이센시와 UDK 사용자들에게 무료로 제공을 하겠다고 발표를 했다.

 

그 직후 우리는 Scaleform 코리아와 미팅을 했고 Scaleform 코리아 쪽에서 특정 기능(3Di)이 통합 버전에는 사용되지 않고 GFx에 대한 문의도 자신들에게 할 수 없으며, 버전이 예전버전이라는 말로 그냥 계속 사용하시는 것이 좋다고 얘길했었다.

 

최근들어 GFx가 통합된 QA빌드버전의 UE3가 나왔고 그래서 UDN에도 관련 문서가 포스팅되면서 그들의 말이 다 거짓말로 들어났다. 3Di는 통합되어 있었고 GFx에 관한 문의는 라이센시라면 Scaleform에 할 수 있었다.

 

문제는 작년 라이센스를 진행할 때 우리가 바로 UI작업을 하지 않아도 되었기때문에 굳이 그 때 라이센스를 하지않았어도 되는데 너무 빠르게 라이센스를 진행한 우리 사장의 성급함일 것이다. 

여자 사람 #36

유미 스기모토

 

2010년 7월 4일 일요일

독일의 경기력이 ㄷㄷ

진짜 올해 발락의 부상으로 구심점도 없고 자국 리그에서 벤치멤버인 포돌스키와 클로제의 대표 선발로 많은 비난을 받았던 독일팀이 26.6세라는 월드컵 참가국 중 가장 평균 나이가 어린 팀으로 출전해서 축구의 새로운 비전을 제시하는군요.

 

경기를 너무 재미있게 합니다. 공수 전환도 빠르고 공간으로 열어주는 패싱은 정말 엄청나군요. 그리고 빠르고 힘있게 그 공을 따내서 시작되는 공격 작업은 아무리 칭찬을 해도 부족할 정도네요. 영국과의 경기때는 좋은 경기력이었지만 상대적이고 분위기를 타서 그런건가? 라고 생각을 했는데 아르헨티나하고 다시 같은 경기력을 보여주는 것을 보니 진짜 실력이였네요.

 

파라과이와 스페인의 승자와 4강전을 하는데 스페인이 승리할 거라고 생각을 하고 있기때문에 스페인 대 독일 또 미리보는 결승전이겠네요.