전체 글

게임 프로그래머 지망생 백수 블로그
개인 공부 및 프로젝트/게임테크랩 4기

크래프톤 게임 테크랩 4기 합

나이도 많이 먹어가고 취업할 자신감도 떨어져가는 시기교육를 마치고 1년간 취업을 시도했고 면접도 몇번 보러 갔지만 결과적으로는 백수였다. 집에서 느릿느릿 자체엔진 끼적거리면서 커뮤니티 눈팅하랴, 게임이나 하면서 있느니 차라리 취업교육을 더 듣는게 낫겠다고 생각했다. 그래서 처음엔 SSAFY에 지원했다.매달 100만원도 준다니까 좀 여유가 생길 것 같아서. 코테는 쉽게 통과했는데 면접이 문제였다.악명높은 발표면접이라는 걸 본다는데 도저히 못할 것 같아서 그냥 포기할까 싶다가 경험 삼아 한 번 갔다. 발표면접 가니까 머리 속이 하얘지더라.어버버거려서 딱 망했다 싶었고 당연히 광탈. 결과 보고 나니깐 크래프톤 정글이 모집을 시작했더라. 이미 국비를 한번 듣긴 했는데 보다시피 그다지 만족스럽지 않은 결과를 얻지..

C/C++

c++ name hiding

부모 클래스에서 정의한 public 함수 Func(int a)가 있었는데자식 클래스에서 public 함수 Func(string b)를 정의하면 부모함수의 Func를 호출할 수 없었다. 찾아보니까 자식 클래스에 이름이 같은 함수를 정의하는 경우부모클래스에 있는동일한 이름다른 인자를 가지는 함수들이 모두 호출이 불가능해지는 듯. Name Hiding이라고 한다. 나는 가상함수 사용이 목적이 아니었기 때문에자식 클래스의 함수이름을 다르게 해주는 것으로 해결했다.

개인 공부 및 프로젝트/Daydream Engine

자체 게임엔진 DevLog - 파일 시스템, 렌더러 수정

FileSystem 파일시스템을 래핑하는 클래스를 구현했다. 원래 이런식으로 사용하고 있었는데 내가 함수 용도를 알아보기 쉽게 이름을 붙이고 싶었고, 필요하다고 std::filesystem::func(param)을 쓰는 함수들도 그냥 Path에서 일괄적으로 호출하면 편할것 같아서 래퍼 클래스를 구현했다. Renderer는 static 함수만 지원하고 실제로 실행되는 함수들은 전부 하위 클래스에 구현되어 있는 것을 그냥 가져다 쓰기만 한다. 여기서 Renderer가 파라미터로 shared_ptr을 받도록 예전에 구현했던 것들이 다시 보니까 이상하다는 생각이 들었는데굳이 shared_ptr로 파라미터를 넘겨줘야 할 이유가 보이지 않았다.Renderer는 잠시 자원을 빌려서 그리는데 사용하는 것이지 소유권..

개인 공부 및 프로젝트/Daydream Engine

자체 게임엔진 DevLog - ImGui Vulkan이 ImageView를 사용하게 하기

이번에 한 작업은 ImGui 라이브러리를 수정했다. Texture와 TextureView를 분리하면서 TextureView가 ImGui::Image에 핸들을 제공하는 역할을 담당하게 되었는데Vulkan만 다른 API들과 다른 방법으로 사용하도록 imgui에서 설명하고 있었다. ImGui::Image는 64비트 정수 타입의 ImTextureID라는 값을 요구하는데이 값은 API마다 다른 타입을 캐스팅 해서 전달한다.DX11 = ID3D11ShaderResourceView*DX12 = D3D12_CPU_DESCRIPTOR_HANDLEOpenGL = GLuint이다. 이 값을 ImTextureID로 캐스팅 해서 전달하면 내가 생성한 텍스쳐를 imgui에서 보이도록 할 수 있다.그러나 ImGui 개발자도 Vul..

C++/Graphics
개발 공부함