C++(19)
-
어소트락 게임 아카데미 Win32 API 정주행 2회차 - 메세지와 이벤트
이전 시간에 Win32 API에서 메인 함수가 어떻게 동작하는지에 대한 간단한 흐름을 알아보았고 그 과정에서 만났던 여러 키워드들이 어떤 역할을 하는지 알아보았다. 그 과정에서 switch case문을 통해 메시지를 보고 어떤 명령을 처리하는지 분기를 나누는 코드도 접할 수 있었는데 이번에는 그 메세지들과 그에 따른 처리에 대해서 한 번 다뤄볼 것이다. 1. WM_PAINT 메세지 이전과 같이 프로젝트를 맨 처음 생성하면 아예 Visual Studio에서 자동으로 코드를 생성해준다는 것을 이제는 다 알 것이다. 그 중에서 WndProc라는 함수를 보면 프로그램의 실행 흐름이 case WM_PAINT라는 부분에 도달할 때, 화면에 그림을 그려준다는 주석을 발견할 수 있다. 크게 보면 우리가 게임을 만든다고..
2023.05.20 -
어소트락 게임 아카데미 Win32 API 정주행 1회차 - main.cpp
Win32 API를 시작하기 위해 프로젝트를 만들면 기존에 C++에서 배웠던 main함수는 없고 엄청 어려워 보이는 처음보는 키워드들이 보인다. 하지만 복잡할 것은 전혀 없고 알고보면 어이없을 정도로 별 거 없다. 1. wWinMain 함수의 매개변수 1) SAL (Soursecode Annotation Language) 강의에서 다뤘던 것은 SAL 문법이라는 것이었고 최신 C++은 이런 역할을 하는 키워드들을 문법적으로 제공한다. 우선 아래의 코드를 보자. 이 함수는 메인 함수와 같은 역할을 하는 녀석으로 Visual Studio에서 프로젝트 생성을 할 때, Windows 데스크톱 애플리케이션으로 생성할 경우에 나타나는 프로그램의 첫 진입점 역할을 하는 녀석이다. int APIENTRY wWinMain..
2023.05.18 -
어소트락 게임 아카데미 Win32 API 정주행 - Intro
게임 엔진 만들겠답시고 DX12를 시작한지 얼마 되지 않은 시점에서 갑자기 Win32 API를 정주행하게 되었다. 갑자기 뜬금없이 Win32 API를 정주행하려는 이유는 아래에 있는 링크의 글 때문이다. https://dafher-diary.tistory.com/55 루키스 게임수학 정주행 2회차 - 번외(버그) 갑자기 뜬금없이 번외가 올라와서 당황스러울 것이다. 다름이 아니고 프로젝트를 하다가 어이없는 상황을 만나게 되어서 이렇게 글을 쓰게 되었다. 인프런의 강의를 유료로 결제하면 강의 영상 dafher-diary.tistory.com HWND 변수에 값을 제대로 넣지 않아놓고 내 실수인 것도 모른 상태로 억까라고 울부 짖었던 과거가 떠올랐고 왜 내가 그런 실수를 했는지 자세히 생각해 보았다. 물론 그..
2023.05.18 -
루키스 게임수학 정주행 2회차 - 번외(버그)
갑자기 뜬금없이 번외가 올라와서 당황스러울 것이다. 다름이 아니고 프로젝트를 하다가 어이없는 상황을 만나게 되어서 이렇게 글을 쓰게 되었다. 인프런의 강의를 유료로 결제하면 강의 영상과 함께 예제 파일을 다운받을 수 있다. 거기에 있는 코드는 당연히 잘 돌아가야 한다. 실제로 다운받아서 실행시켰을 때, 잘 돌아갔다. 근데 문제는 내가 그걸 토대로 코드를 작성했는데 내가 짠 코드는 돌아가지 않는 것이었다. 코드가 돌아가지 않는 이유는 CreateSwapChain이라는 함수에서 SwapChain이 생성되지 않았기 때문이었다. 여러 개의 프로젝트를 만들고 예정에도 없던 틀린 그림 찾기를 하다가 깨닫게 된 것은 결국 내 실수로 발생되 버그였다는 것이다. 너무 어이없고 초보자들에게 발생하기 쉬운 실수인 것 같아서..
2023.05.17 -
루키스 게임수학 정주행 2회차 - 장치 초기화
1. CPU vs GPU 우리가 대부분 사용하는 컴퓨터에는 CPU와 GPU라는 부품이 거의 대부분 기본적으로 장착되어 있을 것이다. 오늘 할 것은 엔진을 만드는 데 있어서 GPU에게 효율적으로 일을 시키는 일인데 그 전에 CPU와 GPU가 어떤 차이가 있는지 간략하게 알아볼 필요가 있다. 우선 차이점을 그림으로 그리면 다음과 같다. 위의 이미지를 보면 CPU와 GPU에 달려있는 레지스터, 캐시 등의 갯수와 구조에서 차이를 볼 수 있다. 이런 차이를 보이는 이유는 CPU가 하나의 연산을 아주 빠르게 처리하기 위한 것이라면 GPU는 여러 개의 작업을 병렬적으로 한꺼번에 빠르게 처리하기 위해 설계되었기 때문이다. 실제로 우리가 앞으로 공부하게 될 그래픽스의 내용은 게임 월드에 있는 객체들을 모니터 상으로 표현..
2023.05.10 -
루키스 게임수학 정주행 1회차 - 프로젝트 세팅
이번에 진행할 DirectX12는 어떤 후배와 같이 진행하기로 했다. 그 후배는 엔진을 만드는 학생치고는 제법 규모있는 프로젝트를 할 생각이었다. 강의를 정주행하면서 우리 프로젝트에 맞게 예제를 작성하면서 진도를 나갈 것이고 여기에 적힐 소스 코드의 대부분은 아래의 github에 업로드 될 것이다. (라이센스 주의) 그럼 시작하겠다. https://github.com/Unknown-Stryker/Frogman_API_Lab GitHub - Unknown-Stryker/Frogman_API_Lab Contribute to Unknown-Stryker/Frogman_API_Lab development by creating an account on GitHub. github.com 1. 프로젝트 생성 및 초기..
2023.05.01