NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
http://ndcreplay.nexon.com/NDC2017/sessions/NDC2017_0079.html 이곳에서 영상과 슬라이드를 함께 보실 수 있습니다.
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션NHN FORWARD※다운로드하시면 더 선명한 자료를 보실 수 있습니다.
언리얼 엔진 프로그래밍을 시작하면, 편리하지만 한편으로는 골치아픈 UObject 시스템을 만나게 됩니다.
이 발표에서는 C++ 프로그래머를 대상으로 UObject 시스템과 그 핵심 기능인 리플렉션, 가비지 컬렉션을 소개하고 그 동작 원리를 함께 들여다봅니다.
목차
1. 일반적인 리플렉션의 개념
2. 언리얼엔진의 리플렉션
3. 일반적인 가비지컬렉션의 개념
4. 언리얼엔진의 가비지 컬렉션
대상
- C++ 개발자
- 언리얼 C++ 프로그래밍에 관심 있는 분
■관련 동영상: https://youtu.be/VpEe9DbcZIs
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우펄어비스의 MMORPG, 검은사막에 적용되어있는 AI 네비게이션 기능은 VOXEL 기반으로 자체 개발한 엔진을 이용해 구현되어 있습니다. 기존의 대다수 상용 라이브러리들이 네비 메쉬라고 하는 이동가능한 평면을 표현하는 폴리곤 기반의 데이터를 이용해 길찾기를 수행해주는 것에 비해 근간이 다릅니다. 이 강연에서는 검은사막의 네비게이션 엔진을 구현하고, 서버 / 클라이언트에 적용하면서 얻게된 노하우와 적용된 결과물들을 소개합니다.
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션NHN FORWARD※다운로드하시면 더 선명한 자료를 보실 수 있습니다.
언리얼 엔진 프로그래밍을 시작하면, 편리하지만 한편으로는 골치아픈 UObject 시스템을 만나게 됩니다.
이 발표에서는 C++ 프로그래머를 대상으로 UObject 시스템과 그 핵심 기능인 리플렉션, 가비지 컬렉션을 소개하고 그 동작 원리를 함께 들여다봅니다.
목차
1. 일반적인 리플렉션의 개념
2. 언리얼엔진의 리플렉션
3. 일반적인 가비지컬렉션의 개념
4. 언리얼엔진의 가비지 컬렉션
대상
- C++ 개발자
- 언리얼 C++ 프로그래밍에 관심 있는 분
■관련 동영상: https://youtu.be/VpEe9DbcZIs
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우펄어비스의 MMORPG, 검은사막에 적용되어있는 AI 네비게이션 기능은 VOXEL 기반으로 자체 개발한 엔진을 이용해 구현되어 있습니다. 기존의 대다수 상용 라이브러리들이 네비 메쉬라고 하는 이동가능한 평면을 표현하는 폴리곤 기반의 데이터를 이용해 길찾기를 수행해주는 것에 비해 근간이 다릅니다. 이 강연에서는 검은사막의 네비게이션 엔진을 구현하고, 서버 / 클라이언트에 적용하면서 얻게된 노하우와 적용된 결과물들을 소개합니다.
AWS re:Invent 특집(4) – 개발자를 위한 신규 서비스 총정리(윤석찬)Amazon Web Services Korea매년 11월말 AWS re:Invent 행사에서는 내년 클라우드 기술을 전망할 수 있는 새로운 서비스를 대거 출시했습니다. 올해 리인벤트 행사에서 발표된 신규 서비스 중 개발자들이 관심을 가질만한 서비스를 선보이는 시간으로 데모와 함께 소개합니다. 특히, AWS re:Invent에서 새로 출시한 Amazon CodeBuild, AWS X-Ray 등의 서비스를 통한 민첩한 데브옵스 방법을 알려드립니다. 리인벤트에서 발표된 신규 서비스로 클라우드 기술의 미래를 살펴보세요.
Du room system_portfolio진영 최경기게임아카데미 4기에 지원할 당시 제출하였던 포트폴리오입니다. 현재 두룸학술연구회는 경기 게임아카데미 4기 사업에 선정되어 프로젝트 사라나기 개발을 진행 중입니다.
이 포트폴리오를 만들 당시, 슬라이드셰어에서 많은 좋은 자료들을 참고하였기에 저 또한 다른 사람들에게 혹시라도 도움이 되지 않을까 싶어서 부족하지만 업로드 해 봅니다.
관련 포트폴리오에 관한 질문 사항이 있으시다면 제 이메일 주소인 yapi42@gmail.com 으로 보내주신다면 답변해드릴 수 있는 한도 내에서 최대한 답변토록 하겠습니다. 감사합니다.
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Dong Chan ShinMake Entity
Orbit Camera Setting
Picking
with Havok Project Anarchy in Visual Studio
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Kiyoung MoonI wanted to share one of debugging skills with visual studio and tips. 비주얼 스튜디오를 활용한 디버깅 스킬과 팁에 관한 내용입니다.
3. 01
1) 왜 이 주제를 선정했나?
2) 그래서 준비했습니다~!
이전에 스터디에서 언급 됬던 내용
• 데이터는 코드에 있는게 아닌 엑셀에 있다고 했다.
• 그러면 구현 방법에 대해서도 얘기해보면 좋을 것 같다.
포트폴리오에 활용을 해보자!
• 더 이상의 하드 코딩은 NO!
• 데이터를 불러와서 사용하는 것에 익숙해지도록 하자!
U n r e a l E n g i n e G a m e I n s t a n c e
GameInstance
4. 하는 일
01
1) Game Instance란?
“게임이 동작하는 프로그램”
목표
Game Instance를 활용해 캐릭터의 정보를 저장하고 활용해보자.
간단히 게임 그 자체를 의미한다.
1. 실행중인 게임의 인스턴스를 위한 고수준 관리자 개체.
2. Level이 전환되더라도 공유할 수 있는 데이터를 저장할
수 있는 전역 개체.
U n r e a l E n g i n e G a m e I n s t a n c e
Unreal Engine
GameInstance
5. 01
[ 오늘의 내용 ]
• GameInstance를 통한 캐릭터의 능력치 설정
GameInstance 생
성
• 각각의 Row에 캐릭터에게 부여할 능력치의
값을 저장
CSV 파일 생성
• 불러온 데이터를 저장할 구조체 생성구조체 생성
• Actor와 분리해 유지보수에 용이하게 설계
ActorComponent
활용
U n r e a l E n g i n e G a m e I n s t a n c e
12. 03
U n r e a l E n g i n e G a m e I n s t a n c e
CSV 파일 생성 및 저장
13. U n r e a l E n g i n e G a m e I n s t a n c e
14. U n r e a l E n g i n e G a m e I n s t a n c e
15. U n r e a l E n g i n e G a m e I n s t a n c e
16. 03
U n r e a l E n g i n e G a m e I n s t a n c e
구조체 정의
17. U n r e a l E n g i n e G a m e I n s t a n c e
18. U n r e a l E n g i n e G a m e I n s t a n c e
GameInstance 생성(DRUGameInstance.cpp)
DataTable에 저장된 정보는 FindRow를 통해 데이터를 얻어옴.
FindRow(FName RowName, const TCHAR* ContextString);
RowName : 위에 정의한 테이블의 Name을 이용해 Row Data를 가져옴.
ContextString : FindRow에 실패했을 경우 언리얼에서 띄워주는 Warning
에 표시할 텍스트 정보.
19. U n r e a l E n g i n e G a m e I n s t a n c e
20. U n r e a l E n g i n e G a m e I n s t a n c e
21. 01
Data Table
• Ustruct와 그 변수에 1:1 매핑되는 열 이름으로 구성
• FTableRowBase를 상속받아야 한다.
Data Curve
• Data Table과 유사하지만, 부동 소수점 유형만 지원
• 부동소수점 실수를 통한 보간에 특화되어 있음.
• 밸런싱, 아이템 배분, 기술이나 능력에 대한 특성 조절에 유용.
U n r e a l E n g i n e G a m e I n s t a n c e
GameInstance
22. U n r e a l E n g i n e G a m e I n s t a n c e
23. 03
U n r e a l E n g i n e G a m e I n s t a n c e
Actor Component 추가
24. 02
1) Actor Component를 사용하는 이유
Game Instance
① 캐릭터의로직과캐릭터정보에대한로직의분리
② 유지보수에용이하게하기위해서.
③ SRP의원칙을준수하자.
④ LifeCycle 상Actor보다Actor Component가 초기화가더빠르다.
U n r e a l E n g i n e G a m e I n s t a n c e제목을입력하세요
MINHEEBLOG
25. U n r e a l E n g i n e G a m e I n s t a n c e
26. U n r e a l E n g i n e G a m e I n s t a n c e
CharacterStatComponent 생성
(CharacterStatComponent.h)
27. 02
1) Transient 프로퍼티 지정자
Game Instance
① 언리얼오브젝트에는Serialzation 기능이있어서UPROPERTY 속성을저장하고로드할수있다.
② 하지만이키워드를사용한프로퍼티는휘발성데이터로지정됨.
③ 프로퍼티에대한저장또는로드를지원하지않음.
③ CurrentHp와 같은시시각각변동해야하는데이터의경우저장을해둘이유는없음.
U n r e a l E n g i n e G a m e I n s t a n c e제목을입력하세요
28. U n r e a l E n g i n e G a m e I n s t a n c e
Actor의
PostInitializeComponents에
대응되는 InitializeComponent
함수.
사용하기 위해선 생성자에서
bWantsInitializeComponent
값을 true로 설정
29. U n r e a l E n g i n e G a m e I n s t a n c e
CharacterStatComponent 선언 (MyCharacter.h)
30. U n r e a l E n g i n e G a m e I n s t a n c e
Hp HUD 위젯 생성 후 캐릭터의 정보를 토대로 표현 (MyCharacter.cpp)
31. U n r e a l E n g i n e G a m e I n s t a n c e
실행해서 로그를 확인해보면 데이터를 확인해 볼 수 있습니다.
32. U n r e a l E n g i n e G a m e I n s t a n c e
THANK
YOU
33. U n r e a l E n g i n e G a m e I n s t a n c e
Q & A