SlideShare a Scribd company logo
1 of 41
GPG Study 1.13 | 1.14 Devrookie 권승진 1.13 실시간 통계와 게임 내 디버깅 1.14 실시간 게임 내 프로파일링
들어가기 전에…
실시간 통계와 게임 내 디버깅
목차 게임 내 디버깅이 무엇인가? 왜 사용하는가? 실제 사용 예 장, 단점
게임 내 디버깅이 무엇인가? 하하~! 몬스터가 플레이어의 접근을 감지하는 기능을 만들었어!!! 이제 한번 실행시켜볼까? 주인공
게임 내 디버깅이 무엇인가? 뭐야!!!왜 걸렸는데 날 쳐다보지 않는거지??
게임 내 디버깅이 무엇인가? 아~! 타겟은 재대로 잡았는데, 위치를 잘못 얻어오네!?
게임 내 디버깅이 무엇인가? 이 번거로운 일을!!!!!! 아~! 타겟은 재대로 잡았는데, 위치를 잘못 얻어오네!?
게임 내 디버깅이 무엇인가? 이렇게 하는 방법입니다.
왜 사용하는가? 디버깅 시간 절약 알트탭 시간이 의외로 만만치 않다. 알트탭 할 일이 없다. 간단한 수치 조정은 화면안에서 바로 가능하다. 컴파일 시간 & 로딩 시간이 확연히 줄어든다. 바뀐 결과가 바로 눈에 보인다. 집중력 유지
실제 사용 예 미리 만들어진 stat.h,cpp파일을 간단히 사용해보고, 실시간 게임 내 디버깅 툴이 어떤 형식을 갖추고 있는지 알아보자.
구조 CStatEntry . . CStatEntry CStatPage CStatEntry . . CStatPage CStatBase . . . CStatEntry <Static Class> CStatPage
실제 사용 예
실제 사용 예 <프로그램 시작 시> 초기화 하고 <프로그램 업데이트 시> 키보드 상태 삽입해주고, 출력한다. (내용을 담을 문자배열) : 여기에 출력될 모든 내용이 들어가게 된다.
실제 사용 예 사용하고 싶은 곳에서 등록만 하면 끝
실제 사용 예
실제 사용 예
실제 사용 예 아무것도 없는 곳에서 stat.h추가하고 한 줄 추가하면 끝이다.
창에 띄우는건 됐는데… 이게 끝?
변경 안하고, 첨부된 파일 stat.h, stat.cpp 그대로 쓰실 생각이라면….. 에딧 기능이 켜져 있을 때 +키 : 수치 증가 ,[object Object],Shift키 : 누르고 있을 때 수치 * 10 Ctrl키 : 누르고 있을 때 수치 * 100 Up키 : 편집할 Entry 변경 위로 Down키 : 편집할 Entry 변경 아래로 PageUp : 페이지 앞으로 PageDown : 페이지 뒤로 F12 : 창 켜기/끄기 F11 : 값 에딧 기능 켜기/끄기
변경 안하고, 첨부된 파일 stat.h, stat.cpp 그대로 쓰실 생각이라면….. 커스터마이징 가능 에딧 기능이 켜져 있을 때 +키 : 수치 증가 ,[object Object],Shift키 : 누르고 있을 때 수치 * 10 Ctrl키 : 누르고 있을 때 수치 * 100 Up키 : 편집할 Entry 변경 위로 Down키 : 편집할 Entry 변경 아래로 PageUp : 페이지 앞으로 PageDown : 페이지 뒤로 F12 : 창 켜기/끄기 F11 : 값 에딧 기능 켜기/끄기 이것 외에도 여러가지 기능을  개별로 추가해서 사용하시면 됩니다.
몇 가지 주의 할 점 stat화면에서 변하는 변수 값을 적용하려면포인터로 해야 한다는 당연한 이야기. Update시마다 갱신되는 변수 값은 바뀌어도 적용 되지 않을 수 있다. 여러 개 찍어내야 하는 클래스(몬스터라거나)들의 변수은static으로 선언한 변수를 가지면 안된다.
장점 장점 어느 코드에서나 쉽게 변수 추가가 가능하다. 간략한 코드로 쉽게 디버깅 할 수 있다. 페이지 단위로 여러 정보를 볼 수 있다. 수치 변화를 실시간으로 볼 수 있다. 범위 지정도 가능
단점 단점 필요한 변수형태를 직접 제작해야 한다.
실시간 게임 내 프로파일링
목차 프로파일링이란? 실제 사용 예 구현 원리
프로파일링이란? 코드의 병목 지점을 빠르게 찾을 수  있도록 하는 기법
프로파일링이란? 오! 맙소사 FPS가 왜이렇게 떨어진거지??
프로파일링이란? 어디가 문제인지 모르겠군!! 함수호출을 하나씩 끄면서 확인해봐야겠어! . . 물리 업데이트 함수 꺼보고 컴파일 & 실행 GUI업데이트 함수 꺼보고 컴파일 & 실행 . . 1시간이 지나고.. 3시간이 지나고.. . .
프로파일링이란? 어디가 문제인지 모르겠군!! 함수호출을 하나씩 끄면서 확인해봐야겠어! . . 이 번거로운 일을!!!!!! 물리 업데이트 함수 꺼보고 컴파일 & 실행 GUI업데이트 함수 꺼보고 컴파일 & 실행 . . 1시간이 지나고.. 3시간이 지나고.. . .
프로파일링이란? 실시간으로 함수들의 호출 시간이 얼마인지 알아내는 기법 실시간으로도, 맨 끝에 로그로 남기기도
실제 사용 예 미리 만들어진 profile.h, profile.cpp파일을 보고, 프로파일링 도구라는 것은 어떤 기능을 갖추고 있는지 알아보자.
실제 사용 예 초기화 하고, Start와 End로 프로파일링 하고  싶은 범위만 지정하면 됩니다.
실제 사용 예 <결과를 계산하여 버퍼에 저장하는 코드> 사용자의 렌더링 환경에 맞게 변경 가능
실제 사용 예 결과물 평균수행 비율 (전체에서 몇 %인가?) 최소수행 비율 (전체에서 몇 %인가?) 최대수행 비율 (전체에서 몇 %인가?) 한프레임당 호출 횟수 함수 이름 몬스터는2마리인가봐요.
실제 사용 예 결과물 들여쓰기 -> 내포 관계 MainLoop안에서 GUI Update코드를 호출 MainLoop안에서 Player Update코드를 호출
실제 사용 예 결과물 GUI 업데이트는  한프레임에서 13.9%를차지한다. 몬스터의 상황업데이트는  한프레임에서 1.4%를차지한다.
실제 사용 예 결과물 한 프레임에서  GUI, Player, Creep업데이트  이외의 것들은 83.4%를차지한다.
장점 함수의 부하 정도를 한눈에 알 수 있다. 논리적인 버그를 미리 잡을 수 있다. 병목 지점을 쉽게 찾을 수 있다.
간단한 구현 원리 코드 첨부
참고자료 GPG 1권 내용과 예제코드

