|
책이 상당히 어렵다. 귀여운 두부장수, 풋콩장수들에게 혹했다가 된통 당했다. 내가 책 수준을 너무 얕봤나 보다. 기본적으로 유니티 엔진에 대한 기본기능 설명은 전혀없다. hierarchy 창이나 project 창, inspect 창에 대한 설명도 전혀 없다. 심지어 그림 한 장 없다. script를 작성해야 하니 monodevelop 창의 모습을 볼 수 있을 줄 예상했지만, 한 번도 나오지 않는다. 작은 console 창 하나 찾을 수 있을 뿐이다. cube 나 capsule 과 같은 primitive GameObject 는 하나 나올 줄 기대했는데, 이 녀석들도 코빼기도 보이지 않는다. Instantiate 함수를 포함하여 몇몇 함수를 사용하고 있으므로, 이 함수들에 대한 설명이 나올 줄 알았는데, 이마저도 전혀 없다. 힘수에 대한 설명이 아예 없다. 책 소개에 나오는 동영상을 보면, particle effect 도 보이나, 이 부분 설명도 전혀 없다. 유니티 개발서적을 한 권 이상 읽었거나, 예제 동영상으로 공부해본 적이 없는 사람들에게는 정신적 충격이 상당할 것으로 보인다. 한 마디로 멘붕이다. 하지만 우리가 바라던 책이 이런 책이 아니었나? 그동안 기본서적이 너무 많이 나와서 중고급 기능과 네트워크 기능에 대해서 심한 갈증을 느끼고 있었으니까. 턴방식 틱택토 게임을 만드는 부분은 아주 좋았다. 네트워크를 할 때 주의해야 할 게 무엇인지 전체를 내려다 보게 해준다. 무엇을 언제 통신할지 생각해보게 해준다.
어떤 정보를 보내고 어떤 타이밍에 이를 주고받을지에 대해서 감을 키울 수 있게 해준다. 통신을 할 때는 가능한 한 적은 정보를, 적은 횟수로 보내는 게 좋은데, 이에 대해 상세히 설명해준다. 상대가 모르는 정보를 적절한 타이밍에 주고 받는다. 초보자는 이런 감각을 기르고 싶은 것이다. 틱택토게임에서 O 와 X 를 그리는 부분이 있다. 내가 어떤 칸에 도형이 그렸는지 상대편에게 보내줘야 하는데, 이 데이터를 (0, 0), (0, 1), (0, 2)... 형태의 2차원 정보로 보내는 것이 아니라 1차원 정보로 보내는 부분도 아주 유용했다. 0에서 8까지의 숫자만으로 위치를 알려줄 수 있다니!
예전에 C++ 게임디자인을 한 사람들에게는 아주 기초지식이겠지만, 유니티 엔진으로 게임세계에 처음으로 들어오신 분들에게는 소중한 깨달음이었을 것이다. 네트워크로 통신을 하게 되면, 통신지연이 일어날 수밖에 없다. 캐릭터가 이동하면, 나의 단말과 상대편의 단말에 나타나는 캐릭터의 위치가 조금 다르게 나타난다. 캐릭터의 위치를 모두 송신하기에는 송신할 데이터가 너무 많기 때문에 이동좌표를 모두 보내는 것이 아니라, 듬성듬성 데이터를 보내게 된다.
상대편 단말은 이렇게 받은 데이터를 가지고 보간을 해서 캐릭터를 이동시킨다. 그동안 선형보간에 대해서 다룬 많은 유니티 책을 읽으면서도, 한 번도 상대편 단말에서는 내 캐릭터가 어떤 형태를 길을 따라 걸어갈지 생각해보지 않았다.
이제 나도 보는 눈이 생겼다. 개발자는 이 부분에서 취사선택을 해야한다. 속도냐 정확도냐? 끊김이 없는 게임경험을 얻도록 하기 위해서, 서로 다른 단말 화면에 나오는 캐릭터의 불일치를 감수하는 디자인을 선택해야하는 순간이 온다는 말이다. 이런 부분은 초보자가 디자인 하기 어렵다. 그만큼 현장경험이 중요한 거니까. 이런 부분을 언급한 유니티 책이 있었던가? 내 단말에 나타난 보스를 내 캐릭터가 공격하면, 상대편의 단말에서도 내 캐릭터가 보스를 공격한다. 이때 나의 단말에서 한 공격은 유효한 공격으로 여겨 점수에 반영되지만, 상대편 단말에서 내 캐릭터가 한 공격은 유효한 공격으로 여기면 안 된다. 그냥 하는 척 하는 것 뿐이다. 그렇지 않다면, (데미지 X 단말의 수) 만큼의 공격을 보스가 받게되는 어처구니 없는 일이 일어난다. 이런 부분을 생각해본 적 있을까? 이 부분을 어떻게 처리했는지 궁금하지 않는가? 이런 기능은 생각해보게 하는 것만으로도 충분히 가치가 있는 책이었다. 책의 소스코드를 철저히 뜯어보고 기능 하나하나를 다 내 것으로 만들자.
|
|
유니티 네트워크 프로그래밍은 어려울거라 생각할 수 있는 네트워크 프로그래밍에 대한 내용을 삽화 등으로 매우 쉽게 가벼운 만화를 읽는 느낌으로 배울 수 있는 도서입니다. 간단한 예제들도 있기 떄문에 배운 내용을 바로 실습을 통해 어떻게 작동이 되는지도 알 수 있어 좋은 책입니다. 아직 완주는 못했습니다만 어서 완주를 해서 기술을 익혔으면 합니다. 유니티 네트워크 프로그래밍 추천드립니다. |
|
많은 분들이 책 표지에 그려져있는 예쁜 캐릭터에 속아넘어갔을거라고 생각합니다. 이 책은 네트워크 게임의 동기화를 구현하는, 그것도 상당한 수준의 동기화를 구현할 수 있는 거의 모든 이론적 기반을 설명하고 있습니다. 그것도 매우 쉽게~ 이 책은 서비스관리 및 DB에 대한 측면(아웃게임시스템)은 어느정도 배제하고, 인게임 시스템의 동기화에 대하여 상세하게 설명하는데 목적을 두고 있는 것 같습니다. 인플레이시의 이동, 타격, 아이템 관련 패킷 등(거의 모든 것이죠.^^)에 대한 처리를 그림과 함께 친절하게 설명하고 있는데 한국에서 출판한 모든 관련서적들을 살펴봤다고 생각하는 입장에서 게임 동기화의 기본 이론에 대해서 이 책 만큼 추천해주고 싶은 책은 없었습니다. 상용 서비스중인 게임 중에서 이 책의 내용보다 더 떯어지는 기반의 게임도 많으며 UDP로 P2P를 구현한 게임들 중에서도 컨텐츠에 강력하게 결합되어있는 보간을 제외하면 일반적으로 이 책의 설명을 벗어나지 않는다고 생각합니다. 프로그래밍의 기반이 있으면서( 이게 중요한 부분이겠죠..ㅎㅎ ) P2P 동기화를 구현하고 싶은 프로그래머에게 상당한 도움이 될 것입니다. |
|
반다이 남코 현역 프로그래머가 알려주는 유니티 네트워크 프로그래밍
예전에는 오프라인게임이 좋았지만 지금은 온라인게임이 대세인데 지금 당장 만들어 본다면 가능할까 저는 사용자의 입장에 보면 너무나도 어렵고 어떻게 해야할지를 모를것 같습니다. 하지만 이책을 읽어보면서 느끼는 점은 온라인게임도 어떠한 방법이나 기초를 알면 만들수가 있다는것입 단순히 게임을 하는것이 아니라 내가 만든 게임을 남이 재미있게 한다면 정말로 기분이 좋을것 같습니다.
하게 되면 온라인게임을 만들수가 있다는것으 알려주는것 같습니다. |
|
다른분의 댓글보고 몇자 적습니다. 분명히 이책은 프로그래밍 초보용 책은 아닙니다. 이책은 유니티 입문책이라기보다 활용 책으로 생각됩니다. 유니티는 두개의 프로그래밍 언어를 지원합니다. C# 과 Javascript 입니다. http://docs.unity3d.com/kr/current/Manual/CreatingAndUsingScripts.html 당연히 두가지중 한가지는 쓸줄 알아야 볼수있는게 당연합니다. 둘중에 추천하라면 대부분 C#을 추천합니다. 좀더 언어적으로 사용하기 쉽습니다. 보통 네트워크 프로그래밍관련 서적은 기초적인 언어 문법등은 설명하지 않습니다. 예를 들어 자바 네트워크 프로그래밍 이나 네트워크 프로그래밍의 목차만 봐도 알수있습니다. 이책은 유니티를 어느정도 쓸줄알면서 단독으로 실행할수 있는 게임은 만들수있다는 가정하에 네트워킹을 활용한 게임을 만들기 위한 내용이 있는책입니다. 위에 소개한 책들로 네트워크 프로그래밍에 대한 이해를 하신후 보시는게 좋을것 같습니다. 이책이 Best of Best 는 아닙니다. 특히, 유니티가 5로 버젼업을 하면서 책에 있는 소스와 차이가 생긴건 정말 아쉽습니다. 하지만 Good 이상은 되는 책이라고 생각합니다. |