Recommended
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PDF
PPTX
PDF
Multiplayer Game Sync Techniques through CAP theorem
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
Windows Registered I/O (RIO) vs IOCP
PDF
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PPTX
Next-generation MMORPG service architecture
PPTX
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
PDF
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
PDF
PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
[NDC2016] TERA 서버의 Modern C++ 활용기
PDF
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
PPTX
PDF
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
PDF
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
PDF
송창규, unity build로 빌드타임 반토막내기, NDC2010
PPTX
PDF
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
PDF
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
PPTX
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
PPTX
More Related Content
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PDF
PPTX
PDF
Multiplayer Game Sync Techniques through CAP theorem
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
Windows Registered I/O (RIO) vs IOCP
PDF
What's hot
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PPTX
Next-generation MMORPG service architecture
PPTX
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
PDF
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
PDF
PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
[NDC2016] TERA 서버의 Modern C++ 활용기
PDF
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
PPTX
PDF
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
PDF
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
PDF
송창규, unity build로 빌드타임 반토막내기, NDC2010
PPTX
PDF
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
PDF
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
PPTX
Similar to 테라로 살펴본 MMORPG의 논타겟팅 시스템
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
PPTX
PPTX
Apache ZooKeeper 로
분산 서버 만들기
PDF
PDF
[2B5]nBase-ARC Redis Cluster
PDF
[AWS Dev Day] 이머징 테크 | AWS 서버리스를 이용하여 IoT 수준의 메세지 폭풍을 처리하는 방법 - 김민성 AWS 솔루션즈 ...
PPTX
PDF
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
PPT
Rhea_MMO_SNG_Convergence_Server_Architecture
PDF
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
PDF
Oracle Blockchain_JaeHo Park_CTO
PDF
PDF
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
PDF
Internet Scale Service Arichitecture
PDF
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
PPTX
PDF
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
PDF
Accelerate spring boot application with apache ignite
PDF
[2018] 진화하는 위협, DDoS 트렌드와 방어
PPTX
[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교
More from QooJuice
PPTX
PDF
PDF
Screen space ambient occlusion
PDF
PDF
PDF
Game programming patterns 2
PDF
Game programming patterns
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
테라로 살펴본 MMORPG의 논타겟팅 시스템 1. 2. 3. 4. 5. 6. 7. 무슨 타겟팅이 이렇게 많아…
• 오토냐 프리냐는 중요하지 않음
• 게임에 알맞은 타겟팅으로 구현했을 뿐
• 한 게임에 여러 타겟팅이 존재할 수도 있음
• 그래서 타겟팅과 논타겟팅은 어떻게 구별?
8. 타겟팅과 논타겟팅의 정의
출처 - http://www.thisisgame.com/webzine/community/tboard/?board=36&n=98814
9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. NDC 2012 마비노기 영웅전 카이 포스트모템 中
https://www.youtube.com/watch?v=moDNvqCjYS4&feature=youtu.be
피격 프레딕션 유무 차이
20. 21. NDC 2012 마비노기 영웅전 카이 포스트모템 中
https://www.youtube.com/watch?
v=fW7HIRuIpfs&feature=youtu.be
피격 프레딕션 로직
Frame loop
{
if ( isFirst && cl_hit
&& false == sv_hit )
{
play( flinch )
pause(0)
}
If ( sv_hit )
{
play( flinch )
resume(0)
}
}
22. 23. 실시간 물리 판정
라이덴2
출처 - http://go9ma.tistory.com/1481
던전앤파이터
• 싱글 or MO일 경우
• 클라에서 처리하거나
서버에서 모두 처리하면 됨
24. 테라의 경우
• 심리스 월드로 구현된
MMORPG
• 프레임당 모든 유저의
물리 판정을 처리한다?
출처 - http://www.inven.co.kr/webzine/news/?news=60184
+
25. 26. 27. 28. 충돌 공간
• 각 공격은 시간에 따른 충돌 공간을 포함
• 타겟의 실린더와 충돌 공간의 충돌을
체크함으로써 공격이 적중했는지 판단
29. 스킬 정보
• 이전 슬라이드 스킬의 정보
• Targeting time은 공격을
시작하고 충돌 체크하는
시간을 의미
샘플 테이블(XML)
30. 2단계 처리
• 각 공격(힐, 버프 포함)은 타겟팅 시간을 여러 개 갖고 있음
• 공격 유형에 따라 2 ~ 12가지 이상의 타겟팅 시간을 가질 수 있음
• 각 타겟팅 시간은 Front-End와 Back-End의 2단계로 구성
31. 32. 33. 34. 35. Worker Thread Pattern
• 효과적으로 락을 제거하기 위해 썼다고 함
• 정확한 개념은 구글을 참고
• 한 줄 요약: 스레드 풀
• 테라에서는 CPU 코어 개수 = 스레드 개수
• 코어의 개수, 성능은 스레드와 비례
36. Worker Thread Pattern
• 서버의 모든 요청은 IOCP
• IoCompletionPortTask
패킷 처리
• TimerTask
시스템의 현재 시간 검사
• ClusterTask
타겟 유효 영역 검사
• 루프 처리 시간에 따라 0 ~ 16ms의
타임 아웃 값을 가짐
37. 38. Front-End 구현
• 물체가 32 -> 33로 이동하면
32 클러스터는 물체를 제거
33 클러스터는 물체를 추가
• 소환이나 죽음도 추가나 삭제로
처리
• Worker Thread는 클러스터를
TLS에 저장하여 유지
39. 40. 41. Cluster Update Queue
• 클러스터를 업데이트 하기위한 Dispatcher
• 전역 변수로 모든 Worker Thread가 공유
• 어떤 행동이 클러스터의 업데이트를 필요로 하면
Worker Thread는 업데이트 큐 뒤쪽에 작업을 추가
• 모든 Worker Thread는 같은 알고리즘을 사용하여
같은 큐를 처리하므로 스레드별 TLS에 저장된
클러스터 정보는 모두 동일해야 한다
42. 43. 44. 45. C++ Pseudo code with windows API
• Worker Thread는 가장 최근에 수행된 작업의 위치를 가리키는 인덱스를 가지고 있다
(TLS_CurrentTaskIndex)
• final이 true면 업데이트 큐에서 삭제
46. Cluster Update Task
• 클러스터가 업데이트되는 작업
• 모든 TLS에 동기화되는 것을 보장하기 위해
레퍼런스 카운트를 가지고 있음
C++ Pseudo code with windows API
47. 48. 클러스터의 특징
• 물체를 검색할 때 락이 필요하지 않다
TLS에서 바로 포인터를 얻을 수 있음
• 물체가 움직인다면 모든 Worker Thread는 TLS에 있는 클러스터를 업데이트 해야 됨
49. 클러스터의 특징
• 클러스터의 장단점
NDC12 MMO 서버 개발 포스트 모템
https://www.slideshare.net/devcatpublications/mmo-ndc2012
38p ~ 47p, 94p ~ 107p, 125p ~ 127p
NDC13 게임 서버 디자인 가이드
https://www.slideshare.net/devcatpublications/ndc2013-19986939
48p ~ 62p
50. 51. Back-End 구현
• 업데이트를 자주 해야 함
• Critical Section이나 Spin Lock을 사용하면?
• Critical Section
Blocking으로 인한 성능 하락
• Spin Lock
급격한 CPU 사용 증가로 성능 하락
52. Lock-Free Executor
• 락이 없는 작업 Dispatcher
• 모든 물체는 멤버 함수의 실행 순서를 보장하기 위해 LFE를 가지고 있음
• 업데이트를 위한 함수 포인터를 Task에 랩핑하고 LFE에 랩핑한 Task를 등록
사실 이렇게 인자를 넘기는게 아니라 Task에 랩핑해서 넘긴다
53. 54. 57. 결론
• 빈번한 업데이트로 인해 Atomic Operation을 활용하여 Lock-Free로 구현
• LockFreeTaskQueue는 논블락킹 동시 큐를 기반으로 하여 함수 호출 순서 보장
• 이러한 Front-End, Back-End 처리 과정은 CPU 사용량을 1/20로 줄임
• 1 ~ 6000명의 유저에 대한 CPU(Intel Xeon E5630) 사용율은 1 ~ 6%
• 대기 시간을 줄임으로써 프리 타겟팅 전투를 가능하게 함
58.