SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Creating 3D Game Client Program
With Project Anarchy
- Part 3. 움직여라 움직여 -
분 류 NHN NEXT 1기 실전프로젝트 산출물
실습 업체 블루홀 스튜디오
프로젝트 팀명 그랜드부다페스트(문진상/신동찬)
작성자 신동찬
Created Date 2015-01-05
다시 한 번 말씀 드리지만
Anarchy Project에서 추천하는 방법은 아닙니다
단,
1. C++로 엔진 활용 기법을 학습하고 싶다(우리 같이)
2. C++은 알고 있는데 파이프 라인 등을 몰라 게임을 못 만든다
3. 과거 Vision 엔진 대비 요즘에 어떻게 바뀌었나 대략적으로 보고 싶다
등의 이유를 가지고 계신 분은 vForge 없이 개발하는 방법에 참여하세요
자료를 읽기에 앞서 알아야 할 것
이번 강의에서 당신이 자료에서 참고하거나 배울 수 있는 것
기대했을 수 있지만 자료에 없는 내용
- C++ 사용 방법
- Lib, DLL 개념 및 사용 방법
- Project Anarchy 설치 및 세팅( http://www.slideshare.net/ssusere4785c/project-anarchyvision-engine-part1 )
- UDP 네트워크 통신
- 렌더링 파이프라인
- Project Anarchy를 과거 Vision Engine 처럼 사용하는 법
- 윈도우 프로세스로 프로그램 수행
- 리소스 파일에 대한 정보
- Picking
- Character Move
- vForge를 활용한 게임 개발
- Engine Plugin 및 Component 를 활용한 게임 개발
- GUI 시스템
본 자료에서 사용하는 파일 위치는 Default 설치 위치를 기반으로 함
기본 설치 위치
C:Havok2014.1.0AnarchySDK
Project Anarchy 사용을 위해서는 vforge를 우선 실행해야 함
Project Anarchy는 무료로 사용 가능한 대신 몇 가지 제약 사항이 존재
본 실습 과정은 vforge를 실행한 것을 기본으로 한다
< vForge 미실행시 발생하는 error >
Visual Studio 2010 기준으로 설명
Project Anarchy는 Visual Studio 2010 기준으로 실행 됨
Visual Studio 2013에서 실행 하기 위해서는 2010이 설치 되어 있어야 함
Model File?
Model file?
Cube.Model을 만들면 텍스쳐까지 입혀져 있는 3D objec가 나타나는 것을 확인할 수 있음
과연 *.Model은 뭐지?
# 기본 제공 모델
# havoc 설치 폴더에서 더 찾으면 샘플 코드 등에서 많은 model이 나온다
Model file?
모델과 관련 된 텍스쳐, 애니메이션 정보를 통합해서 읽어들이는 Vision 엔진 파일 형식
텍스쳐 등은 xml 파일로 통합 관리되며,
animation file은 별도 *.anim 파일로 관리
Model 만들기
Pass !
공부는 샘플로도 충분합니다
Place Entity
Place Entity Like Game
이렇게 배치하고
맵 상에서 움직이면 그럴싸 하겠네!
Place Entity Like Game
앞서 배운 지식 총 동원하면 이해할 수 있는 코드
Place Entity Like Game
모델 포지션 설정 후 entity 생성에서 활용
Vision RTTI 활용 entity 생성
입력되는 entity에 대해
“Walk” animation을
표준속도(1.0f)로 Loop(무한 반복)함
사실은 땅이 아니라 큐브를 잡아 늘려 평평한 대지처럼 만든 것
Place Entity Like Game
다시 잘 보니 중앙에 원형으로 빛이 있는데?
Place Entity Like Game(Lighting)
Vision::Game 은 전체 entity control과 일반기능 함수를 포함
Light도 entity와 유사한 방식으로 바로 생성 가능
Place Entity Like Game(Lighting)
Light 포지션 설정 후 Light 생성에서 활용
두 번째 포지션은 참고 코드
Light 타입 설정(point 외에도 direction 등 enum으로 되어 있음)
Light 강도를 높여주는 계산(승수 증감)
Light 크기 결정
Place Entity Like Game
이번 SubPart에서 소개한 내용은
어디에서 수행되어야 할 것인가?
Part 2에 답이 있다!
AfterEngineInit()에서 수행되는 것
Picking
Rendering Pipeline
* NHN NEXT Computer Grapics 수업자료 인용(2013, 임석현 교수)
World 좌표 상의 3D 물체가 화면에 보여지는 과정
4번의 Transformation 존재
그 중 Model Transformation은 무의미 하기에
관련 있는 Transgormation 3번
Picking
최초 2차원 좌표였던 것을
각 변환 행렬을 곱해 3차원 world 좌표로 만듦
자세한 설명은 생략
Picking
요즘 게임에서 Picking은 거의 기본적으로 사용됨
(키보드 전용 게임 제외)
따라서 Vision 엔진에서도 기본적으로 제공하고 있음
TraceLine 함수가 그것
Picking
하지만 그것이 함정
다음의 이유로 시간이 꽤 많이 소비
1. 유사 기능 함수가 하나 더 있었음
2. Entity에 별도 설정이 필요함
3. Entity와 mesh(삼각형 덩어리)를 구분해서 사용해야 함
Picking
결과적으로 우리 프로젝트에서는
Entity Picking과 지형(static mesh) Picking이 모두 필요해
둘 다 사용하는 중
TraceLineEntities()
TraceLine()
Entity Setting
Entity의 충돌 검출은 TraceAccuracy 설정값에 영향을 받음
Entity는 충돌체가 아닌 것이 기본 설정
(생성시 Trace 안되도록 설정되어 있음)
따라서 Picking이 되게 하기 위해서는 Entity에 해당하는 충돌 박스를 만들어 줘야 함
Get,Set으로 확인 및 설정이 가능함
본 프로젝트에서는 AABB BOX로 진행
TraceLineEntities()
Vision Engine에서는 생성된 Entity를 Collection으로 통합 관리 함
해당 Entity Collection 중에서 현재 화면에 Visible 상태인 Entity를 별도로 가져와 목록화 가능
LineTrace를 수행하되 해당 목록에 충돌 되는지 확인
충돌이 일어나면 m_lastTraceInfo(VisTraceLineInfo_t struct)에 해당 충돌체 정보 값을 넣어 줌
그냥 LineTrace로는 백날 해도 안 됨
TraceLine()
Height map 추가에는 Entity가 아니라 Static Mesh를 사용
Static Mesh 충돌 검출에는 TraceLine을 사용하면 됨
Orbit Camera
Need solid view Point
예제로 사용되는 카메라는 너무 정신없다
마우스 움직일때 움직이는 fps용 카메라
우리는 RPG를 위한 고정 카메라가 필요하고
마우스 포인터를 이용해 해당 위치를 찍으면 이동했으면 했다
Need solid view Point
요런 스타일 있잖아요
* Anarchy Project 대표 샘플 “RPG”
Orbit Camera
특정 entity 를 기준으로 설치되며
해당 entity 를 쫓아 다니는 카메라
entity 없이는 호출이 안 되는 카메라
Orbit Camera
초기 카메라 위치, 각도 세팅
마우스 스크롤로 줌 가능
대상 entity 추적
카메라도 충돌체 설정(아니면 물체 뒤로 가는 경우...)
카메라와 entity 사이의 거리
Mouse Pointer
Where is Mouse Pointer?
C++ 세계에선 공짜가 없듯
Vision 엔진도 전부 공짜로 뭐 해주는 건 없다
Mouse는 overlay로 화면에 그려내야 한다
문제는 그리는 타이밍인데...
그 문제는 다음 시간에 다루도록 하며
여기에서는 일단 어떻게 나오도록 하는지에 집중
Mouse Point
게임 엔진답게(?!) Vision Engine에서는 input 받는 것을 전부 통합 관리한다
VInputManager를 통해 관리되는 것들을 받을 수 있음
GetMouse(): 마우스 내놔
GetRawControlValue(): 인자를 받아 x, y 값을 선택적으로 내놔
m_MousePosition은 hkvVec2(2차원 벡터)
Mouse Pointer
앞서 받은 mousePointer 정보 값을 활용
화면에 Texture를 그대로 overlayRendering 하면 됨
Mouse Pointer
사실 이 부분은 매 Tick마다 불러져야 화면에 계속 노출
따라서 Vision Engine에서 제공하는 Callback 함수를 활용
OnRenderHook은 화면이 그려지는(Render)되는 매 Tick마다 불려짐
Mouse Pointer
Vision Engine에서는 RenderLoop에도 추가로 절차를 계속 줄 수 있음
RenderHook callback으로 계속 Renderer를 붙여나가면 추가 렌더링 가능
이 함수는 가장 마지막에 추가해 항상 맨 위에 그려지도록 함
(part4 참고)
Moving Entity
Moving Entity
Main Loop가 어디인지 알고
Entity Position Setting 방법 알면
사실 이미 끝났습니다
매 루프마다 조금씩 이동하도록 하면 되니까요
그래서 참고 코드로 대신하고자 합니다
Moving Entity
이동의 핵심은 이전 Tick과 현재 Tick 사이의 시간을 측정해
Entity가 움직이려는 방향으로 시간만큼 진행시키는데 있음
방향 설정에서 사용된 m_calcedPathList는
길 찾기 알고리즘 결과 나온 결과 값
- Part 4. Network / Memory Management -
The NEXT

Más contenido relacionado

La actualidad más candente

NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요 Wuwon Yu
 
[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개진현 조
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdaySangYun Yi
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기Jaeseung Ha
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
유니티 Rpg게임배경 스타트업 6번째 스터디자료
유니티 Rpg게임배경 스타트업 6번째 스터디자료유니티 Rpg게임배경 스타트업 6번째 스터디자료
유니티 Rpg게임배경 스타트업 6번째 스터디자료Je Lyoung Kim
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation systemTonyCms
 
09_motionblur
09_motionblur09_motionblur
09_motionblurnoerror
 
NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트재철 황
 
Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤SangYun Yi
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전Modulabs
 
유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기flashscope
 
Unity4 Mecanim 활용
Unity4 Mecanim 활용Unity4 Mecanim 활용
Unity4 Mecanim 활용희운 강
 

La actualidad más candente (20)

NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개[1002 조진현]unity3d 소개
[1002 조진현]unity3d 소개
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stday
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
gv004 ver0.1
gv004 ver0.1gv004 ver0.1
gv004 ver0.1
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
유니티 Rpg게임배경 스타트업 6번째 스터디자료
유니티 Rpg게임배경 스타트업 6번째 스터디자료유니티 Rpg게임배경 스타트업 6번째 스터디자료
유니티 Rpg게임배경 스타트업 6번째 스터디자료
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation system
 
09_motionblur
09_motionblur09_motionblur
09_motionblur
 
NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트
 
Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전
 
유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기
 
Unity4 Mecanim 활용
Unity4 Mecanim 활용Unity4 Mecanim 활용
Unity4 Mecanim 활용
 

Destacado

213140041최예진-공모전고사
213140041최예진-공모전고사213140041최예진-공모전고사
213140041최예진-공모전고사choiyejin
 
iPhone Presentation
iPhone PresentationiPhone Presentation
iPhone PresentationVictor Choi
 
Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)rain1kis
 
IR용 사업계획서 작성방법 - How to describe your business
IR용 사업계획서 작성방법 - How to describe your businessIR용 사업계획서 작성방법 - How to describe your business
IR용 사업계획서 작성방법 - How to describe your businessROA Invention LAB Inc. CEO
 
Template sample - 제조업 사업계획서
Template sample - 제조업 사업계획서Template sample - 제조업 사업계획서
Template sample - 제조업 사업계획서Galu Sun
 
세상을 인쇄하다 [3D 프린터]
세상을 인쇄하다 [3D 프린터]세상을 인쇄하다 [3D 프린터]
세상을 인쇄하다 [3D 프린터]inucreative
 
상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0
상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0
상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0Gitae Park
 

Destacado (9)

213140041최예진-공모전고사
213140041최예진-공모전고사213140041최예진-공모전고사
213140041최예진-공모전고사
 
iPhone Presentation
iPhone PresentationiPhone Presentation
iPhone Presentation
 
iphone 6s 시리즈
iphone 6s 시리즈iphone 6s 시리즈
iphone 6s 시리즈
 
iPhone Pt 0204
iPhone Pt 0204iPhone Pt 0204
iPhone Pt 0204
 
Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)Dream plaza 사업계획서 (창업리그 최종)
Dream plaza 사업계획서 (창업리그 최종)
 
