라벨이 로블록스인 게시물 표시

로블록스 기획서의 “작게”와 코드의 102스터드

이미지
지난 게임에서는 하네스를 마지막 날에 붙였다. 이번엔 코드보다 먼저 놨다. 하루에 12,903줄이 나왔고 테스트 354단언이 통과했는데, 맵은 어이없게 작았다. 저주대전 저장소를 열어보면 순서가 그대로 남아 있다. 첫 커밋이 2026-08-05, 마지막 커밋이 08-19. 그 사이 19개 커밋이 쌓였고 src/ 는 44파일 27,847줄이 됐다. .claude/agents/ 의 첫 파일이 생긴 시각은 08-19 12:34다. 14일치 코드를 다 쓰고 나서 에이전트를 만들었다는 뜻이다. 그 저장소에는 tests/ 디렉터리가 아예 없다. 검증이 없었던 건 아니다. 교차 참조 검사기를 23개까지 만들어 붙였고 규칙 문서는 MCP 서버로 잘라서 에이전트에 물렸다 . 다만 그게 전부 코드를 다 쓴 뒤에 따라온 것들이었다. 하네스를 붙이던 커밋 메시지에 스스로 진단이 적혀 있다. chore: 하네스 구성 — 정적 검증은 L3 인데 실기 검증만 L0(산문)이었다 교차 참조 검사 24종이 커밋을 물리적으로 막을 만큼 서 있는 동안, "스튜디오에서 실제로 봤는가"는 인계 문서의 산문 표에 47행까지 쌓여 있었다. 확인했다고 적을 자리가 없어서 매 세션이 47개를 다시 읽고도 무엇이 끝났는지 몰랐다. 코드를 다 쓴 다음에야 그 비대칭이 보였다. 같은 커밋의 마지막 줄은 이렇게 끝난다. "하네스 자체는 실제 작업으로 돌려본 적이 없다. 정적 검증까지다." 그래서 오늘은 순서를 바꿔봤다. 로블록스 게임 두 개를 같은 날 시작하면서 기획서와 하네스를 코드보다 먼저 놨다. 하루 만에 12,903줄이 나왔고 테스트 354단언이 통과했고 둘 다 실행됐다. 그래도 돌아가긴 하네, 싶었다. 그런데 열어보니 맵이 작았다. 354개 중에 그걸 물어본 단언은 하나도 없었다. 12시 24분에 기획서가 먼저 있었다 오늘 로블록스 게임 두 개를 동시에 시작했다. 「우리 학교가 이상하다」(1~4인 협동 관찰 공포, 전투 없음)와 「몬스터 군도...

AI 개발팀 프로세스를 묻길래 검사기 23개를 보여줬다

