znius작업과 취향의 기록
← 개발 일지

성좌들의 무림 · 02편

게임을 '딸깍' 만들 수 있는 시대

AI의 적용 수준

프롤로그에서 AI가 발전하면서 완성에 가까워지는 프로젝트가 늘었다고 적었다. 이번에는 조금 더 구체적으로 내가 어떻게 만들었는지 소개하려고 한다.

먼저 분명히 해 둘 것이 있다. 무엇을 만들지는 내가 정한다. 컨셉과 핵심 루프, 지켜야 할 원칙은 코드 한 줄 쓰기 전에 내가 기획서로 잡았고, AI는 그 뼈대 위에서 일한다.

이 게임의 코드는 대부분 AI와 함께 썼다. 기획 문서도 내가 주제를 선정하고 제목과 기본적인 뼈대를 전달하면 AI가 전체 내용을 작성한다. 그 문서를 최종으로 고치는 것은 내가 한다. 그래서 게임 이야기를 본격적으로 하기 전에 이 방식부터 밝혀 둔다.

AI라는 동료

AI에 관심을 가진 건 오래됐다. 2018년 무렵부터 NDC 같은 개발자 콘퍼런스에서 AI 세션을 챙겨 들었다. 2019년에는 AI를 활용한 스타트업을 준비하기도 했다. 하지만 그때는 사업 도구로서의 AI였고, 내 작업 방식을 바꿀 동료라고는 생각하지 않았다.

바뀐 계기는 둘이다. 하나는 본업에서 AI로 업무 효율을 높이라는 요구가 생긴 것이다. 쓰는 법을 익혀야 할 이유가 생겼다.

다른 하나는 Cursor로 개인 작업을 해 본 경험이다. 코딩을 어설프게 배운 기획자라도 개발을 끝까지 마무리할 수 있는 상황이 실제로 오고 있다는 걸, 만들어 보면서 알았다.

그 뒤로 공개하지 않은 게임을 몇 개 만들었다. 「프린세스 메이커」와 유사한 육성 시뮬레이션 게임도 그중 하나였다.

만든 게임만 있는 것은 아니다. 코에이의 「삼국지」 시리즈에 가족을 넣은 적이 있다. 가족 사진을 ComfyUI로 합성해 인물 초상으로 넣고, 집에서 있었던 일상적인 일들은 다른 무장들의 열전을 참고해 게임 말투의 열전과 이벤트로 옮겼다. 난세의 무장이 된 가족이 제 일상을 열전으로 읽는 것이다.

돌아보면 한 사람의 삶을 열전의 문체로 옮기는 일은 다음 편에서 다룰 이 게임의 묘 지문과 같은 모양이다.

「성좌들의 무림」은 그 연장선에 있고, 프롤로그에서 말한 "먼저 공개한다"를 처음으로 실행하는 프로젝트다.

뼈대는 사람이 세운다

이 게임의 기획 초안은 메모 수준이지만 2026년 7월 25일에 썼다. 구현을 시작하기 약 한 달 전이다. 거기에 이미 이런 것들이 들어 있었다.

  • 한 줄 컨셉: 직접 육성한 캐릭터가 성인이 되어 세계로 독립하고, 사용자는 그 삶을 지켜보는 성좌가 된다.
  • 디자인 필러 셋: 육성의 결과가 곧 운명이 된다. 조작에서 관찰로 권한이 옮겨 간다. 관찰은 혼자가 아니라 함께 하는 경험이다.
  • 핵심 루프: 육성 → 독립 → 관찰 → 죽음과 묘. 죽으면 생애 기록과 만든 사람이 함께 남는 게시글이 생겨난다.
  • 구조 원칙: 바뀌지 않는 코어 위에 미니게임과 시즌을 꽂았다 빼는 번들로 얹는다.
  • 개입의 선: 관찰자는 사건을 고르거나 캐릭터를 조종하지 않는다. 관심이 몰린 곳의 확률만 움직인다. 그리고 관심은 죽음만이 아니라 변동성을 키운다. 재앙과 영광이 함께 온다.

1편에 적은 기획의 축도 여기서 나왔다. 지금 게임에서 돌아가는 것의 대부분은 이 몇 줄을 풀어 쓴 것이다. 초안에는 "이후 모든 세부 설계는 이 필러에 부합하는지를 기준으로 판단한다"라고 적어 두었고, AI가 쓴 세부 설계도 이 기준으로 걸러진다.

걸러낸 예가 있다. 성좌들이 함께 큰 사건을 부르는 장치를 설계할 때, AI는 "재앙과 영광이 함께"를 "나쁜 후보 사이에 좋은 후보를 섞는다"로 읽었다. 초안에 풍년 같은 사건을 새로 제안했고, 나는 즉시 기각했다.

이 장르에서 무술의 성취는 난세에 얻는다. 좋은 사건과 나쁜 사건을 따로 두는 것이 아니라, 한 사건이 재앙과 기회를 함께 내야 한다. 뼈대의 한 단어를 지키는 것이 내 일이다.