IR용 사업계획서 작성방법 - How to describe your business
IR용 사업계획서 작성방법 - How to describe your businessIR용 사업계획서 작성방법 - How to describe your business
IR용 사업계획서 작성방법 - How to describe your business
 
Template sample - 제조업 사업계획서
Template sample - 제조업 사업계획서Template sample - 제조업 사업계획서
Template sample - 제조업 사업계획서
 
세상을 인쇄하다 [3D 프린터]
세상을 인쇄하다 [3D 프린터]세상을 인쇄하다 [3D 프린터]
세상을 인쇄하다 [3D 프린터]
 
상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0
상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0
상상을 현실로, 혁신을 만들어가는 3D 프린터 V 1.0
 

Similar a Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여

Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Dong Chan Shin
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2진상 문
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰Jubok Kim
 
Unity cookbook 2
Unity cookbook 2Unity cookbook 2
Unity cookbook 2Jihun Soh
 
PiStage를 활용한 리얼타임 렌더링 워크플로우 (with RTX)
PiStage를 활용한  리얼타임 렌더링 워크플로우 (with RTX)PiStage를 활용한  리얼타임 렌더링 워크플로우 (with RTX)
PiStage를 활용한 리얼타임 렌더링 워크플로우 (with RTX)YOUNGJO CHO
 
