멀티플레이어 게임 프로그래밍

책 리뷰/네트워크

2020. 3. 8. 15:28

 

더보기

 

네트워크 프로그래밍에 관심이 많은 분, 게임 업계에 서버 프로그래머로 취업하려는 분들에게 좋은 책이에요.

이미 책의 저자가 정평이 난 분이라.. 책의 가치는 보장이 된 상태인 듯합니다. 저도 서버 공부를 올해 처음 시작

했는데, 이론적인 부분부터 시작해서 실제 구동 코드까지 굉장히 자세하게 쓰여져 있어서 공부하기 좋았던 것 같아요. 네트워크 지식이 전무한 분도 첫 도서로 읽어보기 좋은 것 같습니다! (다만, c++ 지식은 있어야 해요~)

 

더보기

 

전반부에서는 OSI 계층의 밑 단층을 다루면서 굉장히 이론적인 내용이 나옵니다. 하지만 물리 계층 같은 경우에는 전산학 범위를 벗어나서 그런지 언급만 하고 넘어가고요.. 결국 네트워크란 패킷을 어떻게 만들어서 어떻게 전송할 것인가에 앞서 패킷이 어떤 식으로 전송되는지 그리고, P2P 환경에서 장애가 되는 NAT 투과 같은 기법들이 소개가 됩니다. 

 

중반부에서는 소켓 통신과 관련된 부분에 대한 설명과 실제 패킷을 어떻게 구성해야 하는지에 대해서 다뤄요. 직렬화를 하는 방법과 객체 리플리케이션 방식.. 그리고, 네트워크 토폴로지 ( P2P와 C-2 모델)를 끝으로 전반적인 네트워크상에서 패킷을 전송하는 방법들이 소개되었다.

 

마지막으로, Reliable UDP 구성과 레이턴시 발생을 대비한 해결책들과 보안법들이 나옵니다. 사실 저는 Reliable UDP 구성까지만 제대로 보고 뒤에는 개념만 다졌어요.. 나와 있는 코드만으로는 해결이 되지 않는 부분이 많기 때문에 '이런 게 발생할 수 있구나~' 정도로 이론 위주로 정리만 했습니다 ㅜㅜ.. 이 부분은 아직 제가 완전히 파악하고 코드화 시킬 수 없다고 판단했기 때문입니다. 필요에 따라 공부를 따로 하는 게 좋다고 생각해요! 

 

그리고, 상용 엔진과 스팀에서 제공되는 함수 이용하여 서버 구현.. 클라우드 관련 내용과 모던 C++ 관련 내용도 있으니 책 구성 자체는 빵빵하다고 생각해요~

 

더보기

 

사실, 이 책을 읽기 전에 배현직 대표님의 '게임 서버 프로그래밍 교과서'를 읽었었는데 네트워크 책으로 고른 첫 번째 책이었고, 필요한 내용과 키워드들을 얻는 데는 성공했습니다. 하지만, '과연 내가 이걸 구현할 수 있을까?'에 대해서는 조금 의문이 가더군요. 책 리뷰를 네이버 블로그에서 쓴 적이 있지만, 기본적인 내용 이해나 면접 대비용으로는 괜찮을 거라 생각하고 직접 구현하는 것과는 약간 거리가 있어 보입니다. 물론 깃 허브에 의사 코드와 관련된 부분이 코드화 되어서 올라와 있지만 자세한 코드 설명이 없던지라 저 같은 초보자가 보면 책과의 괴리감이 느껴질 수도 있다고 생각합니다. 

 

아무튼 이러한 점 때문에 실제 구현 코드와 함께 설명이 되어있는 책을 원했었는데, 마침 '게임 서버 프로그래밍 교과서' 책을 살 때 혹시 몰라서 같이 사게 된 '멀티플레이어 게임 프로그래밍' 책을 보게 되니 코드와 함께 설명이 잘 되어 있어서 만족했습니다. 아무래도 번역판이라서 글의 흐름(?) 같은 것들은 배현직 대표님의 책이 낫다고 생각합니다. (전공 서적 느낌이 강합니다!) 하지만, 그만큼 정말 자세하고 바로바로 따라 할 수 있는 코드들과 설명들 덕분에 학습에 있어서는 효과적이었습니다.

 

더보기

 

거의.. 없는 것 같아요. 코드들도 최신화가 되어 있어서 구동에 문제도 없었고.. 왜 사람들이 그렇게 추천을 해줬는지 알 수 있는 부분이었습니다. 물론 뒷장 내용은 제 필요에 따라 생략을 했기에 이것은 단점이 아닙니다.

 

더보기

 

결국 결론은.. 굉장히 좋은 책이다! 

네트워크 두 번째 책으로 정말 손색이 없는 책이었습니다 ㅋㅋ.. 

이 책을 끝으로 깃 헙에서 네트워크 관련 공개 코드들을 보고 공부할 생각이에요.

게임 코디 같은 사이트에서도 이미 유명한 책이라 ㅎㅎ 안심하고 사셔서 공부해도 좋다고 생각합니다!

 

-끝-