자체엔진을 개발하게 된 여정

대학을 졸업한 나는 전공을 따르지 않고 어렸을때 했던 프로그래밍을

좀더 해보기로 했다.

결국 게임에 관심이 있었으니까 그나마 비전공자가 하기 쉽다던 유니티를 건들었다.

그렇게 처음 삽질을 해가며 30분정도 걸려서 화면에 띄운 사각형을 움직여 보았고,

그것을 계기로 과외 까지 받아가며 6개월 정도를 유니티로 개발하며 살았다.

게임을 직접 만들어본 사람들은 알겠지만, 엔진을 써서 생각했던 조그만 게임을 만드는것도 생각보다 쉽지 않은 일이다.

그렇지만, 나는 그렇게 꾸준히 개발을 했을 즈음 충격적인 일이 일어났다.

바로 유니티가 내새운 새로운 런타임 요금제를 출시했기 때문이다.

이미 만들어진 게임에 런타잎 요금을 새롭게 부과한다는것도 충격이였고,

지금까지 배운것은 그저 유니티를 어떻게 사용해야 하는지를 배운것이 전부였다.

그냥 믿고 나는 기업이 잘 하겠지라는 마음으로 아무문제 없을거라는 생각을 했지만,

그때 당시 내가 지끔껏 고생해서 시간을 투자해서 배운 유니티 사용법은 기업이 앞으로 어떻게 할지에 따라서 가치가 없어질지도 모른다는 생각이 들어서 무서웠다.

나는 그때 정신적으로 패닉 상태에 있었고, 생전 처음으로 심장이 이상하게 두근거리는 느낌이 들어 병원을 찾기도 했었다.

결국 그때의 나에게는 선택권 이라고는 유니티를 계속하거나, 아니면 다른 엔진(언리얼, 고도 등등)을 배우는 수밖에 없었다.

유니티를 배울것을 생각하니, 산업 자체를 이해하지 못하는 기업이 언제 또 이상한 짓을 할지도 모른다는 불안감이 들었고 그리고 이미 깨져버린 신뢰는, 유니티를 계속 배워야 할지 고민하게 만들었다.

언리얼을 좀 봤지만 코드를 수정하고 빌드가 1분넘게 걸리는것을 보고 내 컴퓨터는 언리얼을 돌리기에는 너무 느리다는 생각을 하게 되었다.

또, 엔진 사용법을 배우면서 뭔가 재밌다는 생각이 들었지만, 뭔가 좀 기분이 이상했다.

엔진이 작동하는 내부작동작을 모르는것이 답답하기도 했다.

그래서 결국 유니티를 지우고 DirectX11을 시작했다.

아마 국내에서 이짓을 한다는 것 자체가 미친짓일지도 모르겠자만,

적어도 내가 만든 작업물을 다른 기업에 의해서 좌지우지 되게 하기 싫은 마음, 그리고 근본적인 기술을 쌓아야 나중에 엔진을 써도 엔진을 옮겨가며 사용법을 익히는 것보다는 더 빠르게 적응할수 있지 않을까 싶었다.

사실, 국내에 엔진을 작업하는 유튜버가 있었고, 그 분 작업물을 보았을때는 처음 느낀 생각은 '그래픽이 정말 별로다','나도 할수 있을것 같은데?' 라고 생각했다.

왜냐하면 엔진을 썼을때는 말 그대로 3D모델은 세부사항을 몰라도 FBX파일을 임포트 하기 만 하면 됬기 때문이다.

하지만, DirectX11 을 사용하면서 처음 삼각형을 그리는 것 조차 여러번 컴파일에러를 겪어가며 API에서 제공하는 함수를 본 나는 충격을 받았다.

'도데체 이걸 어떻게 하는거지' 라는 생각이 들었다.

하지만 시작이였으니 개발을 계속해서 이어나갔다.

졸업해도 집에 있는 나를 보고 부모님이 뭐라고 생각할지는 모르겠으나,

안그래도 경제가 휴식기에 들어가면서 기업들은 투자와 고용을 줄이게 되었고,

원래 과포화 되었던 개발자 시장은 매우 차갑게 변했다.

아무튼, 원래 배우기로 생각했던 자료구조와 알고리듬을 보강하고 Directx를 계속해서 만지작 거리게 되었다.

다들, 어떻게 생각할지 모르겠다, 3D모델 화면에 띄우는것은 별거 아니라고 생각할지도 모르겠다.

하지만 나는 처음에 이것을 배웠을때 모델파일을 읽게 만드는것 조차 굉장히 어렵게 느껴졌고 포기하고 싶은 마음이 있었다.

버텍스 버퍼와 인덱스 버퍼,(사실 모던 그래픽스 API에 비하면 친절한 편인) 로 여러번 블랜더에서 내보낸 모델이 폴리곤이 깨지거나 uv가 이상해서 텍스쳐가 반대로 나오거나 이상하게 나오는등, 별에 별 이상한 일이 생겼다.

삽질을 하면서 엔진에서 이것을 자동으로 처리해줬다는 사실, 그리고 내가 엔진을 사용법만을 익혔을뿐이지, 실제로 내부적인 구현방법에 대해서는 아무것도 몰랐다는 사실이 좀더 다가왔다.

이제는 내 블루스카이 에서 볼수 있는것 처럼 gltf파일 임포터를 내가 직접 파이썬 코드로 내보내서 내 엔진에 불러올수 있게 되었다.(에니메이션은 아직 않함)

아무튼, 그렇다.

난 내가 만든 작업물이 소중하다고 생각한다.

그런데 다른 기업이 건들거나, 하면 정말 슬플것이다.

그래서 내가 직접 개발을 하게 된것이다.

하지만 엔진작업은 순조롭지 않고 엔진을 사용할때에 비하면 달팽이가 기어가는 것 처럼 느껴진다.

하지만 계속해서 개발을 이어나가고 있다.

이글은 계속해서 업데이트 됩니다.

혹시라고 궁금하면 제 SNS를 팔로우하시면, 개발이 어떻게 진행되어 가고 있는지 확인하실수 있습니다.

bsky: https://bsky.app/profile/pipe777.bsky.social

x : https://x.com/pipe777_x