June report in korean
June report in koreanJune report in korean
June report in koreannao takatoshi
 
에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안Lee Jungpyo
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Dong Chan Shin
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)Haezoom Inc.
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for UnrealKyu-sung Choi
 
Unity cookbook 9
Unity cookbook 9Unity cookbook 9
Unity cookbook 9Jihun Soh
 
Tiny ml study 20201031
Tiny ml study 20201031Tiny ml study 20201031
Tiny ml study 20201031ByoungHern Kim
 
Finalterm report in korean.
Finalterm report in korean.Finalterm report in korean.
Finalterm report in korean.nao takatoshi
 
Unity cookbook 14
Unity cookbook 14Unity cookbook 14
Unity cookbook 14Jihun Soh
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Bansook Nam
 
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
Project anarchy로 3d 게임 만들기 part_5_waste of time shovelingProject anarchy로 3d 게임 만들기 part_5_waste of time shoveling
Project anarchy로 3d 게임 만들기 part_5_waste of time shovelingDong Chan Shin
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)Jinwook On
 
[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기NAVER D2
 
Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현
Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현
Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현Alex (TaeHo) Kang
 

Similar a Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여 (20)

Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
 
Start unreal
Start unrealStart unreal
Start unreal
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
Unity cookbook 2
Unity cookbook 2Unity cookbook 2
Unity cookbook 2
 
PiStage를 활용한 리얼타임 렌더링 워크플로우 (with RTX)
PiStage를 활용한  리얼타임 렌더링 워크플로우 (with RTX)PiStage를 활용한  리얼타임 렌더링 워크플로우 (with RTX)
PiStage를 활용한 리얼타임 렌더링 워크플로우 (with RTX)
 
June report in korean
June report in koreanJune report in korean
June report in korean
 
에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
 
Unity cookbook 9
Unity cookbook 9Unity cookbook 9
Unity cookbook 9
 
Tiny ml study 20201031
Tiny ml study 20201031Tiny ml study 20201031
Tiny ml study 20201031
 
Finalterm report in korean.
Finalterm report in korean.Finalterm report in korean.
Finalterm report in korean.
 
Unity cookbook 14
Unity cookbook 14Unity cookbook 14
Unity cookbook 14
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
Project anarchy로 3d 게임 만들기 part_5_waste of time shovelingProject anarchy로 3d 게임 만들기 part_5_waste of time shoveling
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)
 