이미지
쓰다보니 꼬였네요. 자정 가까운 시각에 오픈 채팅방에 내가 적은 문장이다. 밤 10시쯤 질문이 하나 올라왔다. 회사에서 AI 개발팀을 새로 만들었고 자기가 그 팀 팀장을 맡게 됐는데, 그동안 보안 업무만 해서 개발 프로세스를 팀에 적용하려니 노하우가 없다는 얘기였다. 표준화나 절차 같은 걸 어디서부터 잡아야 하냐고 물었다. 나는 답을 길게 쓸 생각이 없었고, 내가 이런 걸 알아볼 때 AI에게 던지는 지시문 형식을 그대로 복사해서 붙여줬다. 대화는 잘 붙었다. 다른 사람이 끼어들어 AI 조직은 사내 이해관계 충돌이 제일 많은 자리라 피곤할 거라고 거들었고, 나는 프로세스 4단계 얘기까지 이어갔고, 자정을 넘겨 고맙다는 답이 왔다. ADR 얘기를 꺼내려다 표준화 얘기로 새서 스스로 끊은 거였다. 그날 밤엔 그냥 문장이 엉킨 줄 알았다. 다음 날 다른 이유로 게임 저장소를 열었다가, 왜 꼬였는지 알았다. 내가 붙여준 건 지시문이 아니라 마지막 한 줄이었다 붙여준 형식은 이랬다. 너는 다년간 아키텍처 설계 및 코딩을 해온 시니어야. 나는 보안쪽 업무를 다년간 해왔어. 이번에 개발팀에 팀장역할을 맡게 되었어. 너의 역할은 심층검색과 분석을 통해 나에게 개발 프로세스 및 표준화 절차 가이드를 제공하는거야. 문서의 양식은 마크다운과 html 두 가지 양식으로 제공 받길 원해. --- 이런 형식으로 지시하려해 부족한 부분이 있어? 역할 목적 결과 또 뭐가 필요하지? 앞의 네 줄은 흔한 구성이다. 상대 역할, 내 배경, 시켜야 할 일, 받고 싶은 형식. 프롬프트 작성법 글 아무거나 읽으면 나온다. 내가 실제로 값을 보는 건 구분선 아래 두 줄이다. 지시를 실행시키기 전에, 지시문 자체를 같은 상대에게 먼저 검사받는 턴. 이걸 붙이면 첫 답이 문서가 아니라 되물음으로 온다. 회사 규모가 몇 명인지, 지금 팀이 쓰는 이슈 트래커가 뭔지, 기존 문서가 어디까지 있는지. 그 되물음에 답하고 나서 지시를 다시 던지면, 같은 모델이 완전히 다른 밀도의 결과를 낸다....

아이들은 우리 게임에 들어오지 못한다

이미지
아들과 로블록스 게임을 만들고 있다. 아들이 로블록스를 하니까 로블록스로 정했다. 만들고 싶은 걸 물었더니 싸우는 게임이라고 했고, 그래서 대전 게임이 됐다. 술사 다섯이 각자 다른 기술을 쓰고, 저주를 잡으러 층층이 올라가는 탑이 있고, 다른 사람과 붙는 랭크전이 있다. 만드는 동안 아들은 기획자 쪽에 가까웠다. 뭐가 재미없는지 말해주는 사람이 필요했는데 그 역할을 아들이 했다. 아들이 재밌다고 했다. 만든 사람의 아들이 하는 말이라 절반은 접어서 들어야 하는 종류의 평가다. 그래도 아들은 밸런스가 이상하다는 말을 같이 했고, 그건 접을 필요가 없는 말이었다. 재미없으면 밸런스 얘기까지 안 간다. 주말에 아들 친구가 놀러 왔다. 둘이 한참 붙어 있더니 친구도 재밌다고 했다. 이번엔 접을 이유가 없었다. 만든 사람과 아무 상관 없는 아이가, 아무도 시키지 않았는데 계속 하고 있었다. 같은 주에 로블록스 수익 계정 등록을 마쳤다. 은행 계좌와 세금 정보까지 넣었다. 만든 것이 돈을 받을 수 있는 상태가 되는 절차는 생각보다 사무적이었고, 막히는 데 없이 끝났다. 그리고 그 두 아이는, 이 게임에 자기 계정으로 들어갈 수 없다. 둘 다 내 서브계정을 빌려서 했다. 그날 방에 아이는 없었다 로블록스 입장에서 그날 접속한 것은 나이 확인과 신분증 인증을 마친 성인 계정 하나다. 아이 둘이 번갈아 컨트롤러를 잡았다는 사실은 어디에도 기록되지 않는다. 계정은 하나였으니까. 이게 왜 중요하냐면, 이 게임을 아이들에게 열어주는 유일한 조건이 사람 수 로 세어지기 때문이다. 정확히는 60일 안에 나이 확인을 마친 유저의 순 플레이 500회 다. 순 플레이는 고유 유저 기준이다. 두 아이가 하루 종일 번갈아 해도 그 카운터에는 최대 1이 올라간다. 그것도 내 서브계정으로. 게임을 재밌다고 말해준 사람들이, 그 게임을 열어줄 지표에는 존재하지 않는다. 그 1조차 세어질지 모르겠다. 내 서브계정이고, 나는 이 게임의 개발자다. 개발자 본인의 계정이 자기 게임...

