Recommended
PDF
PPTX
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PDF
Multiplayer Game Sync Techniques through CAP theorem
PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PDF
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
송창규, unity build로 빌드타임 반토막내기, NDC2010
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
PPTX
PDF
PPTX
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
PPT
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
PDF
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
PDF
PDF
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
PPTX
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
PPT
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
PDF
PPTX
PDF
PPTX
PDF
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
PPTX
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
PPTX
PPT
PDF
More Related Content
PDF
PPTX
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PDF
Multiplayer Game Sync Techniques through CAP theorem
PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PDF
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
송창규, unity build로 빌드타임 반토막내기, NDC2010
What's hot
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
PPTX
PDF
PPTX
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
PPT
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
PDF
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
PDF
PDF
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
PPTX
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
PPT
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
PDF
PPTX
PDF
PPTX
PDF
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
PPTX
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
PPTX
Similar to 게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
PPT
PDF
PDF
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
PDF
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
PPTX
Deview2013 - 게임기술과 수퍼컴퓨팅의 공생관계
PPTX
PDF
PPT
PPT
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
PDF
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
PPTX
PDF
[데브루키] 게임 엔진 아키텍쳐_2장_도구 (Game Engine Architecture Chapter.2-Tools)
PPTX
PPTX
PDF
박기헌 NDC12 초보 클라이언트 프로그래머의 병렬 프로그래밍 도전기
PPTX
PPTX
Vectorized processing in_a_nutshell_DeView2014
PDF
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
PDF
Data-Oriented Design과 유니티 DOTS
PDF
More from 영욱 오
PDF
NDC2019 발굴되지 않은 한국 게임의 역사
PDF
국내게임아카이빙_청계천기술문화연구회발표_20181130
PDF
게임개발자 직업체험의날 배포용
PDF
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
PDF
게임 작가주의가 가능할까?
PDF
KGC2015 - 이 게임을 만든 사람들은 누구인가요
PDF
플레이스테이션 클래스 10주차 - 게임개발 - 강점을 활용하기
PDF
[KGC2014] 과거 한국의 게임에서 우리가 가르침을 얻기 위해 해야할 일
PDF
PDF
푸른역사아카데미 문화비평 오덕인문학 5. 게임의 역사를 이끌었던 오타쿠들 이야기.
PDF
게임 프로그래머로 살아남기 at 지스타 컨퍼런스 2013
PDF
PPTX
PDF
Social Game Party on Mar. 2010 - Webgame Apocalyps Postmortem
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013 1. 2. 3. 최적화
• 다양한 의미의 최적화
• 공간 최적화
✓ 요즘은 뒷전
✓ 사실상 개발비로 제한
• 속도 최적화
✓ 항상 중요
4. 속도 최적화
• 게임은 무조건 빠르게!
✓ 화려한 그래픽
✓ 부드러운 애니메이션
✓ 현실적인 상호작용
✓ 칼같은 조작감의 밑거름
• ‘빠르다’의 기준
✓ 감이 아니라 측정 결과로 비교
5. 6. 프로파일러
• 직접 만들어 쓴다
✓ 부하가 적다 (꼭 필요한 데이터만)
✓ 실제 성능과 근접한 수치
✓ 번거롭다
• 남이 만든걸 쓴다
✓ 자세한 추세 파악이 가능
✓ 그중에 으뜸은 인텔 VTune
7. 8. 9. 데이터 최적화
컴퓨팅 : 데이터를 처리하는 것.
데이터를 줄이는 것이
최적화의 가장 기본
데이터 양을 줄이면 당연히
처리가 빨리 끝남!
10. 데이터 양과 계산량
• 빅-오 (Big-O) 표기법
✓ 데이터양과 처리시간 사이의 관계를
나타내는 함수
•
•
•
•
O( n )
O( n2 )
O( en )
O( 1 )
11. 12. 13. 경험 사례
• 클라이언트 용량 약 10GB
✓ 대부분은 고해상도 텍스쳐
✓ 국내 OK
✓ 해외 NG (중국,태국,남미)
• 텍스쳐 MIP레벨을 강제로 줄여서 배포
✓ 클라이언트 용량 약 4GB로 절감
14. 15. 흔한 최적화
• 삽입 정렬을 퀵 정렬로.
• 선형 검색을 해쉬 함수로.
• 백트래킹을 다이내믹 프로그래밍으로.
• 깊이우선 탐색을 A*로.
16. 17. 18. 19. 네이티브 최적화
CPU 고유의 특성을 살리는 코드를 짜는 일
분기예측,캐시,정수/소수혼합, 고유 명령셋 등
등등
(어셈블리가 동원되기도….)
단, 컴파일러 최적화와 비교해야 함
20. 경험 사례
• 스크립트 병목은 수시로 네이티브로
• 네이티브 최적화는 컴파일러로
✓ 컴파일러 선택이 중요
✓ 최신버전이 일반적으로 성능이 우수
✓ 그중 으뜸은 인텔 컴파일러
21. 22. 23. 메모리 계층
• Memory Heirachy
✓ 비쌀수록 빠르고 용량이 적다.
응답속도
레지스터
CPU캐시
시스템 메모리
SSD
HDD
클라우드
CPU 클럭 사이클
0.3 ns 미만
1~2 ns
30~50 ns
0.1 ms
8 ms
10 ms 이상
동일
4~10 사이클
100~150 사이클
100만 사이클 이상
10억 사이클 이상
10억 사이클 이상
24. 25. 26. 캐시 전략
• 싱글플레이어 게임
✓ 100% 예측가능
• 온라인 멀티플레이어 게임
✓ 다른 사용자의 활동은 예측 불가능
✓ 휴리스틱이 중요
✓ 통계기반캐싱, Lazy Deletion,
27. 경험 사례
• 캐릭터 그래픽 캐시 전략
✓ 기본 : 캐릭터 스폰시 로드
✓ AI캐릭터 : 모두 프리캐시
✓ 퇴장한 플레이어 : Lazy Deletion
• 물리연산 데이터
✓ 코어가 남으면 메인메모리에서 캐싱
✓ CPU아키텍쳐에 맞춘 데이터 사이즈
28. 29. 병렬화 대상
• 데이터를 이동시키는 시간동안 다른 유의미
한 일을 하는 것에 중점
• 그 외에도 렌더링, 물리연산 등 CPU를 대기
하게 만드는 작업이 많음.
30. 동기화와 비동기화
• 동기화 : 확인절차를 거치고 다음으로 진행
• 비동기화 : 확인절차 없이 다음으로 진행
• 병렬화 : 비동기적으로 진행한 후 동기화
31. 경험 사례
• 비동기 방식 로딩 도입
✓ 플레이어 진입시 자리만 마련하고 로딩 요청
(비동기)
✓ 그래픽 데이터 구성은 로딩 완료 신호가 뜰 때
(동기화)
• 100ms 이상의 히치 90% 이상 감소
32. 마무리
• 최적화는 측정이 중요!
• 처리속도 최적화는 데이터, 알고리듬, 저수준
• 대기속도 최적화는 메모리 위계를 염두
• 질문?