[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기
 
Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현
Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현
Google Cloud Machine Learning을 이용한 Motion Detection 및 Notification 구현
 

Más de Dong Chan Shin

C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
 
User experience Design에 활용되는 각종 용어 정리
User experience Design에 활용되는 각종 용어 정리User experience Design에 활용되는 각종 용어 정리
User experience Design에 활용되는 각종 용어 정리Dong Chan Shin
 
Project anarchy로 3d 게임 만들기 part_4_network_memory management
Project anarchy로 3d 게임 만들기 part_4_network_memory managementProject anarchy로 3d 게임 만들기 part_4_network_memory management
Project anarchy로 3d 게임 만들기 part_4_network_memory managementDong Chan Shin
 
몰입 인지공백 프래그난쯔법칙 스토리텔링
몰입 인지공백 프래그난쯔법칙 스토리텔링몰입 인지공백 프래그난쯔법칙 스토리텔링
몰입 인지공백 프래그난쯔법칙 스토리텔링Dong Chan Shin
 
Unreal summit 2014 다시 보기
Unreal summit 2014 다시 보기Unreal summit 2014 다시 보기
Unreal summit 2014 다시 보기Dong Chan Shin
 
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usabilityRTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usabilityDong Chan Shin
 
Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석Dong Chan Shin
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터Dong Chan Shin
 
More effective c++ chapter4 이후 항목 29까지
More effective c++ chapter4 이후 항목 29까지More effective c++ chapter4 이후 항목 29까지
More effective c++ chapter4 이후 항목 29까지Dong Chan Shin
 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4Dong Chan Shin
 
C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니Dong Chan Shin
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinDong Chan Shin
 
Dx관련 alignment 정리 by 은자림
Dx관련 alignment 정리 by 은자림Dx관련 alignment 정리 by 은자림
Dx관련 alignment 정리 by 은자림Dong Chan Shin
 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinDong Chan Shin
 
Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬Dong Chan Shin
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Dong Chan Shin
 
Effective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinDong Chan Shin
 

Más de Dong Chan Shin (17)

C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 
User experience Design에 활용되는 각종 용어 정리
User experience Design에 활용되는 각종 용어 정리User experience Design에 활용되는 각종 용어 정리
User experience Design에 활용되는 각종 용어 정리
 
Project anarchy로 3d 게임 만들기 part_4_network_memory management
Project anarchy로 3d 게임 만들기 part_4_network_memory managementProject anarchy로 3d 게임 만들기 part_4_network_memory management
Project anarchy로 3d 게임 만들기 part_4_network_memory management
 
몰입 인지공백 프래그난쯔법칙 스토리텔링
몰입 인지공백 프래그난쯔법칙 스토리텔링몰입 인지공백 프래그난쯔법칙 스토리텔링
몰입 인지공백 프래그난쯔법칙 스토리텔링
 
Unreal summit 2014 다시 보기
Unreal summit 2014 다시 보기Unreal summit 2014 다시 보기
Unreal summit 2014 다시 보기
 
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usabilityRTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
 
Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석Proactor/Reactor Server io 성능 분석
Proactor/Reactor Server io 성능 분석
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터
 
More effective c++ chapter4 이후 항목 29까지
More effective c++ chapter4 이후 항목 29까지More effective c++ chapter4 이후 항목 29까지
More effective c++ chapter4 이후 항목 29까지
 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4
 
C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshin
 
Dx관련 alignment 정리 by 은자림
Dx관련 alignment 정리 by 은자림Dx관련 alignment 정리 by 은자림
Dx관련 alignment 정리 by 은자림
 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshin
 
Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
 
Effective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshin
 

Último

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 

Último (8)

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 

Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여

  • 1. Creating 3D Game Client Program With Project Anarchy - Part 3. 움직여라 움직여 - 분 류 NHN NEXT 1기 실전프로젝트 산출물 실습 업체 블루홀 스튜디오 프로젝트 팀명 그랜드부다페스트(문진상/신동찬) 작성자 신동찬 Created Date 2015-01-05
  • 2. 다시 한 번 말씀 드리지만 Anarchy Project에서 추천하는 방법은 아닙니다 단, 1. C++로 엔진 활용 기법을 학습하고 싶다(우리 같이) 2. C++은 알고 있는데 파이프 라인 등을 몰라 게임을 못 만든다 3. 과거 Vision 엔진 대비 요즘에 어떻게 바뀌었나 대략적으로 보고 싶다 등의 이유를 가지고 계신 분은 vForge 없이 개발하는 방법에 참여하세요
  • 3. 자료를 읽기에 앞서 알아야 할 것 이번 강의에서 당신이 자료에서 참고하거나 배울 수 있는 것 기대했을 수 있지만 자료에 없는 내용 - C++ 사용 방법 - Lib, DLL 개념 및 사용 방법 - Project Anarchy 설치 및 세팅( http://www.slideshare.net/ssusere4785c/project-anarchyvision-engine-part1 ) - UDP 네트워크 통신 - 렌더링 파이프라인 - Project Anarchy를 과거 Vision Engine 처럼 사용하는 법 - 윈도우 프로세스로 프로그램 수행 - 리소스 파일에 대한 정보 - Picking - Character Move - vForge를 활용한 게임 개발 - Engine Plugin 및 Component 를 활용한 게임 개발 - GUI 시스템
  • 4. 본 자료에서 사용하는 파일 위치는 Default 설치 위치를 기반으로 함 기본 설치 위치 C:Havok2014.1.0AnarchySDK Project Anarchy 사용을 위해서는 vforge를 우선 실행해야 함 Project Anarchy는 무료로 사용 가능한 대신 몇 가지 제약 사항이 존재 본 실습 과정은 vforge를 실행한 것을 기본으로 한다 < vForge 미실행시 발생하는 error > Visual Studio 2010 기준으로 설명 Project Anarchy는 Visual Studio 2010 기준으로 실행 됨 Visual Studio 2013에서 실행 하기 위해서는 2010이 설치 되어 있어야 함
  • 6. Model file? Cube.Model을 만들면 텍스쳐까지 입혀져 있는 3D objec가 나타나는 것을 확인할 수 있음 과연 *.Model은 뭐지? # 기본 제공 모델 # havoc 설치 폴더에서 더 찾으면 샘플 코드 등에서 많은 model이 나온다
  • 7. Model file? 모델과 관련 된 텍스쳐, 애니메이션 정보를 통합해서 읽어들이는 Vision 엔진 파일 형식 텍스쳐 등은 xml 파일로 통합 관리되며, animation file은 별도 *.anim 파일로 관리
  • 8. Model 만들기 Pass ! 공부는 샘플로도 충분합니다
  • 10. Place Entity Like Game 이렇게 배치하고 맵 상에서 움직이면 그럴싸 하겠네!
  • 11. Place Entity Like Game 앞서 배운 지식 총 동원하면 이해할 수 있는 코드
  • 12. Place Entity Like Game 모델 포지션 설정 후 entity 생성에서 활용 Vision RTTI 활용 entity 생성 입력되는 entity에 대해 “Walk” animation을 표준속도(1.0f)로 Loop(무한 반복)함 사실은 땅이 아니라 큐브를 잡아 늘려 평평한 대지처럼 만든 것
  • 13. Place Entity Like Game 다시 잘 보니 중앙에 원형으로 빛이 있는데?
  • 14. Place Entity Like Game(Lighting) Vision::Game 은 전체 entity control과 일반기능 함수를 포함 Light도 entity와 유사한 방식으로 바로 생성 가능
  • 15. Place Entity Like Game(Lighting) Light 포지션 설정 후 Light 생성에서 활용 두 번째 포지션은 참고 코드 Light 타입 설정(point 외에도 direction 등 enum으로 되어 있음) Light 강도를 높여주는 계산(승수 증감) Light 크기 결정
  • 16. Place Entity Like Game 이번 SubPart에서 소개한 내용은 어디에서 수행되어야 할 것인가? Part 2에 답이 있다! AfterEngineInit()에서 수행되는 것
  • 18. Rendering Pipeline * NHN NEXT Computer Grapics 수업자료 인용(2013, 임석현 교수) World 좌표 상의 3D 물체가 화면에 보여지는 과정 4번의 Transformation 존재 그 중 Model Transformation은 무의미 하기에 관련 있는 Transgormation 3번
  • 19. Picking 최초 2차원 좌표였던 것을 각 변환 행렬을 곱해 3차원 world 좌표로 만듦 자세한 설명은 생략
  • 20. Picking 요즘 게임에서 Picking은 거의 기본적으로 사용됨 (키보드 전용 게임 제외) 따라서 Vision 엔진에서도 기본적으로 제공하고 있음 TraceLine 함수가 그것
  • 21. Picking 하지만 그것이 함정 다음의 이유로 시간이 꽤 많이 소비 1. 유사 기능 함수가 하나 더 있었음 2. Entity에 별도 설정이 필요함 3. Entity와 mesh(삼각형 덩어리)를 구분해서 사용해야 함
  • 22. Picking 결과적으로 우리 프로젝트에서는 Entity Picking과 지형(static mesh) Picking이 모두 필요해 둘 다 사용하는 중 TraceLineEntities() TraceLine()
  • 23. Entity Setting Entity의 충돌 검출은 TraceAccuracy 설정값에 영향을 받음 Entity는 충돌체가 아닌 것이 기본 설정 (생성시 Trace 안되도록 설정되어 있음) 따라서 Picking이 되게 하기 위해서는 Entity에 해당하는 충돌 박스를 만들어 줘야 함 Get,Set으로 확인 및 설정이 가능함 본 프로젝트에서는 AABB BOX로 진행
  • 24. TraceLineEntities() Vision Engine에서는 생성된 Entity를 Collection으로 통합 관리 함 해당 Entity Collection 중에서 현재 화면에 Visible 상태인 Entity를 별도로 가져와 목록화 가능 LineTrace를 수행하되 해당 목록에 충돌 되는지 확인 충돌이 일어나면 m_lastTraceInfo(VisTraceLineInfo_t struct)에 해당 충돌체 정보 값을 넣어 줌 그냥 LineTrace로는 백날 해도 안 됨
  • 25. TraceLine() Height map 추가에는 Entity가 아니라 Static Mesh를 사용 Static Mesh 충돌 검출에는 TraceLine을 사용하면 됨
  • 27. Need solid view Point 예제로 사용되는 카메라는 너무 정신없다 마우스 움직일때 움직이는 fps용 카메라 우리는 RPG를 위한 고정 카메라가 필요하고 마우스 포인터를 이용해 해당 위치를 찍으면 이동했으면 했다
  • 28. Need solid view Point 요런 스타일 있잖아요 * Anarchy Project 대표 샘플 “RPG”
  • 29. Orbit Camera 특정 entity 를 기준으로 설치되며 해당 entity 를 쫓아 다니는 카메라 entity 없이는 호출이 안 되는 카메라
  • 30. Orbit Camera 초기 카메라 위치, 각도 세팅 마우스 스크롤로 줌 가능 대상 entity 추적 카메라도 충돌체 설정(아니면 물체 뒤로 가는 경우...) 카메라와 entity 사이의 거리
  • 32. Where is Mouse Pointer? C++ 세계에선 공짜가 없듯 Vision 엔진도 전부 공짜로 뭐 해주는 건 없다 Mouse는 overlay로 화면에 그려내야 한다 문제는 그리는 타이밍인데... 그 문제는 다음 시간에 다루도록 하며 여기에서는 일단 어떻게 나오도록 하는지에 집중
  • 33. Mouse Point 게임 엔진답게(?!) Vision Engine에서는 input 받는 것을 전부 통합 관리한다 VInputManager를 통해 관리되는 것들을 받을 수 있음 GetMouse(): 마우스 내놔 GetRawControlValue(): 인자를 받아 x, y 값을 선택적으로 내놔 m_MousePosition은 hkvVec2(2차원 벡터)
  • 34. Mouse Pointer 앞서 받은 mousePointer 정보 값을 활용 화면에 Texture를 그대로 overlayRendering 하면 됨
  • 35. Mouse Pointer 사실 이 부분은 매 Tick마다 불러져야 화면에 계속 노출 따라서 Vision Engine에서 제공하는 Callback 함수를 활용 OnRenderHook은 화면이 그려지는(Render)되는 매 Tick마다 불려짐
  • 36. Mouse Pointer Vision Engine에서는 RenderLoop에도 추가로 절차를 계속 줄 수 있음 RenderHook callback으로 계속 Renderer를 붙여나가면 추가 렌더링 가능 이 함수는 가장 마지막에 추가해 항상 맨 위에 그려지도록 함 (part4 참고)
  • 38. Moving Entity Main Loop가 어디인지 알고 Entity Position Setting 방법 알면 사실 이미 끝났습니다 매 루프마다 조금씩 이동하도록 하면 되니까요 그래서 참고 코드로 대신하고자 합니다
  • 39. Moving Entity 이동의 핵심은 이전 Tick과 현재 Tick 사이의 시간을 측정해 Entity가 움직이려는 방향으로 시간만큼 진행시키는데 있음 방향 설정에서 사용된 m_calcedPathList는 길 찾기 알고리즘 결과 나온 결과 값
  • 40. - Part 4. Network / Memory Management - The NEXT