4장 게임 서버와 클라이언트
-게임 서버의 품질
1.치밀한 개발과 유닛테스트 - 한줄한줄 검수, 모든 함수호출의 반환갑 체크 루틴, 자동화된 자가 검증, 유닛테스트를 만들기
-> 이부분도 자세한 내용이 없어 잘 와닿지 않았다, 코드를 직접 다시 보는건 아닐테고, 직접 경험해보지 않았다면 어떻게 할지 떠오르지는 않는다.
2.80:20법칙-프로그램성능의80%는 20%소스코드에서 나타난다는 파레토 법칙 -성능에 영향을주는 일부분은 복잡해지더라도 최적하고, 나머지는 유지보수 하기 쉬운 단순한 구조로 개발
->어떤 느낌인지는 알겠다, 너무 멋지고 쩌는 코드를 막 짤필요는 없고, 병목이 있는 부분, 성능저하가 게임에 방해가 될때 리펙토링을 하거나 미리 알고 제작하고 나머지는 단순하게 제작하라는 이야기같다.
3.1인 이상의 코드 리뷰 -다른사람 소스코드 읽는것으로 서로의 지식을 공유하고, 미리 인수인계가 되는
->이전회사가 적은인원으로 프로젝트를 진행했어서 그런지 애초에 거의 대부분을 맡아 하거나 그럴시간조차 없이 계속 개발을 해야하는 상황이었어서 가능한걸까? 싶다.. 회사마다 다를듯하다
4.가정하지 말고 검증하라-더미테스트, 클로즈베타,오픈베타
-서버가 죽더라도 다시 살아나게
-서버가 죽더라도 최대한 적은 서비스만 죽이기
미러링같은 서버 같은 앞서버가 죽으면 뒤서버에서 바로 받아서 영향없는 서버
-오작동 기록 - 덤프
게임서버를 만드는데의 기본적인 구조들이다
회사를 들어가봤다면 겪어봤던 환경 조성들을 설명해준다
끝까지 이런내용인줄 알았다면 대충 훑고 넘어갔을텐데 오래걸렸다
5장 게임 네트워킹
-UML
플로차트로 프로그램 구조 명세를 표현하는 수단
IOCP서버에 게임로직을 붙이는 단계에 있는 와중에
이런 점을 미리 구성해놓고 간다면 길을 잃는 일이 없을수도 있겠다.
-게임 플레이 네트워킹
경험했던 MMORPG에서는 당연한 것들이다.
클라에서 일부분만 처리하고 검증과 데이터처리를 하는것들이다.
-레이턴시 마스킹
1.보정방법 받은시점부터 해당지점으로 이동하기 - 지연이 있음.
2.추측항법 기기간 레이턴시를 측정, 예측하여 이동
+예측해도 뚝뚝 끊기거나 순간이동하는느낌이 들수도있다.
값을 바로 바꾸는것이아니라 지점을 쫒아가는 식으로 보정
3.일단이동후 보정or이동
4.일단행동후 뒤에 모션
-넓은 월드, 많은 캐릭터 처리
영역필터링 - 게임서버를 경험해봤다면 아는 정보
가시영역에 해당되는 정보들을 서버에서 가지고 있어서
각 플레이어의 가시영역의 해당되는 부분만 방송처리를 하는것
실제로 구현방법에 대해서는 설명해주지는 않는다
-실시간 전략 시뮬레이션 게임에서 네트워크 동기화
락스텝소개하는 내용이다
개인적으로 알고있는 부분은 입력 동기화로, 각시간단위 마다 동기화를 한다
명령,입력단위기 때문에 핵을 쓰기 어렵고, 리플레이가 가능한것으로 알고있다.
단점으로 네트워크가 좋지 않을경우 게임이 진행이 안되거나 느린수있다고 알고있다.
책에서는 레이턴시를 고려해서 언제실행해야하는지 미래시간으로 보정을한다고 한다.
단점으로는 게임 중간에 확들어오는것을 만들기 까다롭다는데
->이 정보를 서버에서 뿌려주면 충분히 되지 않을까?싶다.
플레이어수 많아지기 어렵다 ->통신량이 플레이어수에 따라 늘어나기때문에
원활하게 게임하려면 레이턴시가 가장높은사람을 기준으로 미래시간 결정되야함
입력명령속도에 민감한게임엔 부적합, 필연적으로 미래시간이 들어가기때문
-실제 레이턴시 줄이기
UDP / P2P이용을 한다는걸 알려준다.
물론 어떤식으로 이용하는지는 잘 알려주지 않는다.
-게임 플레이 이외의 네트워킹
주제에 내용이 부합하지 않는느낌이다
플레이의 관련되지 않은 내용이라서 주제를 이렇게 지은건가 싶기도하고
로그인, 캐릭터 생성 시퀀스 다이어그램, 방만들기 다이어그램같은 내용
-해킹과 보안
암호화에 관련된 내용이다
1.대칭키알고리즘 - 암호키1개로 암호화,복호화하는 방식
2.비대칭키알고리즘 - 암호키2개 암호화, 복호화 전용 따로 두는 방식
클라이언트 해킹-바이러스등(사실 이건 사용자가 조심해야하는부분, 제작자가 어떻게할수없음)
서버컴퓨터 해킹-이건 꽤 중요할수도 있다고 생각한다, sql인젝션, 리스닝포트 제외 방화벽으로 막기
게임치트 - 특정패킷복제전송 > 서버에서 메세지 시간 체크 검증필요,
ESP/에임핵의 내용등
어떻게보면 서버에서는 해킹,보안에 취약한부분을 중요하게 다뤄야 할수도있는데
너무 가볍게 넘어간게 아쉬웠다.
사실 꽤 열심히 읽었음에도, 이걸 계속 읽어야하나 싶은 내용들이었다.
자세한 설명은 거의 없는느낌이고, 뒤장에는 모를수도 있는 내용이긴한데, 이런식의 깊이라면
그냥 서버 개발자입문의 인사이트 길잡이? 책같다.
꽤나 늘어뜨리면서 설명 하는부분도 있는데 읽고 보면 나로서는 당연한거를 엄청 길게 설명한 느낌이라..
시간은 오래걸렸는데 뭐지..싶은느낌이었다.
내일은 이런부분이 나오면 빠르게 읽고 다음책으로 넘어가야겠다.
'학습 노트 > 개인학습' 카테고리의 다른 글
250528 수요일 @ 31일차 (0) | 2025.05.29 |
---|---|
250527 화요일 @ 30일차 (0) | 2025.05.28 |
250524 토요일 @ 27일차 (0) | 2025.05.25 |
250523 금요일 @ 26일차 (0) | 2025.05.24 |
250521 수요일 @ 24일차 (0) | 2025.05.22 |
댓글