More Related Content

What's hot

08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...re4lfl0w
 
[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기FAST CAMPUS
 
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)ChulHui Lee
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서Kyoung Up Jung
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑Kiyoung Moon
 
IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]
IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]
IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]지환 문
 
Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)
Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)
Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)동욱 하
 
개발자를 위한 포토샵 기초 꿀팁
개발자를 위한 포토샵 기초 꿀팁개발자를 위한 포토샵 기초 꿀팁
개발자를 위한 포토샵 기초 꿀팁디프만
 
KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅흥배 최
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표Kyoung Up Jung
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 YoungSu Son
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
Vr fps game Business
Vr fps game BusinessVr fps game Business
Vr fps game BusinessJrMasonKIM
 
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.flashscope
 
Guitar
GuitarGuitar
Guitarymtech
 
입문자를 위한 게임 개발 가이드
입문자를 위한 게임 개발 가이드입문자를 위한 게임 개발 가이드
입문자를 위한 게임 개발 가이드Oh DongReol
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
08 fragment 태블릿 대응
08 fragment   태블릿 대응08 fragment   태블릿 대응
08 fragment 태블릿 대응운용 최
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문Taeho Kim
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 

What's hot (20)

08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
 
[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기[강의소개] 안드로이드 앱 개발 입문 캠프 4기
[강의소개] 안드로이드 앱 개발 입문 캠프 4기
 
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 
IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]
IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]
IGC 2018 - 던그리드 이랬으면 더 좋았을 걸[SlideShare]
 
Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)
Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)
Fast campus 안드로이드 앱 개발 프로젝트 CAMP (Fastground)
 
개발자를 위한 포토샵 기초 꿀팁
개발자를 위한 포토샵 기초 꿀팁개발자를 위한 포토샵 기초 꿀팁
개발자를 위한 포토샵 기초 꿀팁
 
KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅KGC10 - Visual C++10과 디버깅
KGC10 - Visual C++10과 디버깅
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
 
