가장 충격을 받았던 모순 중 하나가 이동 동기화 관련이었습니다. 단순 패킷을 밀어 넣어주고 서버가 그냥 처리만 해주면 다 될 거로 생각했었지만, 그 현실에는 서버는 대략 1초에서 4번 정도 패킷을 모두에게 보냈을 때, 클라이언트는 유저 사용자 설정상 평균 60 ~ 144번 정도 화면을 다시 그려내죠. 이러한 갭 차이를 속임수를 사용하여 자연스럽게 이어주어 해당 모순을 숨기는 기술이 필요했죠. 하지만 겨우 현실과 다르다는 것 때문에 모순과 직면했다는 건 아닙니다. 카스나, 서든어택, 던파, 레식등 액션을 추구하는 장르에서는 역동적인 움직임이 필요한데 그 역동적인 움직임을 연출하기 위해선 P2P가 끼어 있었다는 사실을 알게 되었죠. 그로 인해 아직 한참 멀었다는 생각이 들 때가 제일 충격적인 일이었습니다.
이 강의 저의 서버 프로그래밍의 첫 시작인 거 같아요. 첫 시작이자 처음으로 희망도 주었고, 동시에 절망감도 주었죠.
거의 7개월 동안 종일 네트워크 관련 게시글을 찾아보고, 외국어 게시글 NAT에 대해 홀 펀칭, P2P, UDP통신등 여러 가지 등을 찾아보면서 게임 서버 동기화 기초 이론까지 모두 찾아보았습니다.
(현재는 릴레이 서버를 만들어 UDP 프로토콜을 이용하여 P2P통신을 구현해 Peer들이 이동을 동기화 하는 시스템을 만들어 보았습니다. "유니티로 던파 마을 동기화를 구현해 보았습니다")
정말 감사합니다. 해당 강의 덕분에 제가 정신을 차릴 수도, 게임 서버라는 흥미를 느끼게 되었다는 것과 현실과 직면하여 그것을 이겨낼 수 있는 능력을 기를 수 있게 도화선을 태워줬던 강의 인 거 같습니다.
진짜 강의 평가에서 5점 만점에 5점을 넘어서 10,000점을 주고 싶습니다. 감사합니다.
그리고 강의 테크트리를 따르지 않고 단독 학습으로 바로 넘어가 버린것에 죄송합니다.
해당강의로 얻은 교훈
"욕심이 있으면 그만큼 책임이 따르는것 같습니다"
앞으로도 더욱 공부할 계획입니다. 현재는 입사포폴 뿐만이 아닌 C++서버도 배우기 위해 언리얼을 공부할 예정입니다.
ㅁ주세요.
와우 ㄷㄷㄷㄷㄷ
응용력과 끈기가 대단하시네요.
중요한 부분은 다 설계 하셨으니, 간단한 전투 기능만 샘플로 마무리하면
어느 회사라도 면접까지 프리패스 할 포폴이 완성될 것 같습니다.
직접 만든 클라를 분할해서 [접속] -[이동 동기화]까지 성공할 때가 가장 감동적인데,
제가 느낀 감동을 동일하게 느끼셨을 것 같고, 앞으로도 늘 건승을 기원합니다 ^^
답글
따뜻한눈빛
2021.07.21항상 늘 감사합니다!!