본문 바로가기
나/끄적

Cloud patch on server side

by ehei 2010. 2. 24.

Windows via C++을 읽으면 든 아이디어

 

모든 게임 프로세스/스레드는 리소스 프로세스를 통해 게임 내 리소스 핸들을 요청한다. 그러면서 리소스 프로세스는 항상 리소스 팩(스크립트, 데이터 파일 등의 묶음)이 업데이트되었는지 감시한다. 업데이트된 팩을 확인할 경우 새로운 컨테이너(the new라 부르자)에 이 정보를 읽어들인다. 그 동안은 기존 컨테이너(the old라 부르자)의 정보를 사용한다. the old를 액세스하는 요청이 없고, the new에 정보가 모두 읽어들였는지 확인한다. 그럴 경우 리소스 진입점을 the new로 변경하고, 해쉬값 또한 바꾼다. the old는 해제한다. 그리고 리소스 해쉬가 바뀌었음을 메시지 큐에 넣는다. 플레이어는 이 메시지를 받는 순간 자신의 클라이언트를 업데이트해야함을 알게된다.

 

장점

  • 플레이어는 패치를 위해 클라이언트를 종료할 필요가 없다
  • 리소스 패치일 경우 라이브 상태로 가능하다. 물론 실행 파일 자체가 바뀐다면 어쩔 수 없겠지만.

이를 위해 알아야할 점

  • 리소스 프로세스를 독립적으로 만들 수 있는가
  • 만족할 만한 시간에 플레이어에게 패치 요청을 전달할 수 있는가.




' > 끄적' 카테고리의 다른 글

뉴질랜드 신혼 여행 일기  (0) 2011.01.01
코드 개선을 생각한다  (0) 2010.07.27
퍼포스 데이터 옮기기  (0) 2010.02.10
집에 오다  (0) 2009.09.02
나 자신을 낭비했다...  (0) 2007.05.02