또 다시 삼각형
- OpenGL로 삼각형을 그린것이 지난 9월 14일 이었다. 세이더, 텍스쳐, 카메라 등 기초적인 그래픽스 API의 진행순서 정도만 익히고 같은 달 25일부터는 호기롭게 Vulkan 으로 넘어왔다. 9월 25일에는 그래도 OpenGL로 꽤나 어려운 개념들을 익혔는데 얼마나 더 새로운게 있을까 싶었다. OpenGL 을 시작할때에도 처음 접하는 단어의 의미들을 파악하는데 한참을 고생했었지만 Vulkan 은 차원이 다른 느낌이다. OpenGL 은 적어도 시작한지 몇시간만에 삼각형을 그려낼수 있었지만 Vulkan은 대략 3주나 걸렸다. 물론 중간에 마음에 들지 않아서 여러번 리펙토링 해서 그런것도 있지만, 튜토리얼도 너무 장황했고 그대로 쓰기에는 비교적 복잡한 언어적(C++) 문법들도 많이 나와서 한번에 이해하기 힘든 부분들이 많았다. 튜토리얼대로 치다보면 어느세 이상한 코드가 되어있고, 정답지를 살펴보며 어디가 틀렸는지 한참을 찾아야만 했다. 다행히 요즘은 클로드가 같이 검수를 해주고 원하는 질문에 바로바로 답변을 들을수 있어서 망정이지 안그랬으면 첫 삼각형도 몇달이 걸렸을 것이다. C++는 아직 혼자서 모든것을 소화하기에는 너무 까탈스럽고 모르는게 많다.
초기화, 그리고 포기
아직 초기화 단계에 코드 중에 모르는 개념들이 많다. 우선 삼각형만 그려본 것이고 그 내부에서 어떤일이 일어나는지 사실 감도 잘 안온다. 내 기준에서 튜토리얼은 그리 친절하게 느껴지진 않았다. 간결하게 표현해주고 나중에 추가적으로 설명을 해줬으면 좋았을련만... 중간중간 곁가지로 뻗어나가는 이야기가 많아서 초심자 입장에서 매우 혼란스럽기 그지없다. Vulkan이 초보들을 위한 API가 아니라는 것은 알고 있었지만 튜토리얼까지 불친절할 필요는 없으니까 말이다.
중간에 그만둘까 많이 고민했었다. 이렇게 오리무중인 것을 계속 처다봐봤자 내가 원하는 결과물은 손에 잡히지 않을것만 같았다. 그냥 상용게임엔진을 이 집중력으로 공부하는 것이 훨씬 바람직하지 않을까 생각하며 이 행위 자체가 의미가 없는것이 아닌가 고뇌했다. 물론 그 질문에 대한 답변은 어제나 YES이다. 그러나 지금은 게임의 완성이 아닌 게임을 테마로한 개발공부이기 때문에 이 모든 것들이 의미가 있는 것이다. 게임의 완성만 생각했다면 언제나 게임엔진을 보는 것을 우선시 했을 것이다.
클로드가 다 해준다?
아무튼 그런 생각에 이 부질없는 짓을 계속 이어나가고 있다. 학습을 하는 도중... 이렇게 클로드의 도움을 받고 만드는 것이라면 아예 내가 만든 코드를 기반으로 단순한 셈플정도까지 만들어 줄수 있지 않을까 싶어 목표로 하고 있는 HD-2D 스타일의 화면을 만들어 달라고 했다. 그래도 프로젝트 수준까지 완성시킬수 있을까? 의문을 가졌지만 이게 왠걸... 내가 원하는 만큼의 화면과 작동을 모두 구현하여 만들어 준 것이다. 아직 내가 만들어진 코드를 보며 평가할 단계가 아니기 때문에 이 존재 자체로만 해도 정말 대단하게 느껴졌다. 좌우 움직임과 점프. 그리고 간단한 BGM와 효과음까지. 완성된 것을 보아하니 약간은 현타가 오긴 했다. 이럴거면 왜 내가 머리아프게 하고 있지? 라면서 말이다.
그래도 포기하지 않고 꾸준히 해보려고 한다. 게임이 아닌 게임개발을 테마로한 공부니까 말이다. 조금 어려워 졌다고 금방 손 놓아버리면 그게 무슨 공부가 된단 말인가. 아무튼... 이번주도 부지런히 아직도 오리무중인 Vulkan 초기화와 전반적인 워크플로우를 익히는데 시간을 들여보도록 해야겠다.



Top comments (0)