여기 인기 없는 진실이 있다: 값싼 편법을 금지한 것이 실제 시간과 비용을 소모시켰고, 그럼에도 다시 그렇게 할 것이다. 대부분의 AI 게임 빌더는 3D를 가짜로 만든다 — 기울어진 캔버스, 원근법 수학 몇 개, 오후 한나절이면 끝. 우리도 시도해봤고, 딱 예상한 만큼의 결과가 나왔다.
결정적인 순간은 캔버스로 만든 가짜 3D를 실제 엔진으로 렌더링한 빌드 옆에 놓았을 때 찾아왔다. 취향이나 완성도의 문제가 아니었다. 하나는 게임처럼 보였다. 다른 하나는 야심 찬 스프레드시트처럼 보였다. 그래서 빌더 지침에 엄격한 규칙을 새겼다: 실제 엔진 렌더링이 아니면 아무것도 하지 않는다. 웹 게임은 번들된 three.js와 물리 스택으로 실행된다. 네이티브 품질을 주장하는 것은 무엇이든 Unity Lab을 거쳐야 하며, 그곳에서 에이전트가 실제 C# 코드를 작성해 Unity 6에 적용하고, 브라우저 탭에서 플레이할 수 있는 WebGL 빌드로 컴파일한다.
아무도 미리 경고해주지 않는 부분: 에셋
가짜 렌더러를 금지한 것은 쉬운 절반이었다. 어려운 부분은, 실제 엔진은 입력된 것만 렌더링하며, 코드만 다루는 에이전트를 그대로 두면 프로그래머 아트 — 의도는 좋지만 울퉁불퉁한 구체들, 플레이어가 보고 싶어 할 만한 게 아닌 것들 — 를 만들어낸다는 점이다. 해결책은 더 나은 렌더러가 아니었다. 파이프라인 순서를 바꾸는 것이었다: 콘셉트가 먼저, 지오메트리는 그다음. 에이전트는 메쉬를 건드리기 전에 콘셉트 아트를 그린다. 그런 다음 모델링 에이전트가 그 콘셉트를 겨냥한 Blender 스크립트를 작성하고, 헤드리스로 렌더링하며, 시각 감사 루프가 렌더링 결과를 콘셉트와 비교해 두 가지가 실제로 일치할 때까지 스크립트를 수정하도록 되돌려 보낸다.
이 루프는 느리고, 스스로와 논쟁하느라 컴퓨팅 자원을 태운다. 하지만 이것만이 우리를 프로그래머 아트에서 벗어나게 해준 유일한 방법이기도 하다. 랩의 각 작품 페이지는 감사 라운드를 그대로 공개하므로, 우리 말을 믿지 않아도 수렴 과정을 직접 볼 수 있다. 최신 작품인 오르간 로프트의 1라운드와 4라운드를 소개한다:
그리고 이것이 엔진 안에서 실제로 작동하는 조명과 머티리얼과 함께 놓이면:
사운드도 같은 논리, 다른 형태였다
캔버스 가짜에 해당하는 오디오 버전은 단순한 오실레이터 비프음이며, 한동안 우리 게임에는 이런 소리가 가득했다 — 만들기는 싸지만 싸구려 티가 즉시 난다. 진단도, 해법도 동일했다: 엄격한 규칙과 실제 툴링. 이제 모든 사운드는 자체 보유한 84개 악기로 구성된 샘플링 라이브러리와 녹음된 앰비언스에서 나온다. 항구 레벨에는 실제 물과 갈매기 소리처럼 들리는 물과 갈매기가 있다. 퍼즐 게임의 성공 차임은 계산된 소리가 아니라 실제로 연주된 소리다.
왜 이 지저분한 과정 전체를 온라인에 공개하는가
데모 릴은 가장 좋은 5분만 보여준다. 랩은 모델이 잘못되어 보였던 라운드까지 포함해 모든 것을 보여준다.
랩에는 현재 83개의 공개된 빌드 페이지가 있고, Blender Studio는 에셋 측면을 그 자체로 보여준다 — 스크립트, 턴테이블 렌더링, 흠결까지 포함한 전체 감사 이력. 우리는 실패한 라운드도 일부러 공개한다. 잘 찍은 스크린샷 한 장만 골라 보여주는 건 누구나 할 수 있고, 그건 아무것도 증명하지 못한다. 못생긴 1라운드 지오메트리를 포함해 모든 반복 과정을 보여주는 것은 훨씬 조작하기 어렵고, 그게 바로 이런 방식으로 하는 전체 이유다.
이제 양보할 부분이다. 이 접근법을 비판하는 사람들이 비용 문제에 대해서는 틀리지 않았기 때문이다. 캔버스 가짜는 오후 한나절이면 나온다. 우리 파이프라인은 감사 루프와 모델링 에이전트, 그리고 실제 엔진 컴파일 시간을 거쳐야 뭔가를 플레이할 수 있게 된다. 빠른 프로토타입이나 일회성 잼 게임이라면 그 오버헤드는 정말로 그럴 가치가 없다 — 캔버스 트릭이 더 빠르고, 아무도 자세히 스크린샷을 찍지 않는 5분짜리 게임플레이라면 그것으로도 충분할 수 있다. 그 점을 부정하지 않는다. 다만 우리는 5분짜리 일회성 게임을 만들지 않으며, 품질이 실제 제품이 되는 순간부터는 느린 경로만이 실제 플레이어와의 접점에서 살아남는다.



