반응형

간만에 개발하려다보니 까먹은게 많아서 확실히 해두기 위해 엔진 소스중 중요한 내용을 먼저 메모하고 나중에 정리해서 엔진설명을 할까한다. 한너울 엔진 1.0 다시 뜯어고치는중....

 

#define WIN32_LEAN_AND_MEAN

 

이라고 적혀있는것을 오픈소스들을 보면 심심치 않게 볼 수 있다. 예전에 써놓고 까먹고있기도 했고 그당시 잘 모르고 넘어가서 조사를 해봤다. 아래 사이트 맨 마지막을 보면 나와있다.

 

https://docs.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers

  • Define WIN32_LEAN_AND_MEAN to exclude APIs such as Cryptography, DDE, RPC, Shell, and Windows Sockets.

최근 UWP니 .net WPF니 하면서 잘 안배우려는 사람들이 늘고있지만 WIN32 API는 여전히 많이 사용되고 있다. WIN32만 잘해도 아직도 많이 인정받는걸 보면 위에 나온거처럼 WIN32_LEAN_AND_MEAN 옵션을 이용해서 빌드타임 최적화를 하는것도 좋은 방법이라고 생각한다.

WIN32로 프로그래밍을 할 때 #include <windows.h> 전에 '#define WIN32_LEAN_AND_MEAN' 한줄을 작성을 하면 된다. 그러면 <windows.h>의 경우 win32 api들과 관련된 헤더들을 모아주는 역할을 한다고 알고있는데 여기서 암호화나 DDE, RPC, Shell, Windows Socket 과 관련된 기능을 로드하지 않는다. 컴파일러들이 요즘 똑똑해져서 Optimize 버전에서 실행시간이나 프로그램 용량차이가 크진 않겠지만 관련 헤더들을 include하지 않도록 줄여준다면 빌드타임을 효과적으로 줄일 수 있다. 게임을 만들면서 위의 기능들을 굳이 win32 API들을 사용할 이유가 없기 때문에 Hanneoul Engine에서는 생략하고 넘어간다.

 

크게 줄지는 않지만 티끌모아 태산이라고 조금씩이라도 초반에 미리 줄일 수 있는것들은 줄이고 시작하는게 좋다고 생각된다. C++이 인터프리터 언어가 아닌 이상 프로젝트가 무거워질수록 빌드 타이밍이 길어질꺼고 결국 고통스러운건 개발자일테니 미리미리 줄여두자.

 

반응형
반응형

한너울이 오래 쉬었다.

간만에 새벽 2시... 오랫만이네...

 

다시 시작하려한다...

 

Unreal 엔진 분석을 시작하고...

 

Hanneoul 엔진을 만들고...

 

재밌는 게임하나 만들어보자!

 

반응형
반응형
연구실에서 이것저것 논문을 뒤적거리다보면
셰이더 모델 4.0을 쓰는 DX10 을 주로 쓰는 연구들이 많다.

반면 MS가 밀고있는 XNA라는 플랫폼을 보면 뭐 게임개발이 상당히 쉬울꺼같다.

본인께서는 이 두가지를 놓고 상당히 많이 고민을 했었는데
DirectX 10에 손을 들어주고 말았다.

XNA를 실제로 좀 써본결과 코딩이 상당히 손쉬웠다.
DirectX에서 보던 지저분한 의미도 모르고 썼던 내용들이 간단하게 압축이 되었고
C#의 특성상 . 만 찍으면 주르르르륵 모든게 다 나오는 아주 편한 인터페이스덕에
매우 흡족한 코딩을 할 수 있었다.

DirectX10은 쉐이더 4.0을 쓰는만큼 기능도 더 강력하고 XNA에서 꿈도꾸지못할
퍼포먼스를 보여주기도 한다. geometry shader라는 것도 생기고 했기때문에
좋은 알고리즘만 있다면 같은 프레임에서 더 좋은 퍼포먼스를 보여줄 수 있다.

본인도 열심히 고민을 했다.
C#에서 directX 9.0을 썼을때 XNA와 비슷한 느낌을 받긴했었다.
하지만 XNA의 편리함과 단순함에는 박수를 쳐주고 싶었다.

더 나은 퍼포먼스를 위해 또 연구를 위해 DX10을 택하긴 했지만...

사실 게임이라는것이 요즘들어 그래픽만을 너무 강조하기 시작하였다.
알고보면 게임에서 중요한건 창의성. 그리고 재미라는 요소지 그래픽이 전부가 아닌데..

취미로 게임제작만을 목적으로 하는사람들에게 나는 과감히 XNA를 해보라고 권하겠다.
DirectX기반으로 게임들이 많이 개발되고.. 오픈소스들도 많이 돌아다니고..
오우거엔진등 엔진들도 많지만..

결국 자신이 직접 게임을 만들고싶다면 코딩하는 시간을 절약하고
좀더 재밌고 다양한 시도를 하길 바란다...

XNA의 보급으로 인한 동인게임팀들의 부활을 기대해본다...

어느새 좀 불씨가 죽은거 같아서 약간 실망스러운 어느 오후....
반응형

+ Recent posts