More Related Content Similar to Gpg 1.13 ~ 1.14 Similar to Gpg 1.13 ~ 1.14 (20) Gpg 1.13 ~ 1.141. GPG Study 1.13 | 1.14 Devrookie 권승진 1.13 실시간 통계와 게임 내 디버깅 1.14 실시간 게임 내 프로파일링 4. 목차 게임 내 디버깅이 무엇인가? 왜 사용하는가? 실제 사용 예 장, 단점 5. 게임 내 디버깅이 무엇인가? 하하~! 몬스터가 플레이어의 접근을 감지하는 기능을 만들었어!!! 이제 한번 실행시켜볼까? 주인공 7. 게임 내 디버깅이 무엇인가? 아~! 타겟은 재대로 잡았는데, 위치를 잘못 얻어오네!? 8. 게임 내 디버깅이 무엇인가? 이 번거로운 일을!!!!!! 아~! 타겟은 재대로 잡았는데, 위치를 잘못 얻어오네!? 10. 왜 사용하는가? 디버깅 시간 절약 알트탭 시간이 의외로 만만치 않다. 알트탭 할 일이 없다. 간단한 수치 조정은 화면안에서 바로 가능하다. 컴파일 시간 & 로딩 시간이 확연히 줄어든다. 바뀐 결과가 바로 눈에 보인다. 집중력 유지 11. 실제 사용 예 미리 만들어진 stat.h,cpp파일을 간단히 사용해보고, 실시간 게임 내 디버깅 툴이 어떤 형식을 갖추고 있는지 알아보자. 12. 구조 CStatEntry . . CStatEntry CStatPage CStatEntry . . CStatPage CStatBase . . . CStatEntry <Static Class> CStatPage 14. 실제 사용 예 <프로그램 시작 시> 초기화 하고 <프로그램 업데이트 시> 키보드 상태 삽입해주고, 출력한다. (내용을 담을 문자배열) : 여기에 출력될 모든 내용이 들어가게 된다. 18. 실제 사용 예 아무것도 없는 곳에서 stat.h추가하고 한 줄 추가하면 끝이다. 22. 몇 가지 주의 할 점 stat화면에서 변하는 변수 값을 적용하려면포인터로 해야 한다는 당연한 이야기. Update시마다 갱신되는 변수 값은 바뀌어도 적용 되지 않을 수 있다. 여러 개 찍어내야 하는 클래스(몬스터라거나)들의 변수은static으로 선언한 변수를 가지면 안된다. 23. 장점 장점 어느 코드에서나 쉽게 변수 추가가 가능하다. 간략한 코드로 쉽게 디버깅 할 수 있다. 페이지 단위로 여러 정보를 볼 수 있다. 수치 변화를 실시간으로 볼 수 있다. 범위 지정도 가능 29. 프로파일링이란? 어디가 문제인지 모르겠군!! 함수호출을 하나씩 끄면서 확인해봐야겠어! . . 물리 업데이트 함수 꺼보고 컴파일 & 실행 GUI업데이트 함수 꺼보고 컴파일 & 실행 . . 1시간이 지나고.. 3시간이 지나고.. . . 30. 프로파일링이란? 어디가 문제인지 모르겠군!! 함수호출을 하나씩 끄면서 확인해봐야겠어! . . 이 번거로운 일을!!!!!! 물리 업데이트 함수 꺼보고 컴파일 & 실행 GUI업데이트 함수 꺼보고 컴파일 & 실행 . . 1시간이 지나고.. 3시간이 지나고.. . . 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. 장점 함수의 부하 정도를 한눈에 알 수 있다. 논리적인 버그를 미리 잡을 수 있다. 병목 지점을 쉽게 찾을 수 있다.