새롭게 서버통신을 이용한 게임을 개발하고 싶었는데 서버통신을 이론적으로만 접했고 직접적인 경험을 한 실습이라고는 와이어샤크를 이용한 패킷정보확인과 같은 기초적인 부분을 했었다.
유니티를 3년을 써봐도 안 해본 거는 어렵다.
서버를 직접 개발하는 것은 '직접 개발'이라는 단어에서부터 경계심을 일으켜 고려하지 않았다.
그래서 찾아본 유니티에 지원되는 서버 프로그램들은 대표적으로 Photon이랑 한국에서 제작한(??)가 있다.
스팀게임에서 유명한 폴가이즈도 Photon을 이용했다고 해서 Photon으로 결정했다.
근데 이게 생각보다 정보도 적고 한국어로 설명해주는 사람들이 거의 없었다. 있어도 아예 0부터 시작하는 나한테는 잉? 이거는 어케하는건데 하는 부분이 너무 많았어서 책에서 참고하는 방식을 선택하게 되었는데 책들도... 너무 오래되서 Pun2를 사용하는 현재에서는 맞지 않는 코드들만을 보여주고 있었다.
처음에는 Pun Classic을 사용하느라 오류가 없는 코드들이었지만, Pun2의 존재를 알고 난 뒤에 스크립트를 이동시키자마자 classic에서는 정상적으로 작동하는 코드들이 에러로 바뀌는 모습을 보고 약간 현타왔었다.
내가 참고해던 책은 "멀티플레이 게임 제작을 위한 유니티 네트워크 게임 만들기"라는 책이었는데 얘는 한국 정발이 2015년이었다. 상당히 오래된걸 알았지만 그래도 유니티 네트워크를 다루는데 포톤을 이용하는 책이 없어서 눈물을 머금고 빌린 책이었다. 결과적으로 코드에 있는 에러를 수정하는 데만 이틀이 걸렸다.
Photon Classic에서 Photon2로 넘어오면서 없어진 메소드들이 많고(특히, Friend관련 메소드들...) 남아있더라도 매개변수가 변경된 경우가 대부분이었다. 그리고 소문자를 대문자로 바꾼 함수들도 많아서 전부 확인하면서 수정해야 했다.
이 글을 남기게 된 이유도 여기서 나온건데 나처럼 시간 버리는 사람이 없었으면 해서 유니티에서 Photon2를 이용하는 책들을 몇 개 남긴다.
"절대강좌! 유니티5 Unity 전문 개발자가 알려주는 효과적인 게임 제작기법" - 이재현(위키북스) Pun 사용인데 생각보다변경되는 부분이 크지 않음(Friend를 구현하지 않아서...일 듯)
"레트로의 유니티 게임 프로그래밍 에센스" - 이제민(한빛미디어)
⬆이 마지막 책은 특이하게 두 개의 책으로 구성이 되어 있다. 1권과 2권 모두 같은 목차를 공유하지만 5부(11장)이전은 1권에 수록되어 있고 이후로는 2권에 수록되어 있다. Photon2를 사용하는 부분을 보려면 2권을 확인해야 한다! 혹시 구매를 하게 되는 경우에는 필수로 참고하길 바란다.
이외에도 많은 책들이 있을 수도 있지만 일단 내가 확인한 책은 여기까지이다.
또, 구분법이라고 하면 Photon Classic을 이용하는 책에서는 using Phton.Pun;이나 using Photon.Realtime; 네임스페이스 들을 전혀 사용하지 않는다. 책을 봤는데 이 네임스페이스가 있는 코드면 Photon2를 사용하고 있으니 안심하고 구매해도 될 것 같다.