내 하루 토큰 사용량의 분모는 얼마인가?

이미지
이틀 전에 게임 저장소에 문서 MCP 서버를 붙였다. 문서 14개를 통째로 읽히는 대신 질문에 맞는 섹션만 돌려주게 만든 것이고, 그 과정은 따로 적었다 . 그 글 끝에 나는 이렇게 썼다. get_rules 호출 기준 토큰이 13~20% 줄었다고. 그 문장을 쓸 때는 만족스러웠다. 측정을 했고 숫자가 나왔으니까. 며칠 지나고 나서 그 문장이 이상하게 걸렸다. 13~20%가 줄었다는 건 분자다. 분모는 무엇인가. 나는 하루에 토큰을 얼마나 쓰고 있나. 13%를 줄인 게 밥 한 숟갈인지 한 끼인지 나는 모르고 있었다. 모르는 채로 절감률만 적어둔 것이다. 분모를 세어보기로 했다 Claude Code는 대화 기록을 로컬에 남긴다. ~/.claude/projects/ 아래에 저장소별 디렉터리가 있고 그 안에 .jsonl 파일이 쌓인다. 각 줄이 메시지 하나고, 어시스턴트 메시지에는 usage 필드가 붙어 있다. 거기에 네 가지 숫자가 들어 있다. input_tokens 는 캐시에 없어서 새로 읽은 입력이고, output_tokens 는 모델이 생성한 출력이다. cache_creation_input_tokens 는 캐시에 새로 쓴 입력, cache_read_input_tokens 는 캐시에서 읽은 입력이다. 이 네 개를 저장소별로 더하는 스크립트를 40줄쯤 짰다. 48개 파일, 56MB였다. 결과를 처음 봤을 때 나는 자릿수를 잘못 읽은 줄 알았다. 6억 4,619만 로블록스 게임 저장소 한 곳이 153,811,746 토큰으로 23.8% 다. 블로그 저장소 두 곳이 252,075,809 로 39.0% 라 제일 크고, 개인 앱 프로젝트 한 곳이 133,050,923 으로 20.6% 다. 책 작업 세 곳이 76,789,730 으로 11.9%, 도구와 기타 두 곳이 18,243,049 로 2.8%, 업무 관련 저장소 네 곳이 12,220,298 로 1.9% 다. 열세 곳을 합치면 646,191,555 다. 6억 4,619만 토큰이다. 메시...

게임 레포 규칙 문서 250KB를 MCP 서버로 자르기

이미지
규칙은 다섯 줄에서 시작했다. 안내판이 빈 판으로 보인 사고가 나서 한 줄이 늘었다. 점프가 영구히 잠긴 사고에 또 한 줄, 이펙트가 자기 히트박스에 걸린 사고에 또 한 줄. 다 원인을 찾아서 적어뒀고 같은 사고는 두 번 안 났다. 그렇게 아들과 만드는 로블록스 게임 레포의 CLAUDE.md 가 10KB를 넘었다. 새 세션을 열면 에이전트가 그 10KB를 읽고 시작한다. 필요한 규칙은 그중 두 줄이다. 나머지 문서까지 합치면 250KB인데 그건 아예 안 읽는다. 안 읽은 쪽에 그날 필요한 줄이 있으면 사고가 다시 난다. 트렌딩에 올라온 것들이 같은 얘기를 하고 있었다 이 문제를 어떻게 할지 생각하기 전에, 그날 GitHub 트렌딩을 보고 있었다. 8월 6일 기준으로 하루에 스타를 많이 받은 레포들이 이런 것들이었다. obra/superpowers 는 방법론을 떼어냈다. 스킬을 배포 가능한 패키지로 만든 것이다. addyosmani/agent-skills 도 같은 것인데 70개 이상 에이전트를 타깃으로 잡았다. TencentCloud/TencentDB-Agent-Memory 는 기억을 떼어내서 개인 파일에 있던 걸 팀 공유 자산으로 올렸고, huangruiteng/loopx 는 루프 상태를 떼어내 목표와 게이트와 증거를 커널로 만들었다. 따로 보면 각각 다른 소식인데, 묶어 보면 전부 같은 일을 하고 있다. 작년까지 각자 CLAUDE.md 에 손으로 적던 것을 레이어로 뜯어내는 작업 이다. 방법론, 기억, 루프 상태. 여기에 7월 말에 나온 MCP 명세 개정이 붙는다. 상태를 서버가 들고 있지 않게 바뀌면서 클라이언트·서버 구현이 눈에 띄게 단순해졌다. 내 문제도 정확히 그 목록에 들어가는 종류였다. 규칙과 문서를 CLAUDE.md 한 파일에 쌓아 올리는 대신, 물어보면 답하는 층 으로 떼어내면 된다. 그리고 그걸 붙이는 규격이 MCP다. 다른 프로젝트에서 같은 문제를 그렇게 푼 걸 본 적이 있었다. 프로젝트 문서를 MCP 도구로 노출하...