Vr fps game Business
Vr fps game BusinessVr fps game Business
Vr fps game Business
 
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
사용자가 업로드한 사진의 마커를 이용해 OpenCV + aruco로 일정한 형태로 만들고 영상으로 만들어 보았다.
 
Guitar
GuitarGuitar
Guitar
 
입문자를 위한 게임 개발 가이드
입문자를 위한 게임 개발 가이드입문자를 위한 게임 개발 가이드
입문자를 위한 게임 개발 가이드
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
08 fragment 태블릿 대응
08 fragment   태블릿 대응08 fragment   태블릿 대응
08 fragment 태블릿 대응
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 

Viewers also liked

[GPG 스터디] 1.6 범용 핸들 기반 자원 관리자
[GPG 스터디] 1.6 범용 핸들 기반 자원 관리자 [GPG 스터디] 1.6 범용 핸들 기반 자원 관리자
[GPG 스터디] 1.6 범용 핸들 기반 자원 관리자 Sehyeon Nam
 
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)SeungMin Yang
 
[GPG 스터디] 1.3 자동적인 단일체 유틸리티
[GPG 스터디] 1.3 자동적인 단일체 유틸리티[GPG 스터디] 1.3 자동적인 단일체 유틸리티
[GPG 스터디] 1.3 자동적인 단일체 유틸리티Sehyeon Nam
 
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)SeungMin Yang
 
[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법SeungMin Yang
 
[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링Jaeho Seok
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발ChangKyu Song
 
GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법연우 김
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산Taeung Ra
 
Gpg gems1 1.3
Gpg gems1 1.3Gpg gems1 1.3
Gpg gems1 1.3david nc
 

Viewers also liked (18)

[GPG 스터디] 1.6 범용 핸들 기반 자원 관리자
[GPG 스터디] 1.6 범용 핸들 기반 자원 관리자 [GPG 스터디] 1.6 범용 핸들 기반 자원 관리자
[GPG 스터디] 1.6 범용 핸들 기반 자원 관리자
 
Gpg study 01
Gpg study 01Gpg study 01
Gpg study 01
 
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
[11 0730] gpg 2.1.11 게임에 내장되는 프로파일링 모듈(공개)
 
[GPG 스터디] 1.3 자동적인 단일체 유틸리티
[GPG 스터디] 1.3 자동적인 단일체 유틸리티[GPG 스터디] 1.3 자동적인 단일체 유틸리티
[GPG 스터디] 1.3 자동적인 단일체 유틸리티
 
Gpg study3.7
Gpg study3.7Gpg study3.7
Gpg study3.7
 
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
[11 0723] gpg 2.1.9 c++를 위한 폐기 매커니즘 구현(공개)
 
op
opop
op
 
Gpg study1.8
Gpg study1.8Gpg study1.8
Gpg study1.8
 
[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법[12 0210] gpg 2.3.7 전략적 판단 기법
[12 0210] gpg 2.3.7 전략적 판단 기법
 
[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링[0604 석재호]광택성사전필터링
[0604 석재호]광택성사전필터링
 
GPG 1권 4.12 VIPM
GPG 1권 4.12 VIPMGPG 1권 4.12 VIPM
GPG 1권 4.12 VIPM
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발
 
GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법GPG Study 4.3 카메라 제어기법
GPG Study 4.3 카메라 제어기법
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
Gpg study5.5
Gpg study5.5Gpg study5.5
Gpg study5.5
 
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
GPG 1.2 템플릿 메타프로그래밍을 이용한 빠른 수학 연산
 
Gpg gems1 1.3
Gpg gems1 1.3Gpg gems1 1.3
Gpg gems1 1.3
 

Similar to Gpg 1.13 ~ 1.14

NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들대원 김
 
GA로 게임 로그 분석하기
GA로 게임 로그 분석하기GA로 게임 로그 분석하기
GA로 게임 로그 분석하기Alan Kang
 
IGC 2015 김용하 차세대 게임의 기반기술
IGC 2015 김용하 차세대 게임의 기반기술IGC 2015 김용하 차세대 게임의 기반기술
IGC 2015 김용하 차세대 게임의 기반기술Yongha Kim
 
Debugging with Visual Studio
Debugging with Visual StudioDebugging with Visual Studio
Debugging with Visual StudioLusain Kim
 
Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)Matthew Chang
 
Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기
Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기
Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기JungKeun Lee
 
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정강 민우
 
mysql stored procedure
mysql stored proceduremysql stored procedure
mysql stored procedureHoyoung Jung
 
클린코드와 테스트코드
클린코드와 테스트코드클린코드와 테스트코드
클린코드와 테스트코드Herren
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?강 민우
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향Eunhyang Kim
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013NDOORS
 
디버거 소개
디버거 소개디버거 소개
디버거 소개JuHong Jeong
 
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트KIMHYUNWOO22
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화ByungJoon Lee
 
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)Suwon Chae
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법성훈 김
 
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)해강
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010Ryan Park
 

Similar to Gpg 1.13 ~ 1.14 (20)

NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
 
GA로 게임 로그 분석하기
GA로 게임 로그 분석하기GA로 게임 로그 분석하기
GA로 게임 로그 분석하기
 
IGC 2015 김용하 차세대 게임의 기반기술
IGC 2015 김용하 차세대 게임의 기반기술IGC 2015 김용하 차세대 게임의 기반기술
IGC 2015 김용하 차세대 게임의 기반기술
 
Debugging with Visual Studio
Debugging with Visual StudioDebugging with Visual Studio
Debugging with Visual Studio
 
Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)Report : Android Simple Bug Catch Game(Korean)
Report : Android Simple Bug Catch Game(Korean)
 
Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기
Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기
Ndc17 슈퍼판타지워 포스트모템_srpg로 맨땅에 헤딩하기
 
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
 