세계에 무엇이 더 있어야 하는지도 대개 내가 정한다. 직접 지켜보다가 "천하오절 다섯 중 하나가 나머지를 모두 제압할 수 있다면 높여 불러야 한다"라거나, "변경에서 난세가 났다면 침공과 각지의 싸움 끝에 마지막에 수습한 영웅이 그려져야 한다"라고 적는다.

AI는 그것을 어떻게 구현할지, 이미 있는 규칙과 어디서 부딪히는지를 재서 가져온다. 방향은 사람이 주고, AI는 빠른 손과 정확한 자로 그 방향을 따라간다.

천계 화면의 천하오절 다섯 자리 — 맨 위 옹운나에게 천하제일인 표가 붙어 있고 아래로 지난 겨룸의 판들이 이어진다
천하오절과 천하제일인 — 다섯 중 하나가 나머지를 모두 꺾으면 높여 부른다
연대기 화면에 펼친 「유목민의 침입」 이야기 — 끝남 표와 수습한 이 · 손규원, 해마다 이어진 싸움과 결전이 차례로 적혀 있다
변경의 난세 — 침공과 각지의 싸움 끝에 결전에서 수습한 이가 이름으로 남는다

AI와의 업무 분장

지금의 분담은 이렇다.

맡긴다 안 맡긴다
세부 설계 — 뼈대 위에서 수치와 예외를 제안한다. 뼈대 — 컨셉, 핵심 루프, 지켜야 할 원칙
구현, 테스트 판정 — 재미있는가, 처음 보는 사람이 3분 안에 이해하는가
실측 — 세계를 수십 년씩 돌려 보고 숫자를 센다 결정 — 무엇을 팔지 않는가, 언제 공개하는가
문서 정합 — 코드를 고치면 문서를 같이 고친다 밖으로 나가는 명령 — 배포, 서버, 병합
문서 살 붙이기 — 내가 준 주제와 뼈대를 풀어 쓴다 삭제와 데이터베이스 쓰기

설계와 판정은 사람이 해야 한다. 이 프로젝트에서 가장 값진 수정은 거의 다 내가 폰으로 실기하다 "이상하다"고 적어 둔 한 줄에서 시작했다. 그 이야기들은 뒤의 편에서 하나씩 한다.

마지막 줄은 사고를 막는 문제다. Claude Code에 Cloudflare 커넥터(MCP)가 붙어서 대화 중에 계정을 직접 만질 수 있게 되자 선을 그었다.

이 게임에는 "플레이어가 육성한 캐릭터를 세계로 보내는 편입 파일만은 잃으면 안 된다"는 원칙이 있다. 무엇을 언제 지울지는 저장소의 수명 규칙이 이미 정해 두었다. 도구에 삭제를 맡기면 그 설계를 우회하는 손이 하나 생긴다. 그것도 대화 중에, 실수로. 인프라도 도구로 직접 만들지 않고 설정 파일(wrangler.jsonc)로 만든다.

게임 안의 AI

AI는 만드는 도구일 뿐 아니라 게임의 기능으로도 들어가 있다. 다만 쓰는 자리가 까다롭다. 1편에서 모두가 같은 세계를 본다고 했는데, 그러려면 같은 입력이면 늘 같은 세계가 나와야 한다(결정론). 그때그때 다른 답을 내는 LLM을 세계 안에 그대로 들이면 이 원칙이 깨진다.

  • 사건 문장: 로그 문장을 보는 순간 생성하면 같은 로그가 사람마다 달라지고 비용도 감당이 안 된다. 그래서 문형 사전을 미리 만들어 두고 로그에 구워 넣는다. 첫 벌은 로컬 모델(Qwen3.8-27B)로 뽑았다. 보는 순간의 호출은 0이다.
  • 묘 지문: 플레이어가 육성한 캐릭터가 죽으면 LLM이 그 일생을 글로 쓴다. 세계의 사실은 건드리지 않고 문장만 맡긴다. 이건 다음 편에서 자세히 한다.

요약 세 줄

  • 컨셉, 필러, 핵심 루프, 개입의 원칙은 구현 한 달 전에 내가 기획서로 잡았다. AI는 그 뼈대 위에서 일하고, 뼈대에 어긋난 제안은 버린다.
  • 세부 설계와 구현과 실측은 맡기고, 뼈대와 판정과 결정과 밖으로 나가는 명령, 삭제는 맡기지 않는다. 문서도 주제와 뼈대는 내가 주고, 최종으로 고치는 것은 내가 한다.
  • AI는 대화가 끊기면 잊고, 자신 있게 틀리고, 적어 둔 규칙을 지켜 주지 않는다. 그래서 문서가 기억이 되고, 규칙은 검사가 된다.

다음 편은 게임 안에서 LLM 이 맡은 자리, 묘 지문이다.