profile
게임엔진코드싸개(진)
post-thumbnail

i++ 은 ++i보다 느리지 않다구요.

위 두 코드가 성능성으로 어떤 차이를 가졌는지는 많이들 들어보셨을 겁니다.“ ++i이 i++보다 빠르다” C++하는 사람들은 한 번 쯤은 들어봤을법한 말이죠.그런데, 진짜로 ++i가 i++보다 빠른지 점검 해보신 적 있으신가요?왜 ++i가 i++보다 빠른지 이유는 알고

2023년 10월 28일
·
0개의 댓글
·
post-thumbnail

shared_ptr에 weak_ptr을 붙이면 할당해제를 안시켜준다고??!

1번코드 입니다.2번코드 입니다.자 위 두 개의 코드를 보면 어떤가요? 코드는 좀 달라도 똑같은 기능을 하는 코드처럼 보이죠?그런데 정말 재밌는 일이 일어납니다.위 코드에 weak_ptr을 첨가해봅니다.1번 코드에 weak_ptr을 첨가하면…sharedCustomDat

2023년 9월 9일
·
0개의 댓글
·
post-thumbnail

C++(MSVC)의 alignment 지정자간의 차이

msvc는 \`- 그런데 msdn을 보면Visual Studio 2015 이상에서는 \_\_alignof \_\_declspec( align ) 키워드와 같이msvc전용 키워드가 아닌,컴파일러 간에 이식 가능한 표준인 alignas alignof 연산자를 사용 할 수

2023년 9월 8일
·
0개의 댓글
·
post-thumbnail

컴퓨터가 길을 찾는 더 빠른 방법(JPS알고리즘의 작동방식)

RTS, AOS장르의 게임들에서 플레이어가 목적지를 지정하면 캐릭터들은 목적지까지 “알아서” 장애물을 피하고 “최단거리”로 목적지에 도착한다. 오늘은 캐릭터들이 어떻게 목적지에 알아서 도착하는지에 대한 알고리즘에 대해 배워보자. > 눈을감고 길을 찾아봅시다 컴퓨터가

2023년 9월 4일
·
0개의 댓글
·
post-thumbnail

캐릭터 애니메이션과 머신러닝(IK는 내부적으로 어떻게 작동하는가?)

상용 게임엔진들의 상당수는 IK(Insverse Kinematics)라는 기능을 제공하고 있다.흔히 게임엔진에서 말하는 IK를 쉽게 풀어서 설명하면, “위치”를 통해 “각도”를 구하는 것이라고 생각하면 된다.그게 무슨 소리냐? 예제를 통해 자세히 알아보자면,위와 같이

2023년 9월 3일
·
1개의 댓글
·
post-thumbnail

FBX Sdk튜토리얼 빌드 ‘외않되’ (FBX 튜토리얼 cmake빌드설정 고치기)

최근 자체제작 게임엔진 만들기 프로젝트를 시작하며 제일 먼저 하고있는 일은 FBX Rednerer이다.굳이 왜 FBX파일인가? 를 묻는다면 개인적으로 살펴보기에 가장 대중적으로 사용되는 3D파일 포맷이라고 생각했기 때문이다.obj파일은 포함될 수 있는 정보가 제한적이고

2023년 8월 29일
·
0개의 댓글
·
post-thumbnail

Visual Studio에서 DirectX11 디버깅하기

엔진으로 가는 첫 번째 관문은 바로 그래픽스 API인 DirectX로 결정했다!일전에도 그래픽스 공부를 진행하긴 했었지만 OpenGL과 freeglut을 활용해서 간단한 데모들만 만들었을 뿐더러, 당시의 목표는 그래픽스 이론 자체가 중점이었기 때문에 시스템 관점에서의

2023년 8월 23일
·
0개의 댓글
·
post-thumbnail

프롤로그(자체제작 엔진 만들기)

최근, 게임엔진을 사용해보기만 하다 게임엔진 제작을 위한 본격적인 작업에 들어갔다.요즘에는 좋은 상용엔진들이 많은데 왜 굳이 게임엔진을 직접 만드느냐는 말도 많지만 딱히 신경쓰진 않는다.애초에 내가 하고싶은 일이고 남들이 보기엔 그럴싸한 성과를 내지 못한다 하더라도,

2023년 8월 23일
·
0개의 댓글
·
post-thumbnail

UE5) 에셋 매니저

언리얼 엔진이 제공하는 에셋을 관리하는 싱글톤 클래스보통 언리얼 엔진이 HDD에 있는 에셋을 메모리에 올려야 하는지에 대한 에셋 관리는 자동으로 해주지만 이를 개발자가 정확하게 제어해주려면 Asset Manager를 사용할 수 있음원래는 파일시스템에 있는 파일들을 프로

2023년 7월 4일
·
0개의 댓글
·
post-thumbnail

UE5) Server에서 AnimNotify가 제대로 Trigger되지 않는 경우

데디케이티드, 리슨 서버에서 AnimNotfy로 설정한 Trigger가 제대로 동작하지 않는 경우가 있다.이에 대한 이유는 서버에서의 애니메이션 설정이 다른것 + 언리얼 엔진 자체가 애니메이션을 제대로 평가하지 못한다는 환장의 콜라보이다.서버에서, 사실 서버에서 뿐 아

2023년 6월 14일
·
0개의 댓글
·
post-thumbnail

UE5) 멀티플레이에서 플레이어 컨트롤러의 Pawn 교체과정

플레이어가 로그인하면 “서버에서만” Player Possess 과정을 수행한다. 그렇기에 클라이언트에선 OnPossess함수가 호출되지 않고 서버에서만 OnPossess함수가 실행된다.Why is there no on possessed event for client?서

2023년 5월 26일
·
0개의 댓글
·
post-thumbnail

하나의 프로젝트에 두개의 git프로젝트가 필요한 경우(git submodule)

개발을 진행하다보면 개발이 진행되고 있는 외부 모듈을 사용하거나, 전체 프로젝트에서 자체적으로 사용할 모듈을 내가 개발하고 테스트하는 등의 환경을 조성해야 하는 경우가 있다.이러한 경우, 하나의 프로젝트에 1) 전체 프로젝트의 깃, 2) 내가 사용하고자 하는 모듈의 깃

2023년 5월 23일
·
0개의 댓글
·
post-thumbnail

placement new와 메모리풀

내가 원하는 메모리에 직접 객체를 할당하는 것을 placement new라고 한다.다른 관점에서 본다면 생성자를 명시적으로 호출해주는 기능이라고도 볼 수 있다.문법은 꽤 간단한 편이다: new (MemAddr) ClassType(parameter);C++에선 원래 기존

2023년 5월 4일
·
0개의 댓글
·
post-thumbnail

뻘글) 삼항연산자 vs if문, 누가 최적화를 더 잘해줄까?

대학때 삼항연산자를 배우면서 많은 교수님들이 삼항연산자를 쓰지 말라고 하셨다. 그 이유는 코드의 빠르고 느리고를 떠나서 가독성이 좋지 않으니 쓰지 말라고 하셨다. 그리고 그 당시의 나는 그냥 그렇구나~ 하고 받아드렸었다.그리고 시간이 조금 지나 코딩의 ‘ㅋ’도 모르는

2023년 5월 2일
·
0개의 댓글
·
post-thumbnail

private 상속은 쓰지 않을래요

private 상속은 public 상속과 대조적으로 파생 객체(자식객체)가 기본 클래스 객체(부모객체)로의 변환이 불가능하다.대신, 내부적 멤버끼리는 private상속을 받은 객체의 기능을 사용할 수 있다.그렇기에 private상속은 is-a관계가 아닌 is-imple

2023년 4월 26일
·
0개의 댓글
·
post-thumbnail

C++의 컴파일이 느린 이유 (a.k.a 헤더시스템)

C++은 하나의 프로젝트를 여러개의 파일로 관리 가능하게 하기 위한 시스템으로헤더 파일시스템을 사용한다. (C++ 발표일: 1985년, C 발표일: 1972년)비교적 모던한 언어들인 Java, C- 헤더파일시스템은 내가 사용하고자 하는 기능이 들어있는 파일을 그대로 복

2023년 4월 25일
·
0개의 댓글
·
post-thumbnail

다른 인스턴스라도 같은 클래스면 private 접근이 가능하다.

private의 기준점은 인스턴스 기준이 아니라 클래스 기준이다.그렇기에 똑같은 클래스라면 외부 인스턴스를 받아와도, 프라이빗 멤버에 접근이 가능하다.\*\*중요한건 이게 JAVA에서도, C다른 인스턴스라도 같은 클래스면 private에 대해 접근이 가능하다. 이건 C

2023년 4월 15일
·
0개의 댓글
·
post-thumbnail

선언과 정의의 차이점

C/C++을 접해보면 가장 헷갈리는 것중 하나가 바로 선언과 정의가 분리돼있다는 것이다.(비교적)모던한 객체지향 언어들인 Java, \`C- 이번에는 C, C++에서 선언과 정의의 차이점이 무엇인지 알아보도록 하자.컴파일러가 참조할 식별자(identifier)와 이름을

2023년 4월 15일
·
0개의 댓글
·
post-thumbnail

C++은 private virtual이 가능합니다

우리가 어떤 언어를 배우든, private은 해당 클래스 내에서만 접근 가능하고, protected는 상속관계일 때 접근이 가능하다고 배운다.그리고 이것은 대부분의 객체지향에서 단순 접근이 아니라 정의에서도 통용되는 말이다. 생각해보면 당연하다. 내가 호출할 수 없는

2023년 4월 15일
·
0개의 댓글
·
post-thumbnail

정적 지역 변수의 초기화 시점

코딩을 하면서 static변수를 쓰면서 최근 문득 든 생각이 있다. “static변수를 생성자에서 초기화하면 새로운 객체를 로드할 때마다 해당 값으로 덮어써지는거 아니야?” 라는 생각이었다.물론 턱도 없는 생각이라는 걸 잘 알고 있고 그렇게 작동하지 않는다는 것쯤은 직

2023년 4월 15일
·
0개의 댓글
·