mysql stored procedure
mysql stored proceduremysql stored procedure
mysql stored procedure
 
클린코드와 테스트코드
클린코드와 테스트코드클린코드와 테스트코드
클린코드와 테스트코드
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
 
디버거 소개
디버거 소개디버거 소개
디버거 소개
 
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
 
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법
 
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
 

More from sj k

뇌자T 9.udp 소켓 프로그래밍
뇌자T   9.udp 소켓 프로그래밍뇌자T   9.udp 소켓 프로그래밍
뇌자T 9.udp 소켓 프로그래밍sj k
 
뇌자T 1.네트워크와 tcpip
뇌자T   1.네트워크와 tcpip뇌자T   1.네트워크와 tcpip
뇌자T 1.네트워크와 tcpipsj k
 
알고리즘 스터디 탐색
알고리즘 스터디   탐색알고리즘 스터디   탐색
알고리즘 스터디 탐색sj k
 
옥트리의 구축
옥트리의 구축옥트리의 구축
옥트리의 구축sj k
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부sj k
 
Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14sj k
 

More from sj k (6)

뇌자T 9.udp 소켓 프로그래밍
뇌자T   9.udp 소켓 프로그래밍뇌자T   9.udp 소켓 프로그래밍
뇌자T 9.udp 소켓 프로그래밍
 
뇌자T 1.네트워크와 tcpip
뇌자T   1.네트워크와 tcpip뇌자T   1.네트워크와 tcpip
뇌자T 1.네트워크와 tcpip
 
알고리즘 스터디 탐색
알고리즘 스터디   탐색알고리즘 스터디   탐색
알고리즘 스터디 탐색
 
옥트리의 구축
옥트리의 구축옥트리의 구축
옥트리의 구축
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부
 
Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14Gpg 1.13 ~ 1.14
Gpg 1.13 ~ 1.14
 