로블록스는 만들라고 하기 전에 공부부터 시켜라

이미지
모르는 판에서는 만들라고 시키기 전에 공부하라고 시키는 편이 빠르다. 지시 네 줄 중 세 줄을 공부에 썼고, 첫 코드가 나오기까지 14분이 걸렸고, 81분 뒤에 게임이 돌아갔다. 이 순서를 알게 된 건 앞에서 한 번 엎었기 때문이다. 아들이 브라우저에서 돌아가는 게임을 하나 만들고 나서 다음 걸 요구했다. 로블록스로 만들고 싶다고 했다. 웹게임 때와 같은 방식이면 될 거라고 봤다. AI에게 말로 설명하면 코드가 나오고, 그걸 열면 돌아가는 흐름 말이다. 로블록스에서는 안 됐다. 파일은 나왔는데 스튜디오에서 게임이 되지 않았고, 더 곤란했던 건 왜 안 되는지를 셋 중 아무도 몰랐다는 것이다. 아이도 모르고 나도 모르고 AI도 모르는 상태에서 안 되는 결과물을 붙들고 있었다. 아이가 웹에서 로블록스로 올라갔다 앞선 두 편에서 아들이 AI와 대화해서 만든 건 브라우저 게임이었다. 1편 에서 96분 만에 돌아갔고 2편 에서 아이가 어떻게 요구를 넣었는지 봤다. 그게 끝나고 아이가 다음으로 지목한 게 로블록스였다. 이유는 단순하다. 친구들이 거기 있다. 브라우저 게임은 링크를 보내야 하고 받은 쪽이 열어야 하지만, 로블록스는 이미 다들 켜 놓고 있는 곳이다. 아이가 만들고 싶다고 한 건 「주츠」였다. 주술회전 세계관을 로블록스로 옮긴 대전 게임인데, 정확히는 그 게임의 아류작을 만들고 싶다는 얘기였다. 원작 게임을 아이는 이미 몇 십 시간 해본 상태였고, 뭐가 재밌는지에 대해서는 나보다 훨씬 정확한 감각을 갖고 있었다. 시도는 ChatGPT로 했다. 웹게임 때와 같은 도구였고 같은 방식이었다. 결과는 안 됐다. 이 부분은 대화 원문을 지금 갖고 있지 않다. 웹 쪽 대화라 내 PC에 남아 있지 않고, 로컬에 남은 유일한 흔적은 나중에 내가 다른 창에 친 한 줄이다. 그래서 여기서는 "안 됐다"까지만 쓴다. 어느 단계에서 어떻게 무너졌는지를 재구성하면 그건 기록이 아니라 창작이 된다. 다만 안 된 이유의 성격은 짐작이 간다. 로블록스 게임은 ...