Gpg 1.13 ~ 1.14

  • 1. GPG Study 1.13 | 1.14 Devrookie 권승진 1.13 실시간 통계와 게임 내 디버깅 1.14 실시간 게임 내 프로파일링
  • 4. 목차 게임 내 디버깅이 무엇인가? 왜 사용하는가? 실제 사용 예 장, 단점
  • 5. 게임 내 디버깅이 무엇인가? 하하~! 몬스터가 플레이어의 접근을 감지하는 기능을 만들었어!!! 이제 한번 실행시켜볼까? 주인공
  • 6. 게임 내 디버깅이 무엇인가? 뭐야!!!왜 걸렸는데 날 쳐다보지 않는거지??
  • 7. 게임 내 디버깅이 무엇인가? 아~! 타겟은 재대로 잡았는데, 위치를 잘못 얻어오네!?
  • 8. 게임 내 디버깅이 무엇인가? 이 번거로운 일을!!!!!! 아~! 타겟은 재대로 잡았는데, 위치를 잘못 얻어오네!?
  • 9. 게임 내 디버깅이 무엇인가? 이렇게 하는 방법입니다.
  • 10. 왜 사용하는가? 디버깅 시간 절약 알트탭 시간이 의외로 만만치 않다. 알트탭 할 일이 없다. 간단한 수치 조정은 화면안에서 바로 가능하다. 컴파일 시간 & 로딩 시간이 확연히 줄어든다. 바뀐 결과가 바로 눈에 보인다. 집중력 유지
  • 11. 실제 사용 예 미리 만들어진 stat.h,cpp파일을 간단히 사용해보고, 실시간 게임 내 디버깅 툴이 어떤 형식을 갖추고 있는지 알아보자.
  • 12. 구조 CStatEntry . . CStatEntry CStatPage CStatEntry . . CStatPage CStatBase . . . CStatEntry <Static Class> CStatPage
  • 14. 실제 사용 예 <프로그램 시작 시> 초기화 하고 <프로그램 업데이트 시> 키보드 상태 삽입해주고, 출력한다. (내용을 담을 문자배열) : 여기에 출력될 모든 내용이 들어가게 된다.
  • 15. 실제 사용 예 사용하고 싶은 곳에서 등록만 하면 끝
  • 18. 실제 사용 예 아무것도 없는 곳에서 stat.h추가하고 한 줄 추가하면 끝이다.
  • 20.
  • 21.
  • 22. 몇 가지 주의 할 점 stat화면에서 변하는 변수 값을 적용하려면포인터로 해야 한다는 당연한 이야기. Update시마다 갱신되는 변수 값은 바뀌어도 적용 되지 않을 수 있다. 여러 개 찍어내야 하는 클래스(몬스터라거나)들의 변수은static으로 선언한 변수를 가지면 안된다.
  • 23. 장점 장점 어느 코드에서나 쉽게 변수 추가가 가능하다. 간략한 코드로 쉽게 디버깅 할 수 있다. 페이지 단위로 여러 정보를 볼 수 있다. 수치 변화를 실시간으로 볼 수 있다. 범위 지정도 가능
  • 24. 단점 단점 필요한 변수형태를 직접 제작해야 한다.
  • 25. 실시간 게임 내 프로파일링
  • 26. 목차 프로파일링이란? 실제 사용 예 구현 원리
  • 27. 프로파일링이란? 코드의 병목 지점을 빠르게 찾을 수 있도록 하는 기법
  • 28. 프로파일링이란? 오! 맙소사 FPS가 왜이렇게 떨어진거지??
  • 29. 프로파일링이란? 어디가 문제인지 모르겠군!! 함수호출을 하나씩 끄면서 확인해봐야겠어! . . 물리 업데이트 함수 꺼보고 컴파일 & 실행 GUI업데이트 함수 꺼보고 컴파일 & 실행 . . 1시간이 지나고.. 3시간이 지나고.. . .
  • 30. 프로파일링이란? 어디가 문제인지 모르겠군!! 함수호출을 하나씩 끄면서 확인해봐야겠어! . . 이 번거로운 일을!!!!!! 물리 업데이트 함수 꺼보고 컴파일 & 실행 GUI업데이트 함수 꺼보고 컴파일 & 실행 . . 1시간이 지나고.. 3시간이 지나고.. . .
  • 31. 프로파일링이란? 실시간으로 함수들의 호출 시간이 얼마인지 알아내는 기법 실시간으로도, 맨 끝에 로그로 남기기도
  • 32. 실제 사용 예 미리 만들어진 profile.h, profile.cpp파일을 보고, 프로파일링 도구라는 것은 어떤 기능을 갖추고 있는지 알아보자.
  • 33. 실제 사용 예 초기화 하고, Start와 End로 프로파일링 하고 싶은 범위만 지정하면 됩니다.
  • 34. 실제 사용 예 <결과를 계산하여 버퍼에 저장하는 코드> 사용자의 렌더링 환경에 맞게 변경 가능
  • 35. 실제 사용 예 결과물 평균수행 비율 (전체에서 몇 %인가?) 최소수행 비율 (전체에서 몇 %인가?) 최대수행 비율 (전체에서 몇 %인가?) 한프레임당 호출 횟수 함수 이름 몬스터는2마리인가봐요.
  • 36. 실제 사용 예 결과물 들여쓰기 -> 내포 관계 MainLoop안에서 GUI Update코드를 호출 MainLoop안에서 Player Update코드를 호출
  • 37. 실제 사용 예 결과물 GUI 업데이트는 한프레임에서 13.9%를차지한다. 몬스터의 상황업데이트는 한프레임에서 1.4%를차지한다.
  • 38. 실제 사용 예 결과물 한 프레임에서 GUI, Player, Creep업데이트 이외의 것들은 83.4%를차지한다.
  • 39. 장점 함수의 부하 정도를 한눈에 알 수 있다. 논리적인 버그를 미리 잡을 수 있다. 병목 지점을 쉽게 찾을 수 있다.
  • 40. 간단한 구현 원리 코드 첨부
  • 41. 참고자료 GPG 1권 내용과 예제코드