게임디자이너 · 시스템디자인

안녕하세요, 김우진입니다.

"걸어다니는 게임 설계도"1. 홈랩에서 24시간 돌아가는 공개 서비스와 자작 게임 프로젝트들을 소개합니다.

소개

2005년 MMO 개발팀에서 시작해 약 20년간 MMO·수집형 RPG·TPS 등 대규모 프로젝트에서 게임 시스템을 바닥부터 설계해 왔습니다. 기술적으로 유연하고 기획적으로 단순한 해법을 찾고 협업의 마찰을 줄이는 자동화에 관심이 많습니다.

  • Large Scale Systems
  • Design Management
  • Design Leadership
  • Game Systems Design
  • Technical Design
  • Automation

프로젝트

게임

NUCLEAR EARTH — 우한 상공 폭발 1분 뒤 검은 하늘을 배경으로 흰 지표 위에 솟은 버섯구름을 옆에서 바라보는 가운데 사상자 추정 패널이 떠 있는 재생 화면

NUCLEAR EARTH

실제 사일로와 폭격기 기지에서 핵무기를 발사하고 그 피해를 건물 단위까지 들여다보는 서버 기반 핵폭발 시뮬레이션.

흰 음영으로 그린 둥근 지구를 돌려 출발할 사일로나 비행장을 고르면 그곳에 배치된 무기와 기종의 사거리가 투하할 수 있는 범위를 정합니다. 발사한 뒤에는 지구 반대편까지 1분 안으로 압축된 비행을 따라가고 목표 상공에서 폭발하면 서버가 계산한 충격파와 화재·낙진·쓰나미가 대륙에서 건물까지 끊김 없이 확대되는 지구 위에 펼쳐집니다. 사망자와 부상자는 5년에 걸친 시간축으로 집계되고 모든 발사는 기록으로 남아 누구나 다시 재생할 수 있습니다.

  • 게임
  • 시뮬레이션
  • 3D
  • 웹
Drive Seoul — 강남 도로의 차 뒤에서 차선과 신호등, 건물과 가로수를 바라보는 주행 화면

Drive Seoul

공개 지리 데이터를 가공해 재현한 서울을 함께 달리며 택시·경주·구간 기록을 즐기는 브라우저 주행 게임.

서울의 도로·건물·지형을 공개 자료에서 가져와 같은 좌표계로 맞추고, 주행할 수 있는 3D 세계로 다시 만들었습니다. 접속한 플레이어는 같은 서울에서 차를 몰고 택시 영업·경주·구간 기록에 참가합니다. 열악한 회선에서도 차가 끊겨 보이지 않도록 보내는 범위와 빈도를 조절하고, 멀리 있는 교통은 클라이언트가 차로 위에서 예측해 그립니다.

  • 게임
  • 멀티플레이
  • 서울
  • 공개 데이터
  • 3D
  • 웹
SPACE — 블랙홀을 렌더링한 인게임 화면

SPACE

물리 엔진 위에서 궤도와 추력을 다루는 멀티플레이 우주비행 방치형 시뮬레이션.

행성과 성운, 블랙홀까지 실제 천체를 관측하듯 누비고 항로를 개척합니다. 조작은 추력의 방향과 세기가 전부라 부담이 없고 접속을 끊어 두어도 우주선은 스스로 나아갑니다.

  • 게임
  • 시뮬레이션
  • 멀티플레이
  • 방치형
  • 웹
MIDWAY — 실측 스케일로 재현한 미드웨이 환초와 그 주변 해역에 배치된 양 함대

MIDWAY

1942년 미드웨이 해전을 실측 스케일 3D로 관전하고 역사의 분기점에 개입하는 시뮬레이터.

1942년 6월 4일 하루의 전투가 사료 그대로 흘러가는 동안 양 함대와 편대를 따라다니면서 지켜보시면 됩니다. 나구모의 무장 교체나 매클러스키의 색적 판단 같은 다섯 개의 분기점에서 다른 선택을 고르시면 확률 모형이 그 뒤를 새로 계산해 여덟에서 열 갈래의 결말로 갈라집니다.

  • 게임
  • 시뮬레이션
  • 3D
  • 대체역사
  • 웹
ANTS — 지하 개미굴과 지상을 오가는 개미 군집 게임플레이 화면

ANTS

실제 개미 군집의 습성을 모델링한 멀티플레이 개미 시뮬레이션.

땅속 굴을 넓히고 일개미를 길러 먹이를 나르다 보면 페로몬을 따라 움직이는 군집이 스스로 질서를 잡아 갑니다. 이웃한 군집과 자원을 두고 마주치기도 하고 느긋하게 지켜보는 재미가 있습니다. 최근 업데이트로 급식과 페로몬만으로 콜로니의 부양력을 끌어올려 개미집이 눈에 띄게 자라도록 했고 지켜보는 재미에 개입하는 재미를 더했습니다.

  • 게임
  • 시뮬레이션
  • 멀티플레이
  • 방치형
  • 웹
GAWIBAWIBO — 각자 다른 스킨의 복셀 봇들이 테마 장식된 칸을 하나씩 점유한 지상 계단 화면

GAWIBAWIBO

가위바위보로 지상에서 우주까지 100칸 하늘 계단을 오르는 비동기 사전입력·실시간 판정 등반 게임.

도전은 “가위 바위 보!” 뒤 1초 안에 내는 실시간 진검승부이고 수비는 미리 남겨 둔 5수 시퀀스가 잠든 사이에도 대신 겨루는 비동기전입니다. 5판 3승이면 윗칸 상대와 자리를 바꾸고 정상에 오르면 명예의 전당에 영구히 기록됩니다. 골드로 마인크래프트풍 스킨과 계단 장식을 모아 자기 칸을 꾸밉니다.

  • 게임
  • 멀티플레이
  • 비동기
  • 웹
Q3DM17FFA2D — 공허에 떠 있는 아레나에서 봇들과 교전하며 붉은 조준 마커가 상대를 잡고 있는 인게임 화면

Q3DM17FFA2D

Quake 3 Arena의 FFA 레벨 Q3DM17을 웹에서 8~16인이 실시간으로 겨루는 트리뷰트.

설치도 로그인도 없이 접속하면 곧바로 관전자로 입장하고 준비되면 난입해 겨루실 수 있습니다. 지형과 무기까지 모든 요소를 절차적으로 생성해 내려받는 아트 에셋 없이 우주에 떠 있는 그 맵을 되살렸습니다.

  • 게임
  • FPS
  • 멀티플레이
  • 웹

LLM 작업 체계

issue 공개 트래커 — NUCLEAR EARTH 의 버섯구름 이슈 하나를 막고 있는 이슈 넷과 그 이슈가 막고 있는 이슈 넷이 상태 배지와 함께 늘어선 연결 화면

issue

제 모든 프로젝트의 이슈와 설계 문서와 배포를 한 곳에 모으고 LLM 세션이 그 기록을 읽고 쓰며 일하는 개인용 이슈 트래커이자 의사결정 도구.

스무 개가 넘는 게임과 도구를 LLM 코딩 에이전트와 함께 동시에 만들면서 대화가 끝나면 사라지는 맥락을 붙잡아 두려고 만들었습니다. 세션은 트래커에서 인계 문서를 읽고 시작해 이슈를 접수하고 고친 뒤 체인지리스트 번호로 닫습니다. 그 위에 팔란티어의 수집과 온톨로지와 결정과 재계획의 과정을 얹어 LLM이 제안하고 제가 결정하는 기록을 쌓습니다. 소스와 서비스는 공개하지 않지만 공개로 전환한 NUCLEAR EARTH 의 요구 원문부터 설계 문서의 판 이력과 배포까지는 공개 트래커에서 그대로 볼 수 있습니다.

  • LLM
  • 에이전트
  • 의사결정
  • 온톨로지
  • MCP
  • 도구

직접 만들어 쓰는 도구

iiny짱 돌림판 — 점심 메뉴 돌림판이 버거에서 멈추고 캐릭터 iiny짱이 말풍선으로 결과를 알리는 화면

iiny짱 돌림판

질문과 선택지를 넣으면 캐릭터 iiny짱이 돌림판을 돌려 하나를 정해 주는 웹 앱.

점심 메뉴나 커피 살 사람처럼 일상에서 정할 일을 질문과 선택지만 적어 올립니다. Space 키로 돌리고 다시 눌러 멈추면 iiny짱이 결과를 말하고 기록이 서버에 남습니다. 선택지마다 비율을 달리 줄 수 있고 구경 주소를 받은 사람은 돌아가는 모습을 실시간으로 구경만 할 수 있습니다. 가입 없이 브라우저 쿠키로 내 돌림판을 구분하므로 쿠키를 지우면 그 기록에 다시 닿을 수 없습니다.

  • 도구
  • 웹
  • 돌림판
  • 실시간 공유
pytmux — 탭 세 개와 패널 세 개가 열려 있고 그중 한 탭이 원격 세션인 터미널 멀티플렉서 화면

pytmux

명령을 외우지 않고 마우스와 메뉴로 다루는 macOS·Linux·Windows 터미널 멀티플렉서.

패널과 탭을 클릭과 드래그만으로 나누고 옮기고 자주 쓰는 동작은 화면 메뉴에서 바로 고르실 수 있습니다. 클로드코드의 토큰 사용량과 작업 상태를 함께 보여 주고 전송 오류로 멈춘 작업은 자동으로 다시 시도합니다. Python TUI를 기준으로 쓰며 Rust GUI 클라이언트도 개발하고 있습니다.

  • 도구
  • 터미널
  • 데스크톱
p4v-tui — 왼쪽 트리와 오른쪽 체인지리스트 표·상세 패널로 구성된 메인 화면

p4v-tui

느리고 불안정한 네트워크에서도 버티는 키보드 우선 터미널 퍼포스 클라이언트.

p4v의 일상 작업인 동기화와 편집·서브밋·리버트·reconcile·히스토리를 키보드 우선으로 처리합니다. 긴 작업을 청크로 쪼개 진행 상황을 디스크에 저장하므로 동기화 중 종료해도 다음 실행에서 멈춘 지점부터 이어집니다.

  • 도구
  • 터미널
  • 퍼포스
p4-web — 디팟 트리 사이드바와 파일 목록이 보이는 디팟 브라우저 화면

p4-web

개인과 소규모 팀 크기에 맞춘 P4V·Swarm 대안 웹 퍼포스 클라이언트.

브라우저에서 디팟 탐색과 문법 강조 파일 뷰어, 히스토리·diff·블레임, 검색을 지원하고 사용자별 서버측 워크스페이스로 편집·서브밋까지 처리합니다. 데이터베이스도 빌드 스텝도 외부 서비스도 없이 p4 CLI를 감싸는 FastAPI 프로세스 하나로 돌아갑니다.

  • 도구
  • 웹
  • 퍼포스

글쓰기

블로그

게임 시스템·메커닉 분석과 홈랩 기록을 담은 개인 블로그 "Thinking Machine"

게임 개발자 관점에서 시스템·메커닉을 분석하고 홈랩 운영과 회고를 천천히 그리고 깊게 씁니다. 가챠 천장과 소탕권 같은 라이브 서비스 메커닉의 역사부터 확률 공개 규제와 산업 분석까지 다루고 백업 전략과 자동화 같은 개인 작업환경 회고도 매년 이어 갑니다. 게임에서 출발하지만 책과 제품 비평, 문화 비평으로도 넘어가고 하나의 메타포로 글 한 편을 통과시키는 편입니다. 2013년부터 천 편 가까이 쌓였고 요즘은 더 적게 그리고 더 깊게 씁니다.

최근 글
'과다 노출' 글 대표 이미지 — 민화풍 숲에서 고양이가 투명한 상자 속 태양을 꺼내는 장면
과다 노출

타이베리안 썬은 1999년 미국 PC 게임 판매 6위였고 한국 매장 차트에서도 두 달 연속 1위였습니다. 그러나 출시 일주일 만에 실망이라는 평가도 받았습니다. 3년에 걸친 홍보와 빠진 약속, 당시 판매 자료와 개발자 회고를 대조해 기대가 게임의 평가를 어떻게 바꿨는지 살펴봅니다.

'피로도' 글 대표 이미지 — 민화풍 소나무 아래 성묘가 거울 속 어린 고양이를 바라보는 장면
피로도

리니지 클래식은 최대 동시접속 18만 명을 기록했지만 프리 오픈 사흘 만에 수동 사냥의 피로도를 이유로 자동 플레이 도입을 검토했습니다. 옛 MMO에 돌아온 사람들이 견딜 수 있는 마찰과 그때의 관계가 어떻게 달라졌는지를 이용 시간 통계·복귀 경험담·기억 연구를 따라 살펴봅니다.

'묘비' 글 대표 이미지 — 먹물 그림풍 방 안에서 고양이가 붓으로 두루마리의 글자 위에 줄을 긋는 장면
묘비

두 달 전 이슈트래커를 소개하며 내세운 특징 세 가지가 하나도 빠짐없이 바뀌었습니다. 이 도구에는 지운 것을 지우지 않고 언제 왜 없앴는지를 함께 남기는 규칙이 있어서 그렇게 남은 흔적이 묘비와 닮았습니다. 체인지리스트 3천 4백여 개와 이슈·문서·결정 장부를 훑어 런타임 의존성 0이 깨진 일과 테스트가 모두 통과했는데 배포할 이미지에는 드라이버가 없었던 일까지 그 두 달을 정리합니다.

'침묵' 글 대표 이미지
침묵

2017년 싱가포르 해협에서 미 해군 구축함 존 S. 매케인이 유조선과 충돌했을 때 조타 장치는 멀쩡했고 조타 제어가 다른 콘솔로 넘어간 사실을 아무 소리도 알려 주지 않았을 뿐이었습니다. 터치스크린과 게임패드의 문제로 알려진 이 사고를 사고 보고서와 규격 원문으로 하나씩 확인하며 권한의 이동과 그 침묵을 지금의 상선·군함·민항기가 어떻게 다루는지까지 정리합니다.

'왕복' 글 대표 이미지
왕복

모델은 도구를 직접 실행하지 않고 부르는 요청을 글자로 내놓을 뿐이며 그 글자를 실행해 결과를 다시 글자로 돌려주는 것은 하네스라는 바깥 프로그램입니다. 종료 코드 0을 돌려주고도 디렉토리를 못 만들어 파일 전체가 사라진 2025년 윈도우 사고에서 출발해 정확 문자열 치환 편집이 실패하는 이유와 회복 루프까지 그 왕복의 안쪽을 제 러너의 실측 90회와 함께 정리합니다.

  • 블로그
  • 글

활동 타임라인

홈랩에서 24시간 돌아가는 공개 서비스들의 변경 기록을 날짜별로 모았습니다. 각 배지를 누르면 해당 서비스의 전체 변경 내역으로 이동합니다.

2026-10-18
  • Drive Seoul 터널과 지하차도 출입구를 갱문 면·입구 테·날개벽이 있는 갱문 모양으로 바꾸고, 제보 아홉 건을 묶어 수정 — 지상 선로 울타리와 신호등 기둥 충돌, NPC 높이·회전·나타남과 사라짐, 보도 높이, 버스 몸과 띠, 지형 톱니, 고속 주행 중 멈춤. 트레일러 봇도 막아 선 차를 비켜 감.
  • issue 익명 웹을 켜고 가시 목록이 이슈에 딸린 줄만 감추게 고치며 배포 뒤 익명 행 정책이 자동으로 다시 걸리게 하고 독립 보안 검토의 지적을 반영. LLM이 MCP 로그인을 스스로 하도록 안내하는 기기 승인 흐름, 로그인된 기기 이름 붙이기, 초안·표시 시간대·즐겨찾기의 계정 단위 저장을 추가. 계획 대안 비교에 가용시간·외부 대기·작업 추정 모델과 CLI·MCP 입구를 두고 효과 지표에 분모·단계·평가 주체를 병기. 로그인 관문의 POST가 브라우저에서 막히던 것 수정.
2026-10-17
  • Drive Seoul 갈아타기 안내에서 로드스터 이름이 빠져 '차'로 보이던 것을 고치고, 자동 화물 봇이 다시 고를 때 같은 일감을 받지 않게 N번째로 가까운 상차지·도크를 지정하는 옵션을 추가.
  • issue 내부 웹 로그인 도입 — 이메일 매직 링크, 계정, 프로젝트 할당, 접근 감사, 개인 MCP 토큰을 마련하고 관문을 켬. 수신함·검색·MCP 결과에 딸린 행과 자율 실행 맥락을 계정 권한으로 거르고, 설정에 계정·로그인과 기기별 로그아웃 화면을 추가. 로그인 안 한 방문자에게 공개 범위만 보여 주는 익명 웹(행 정책·가시 목록·동등성 탐침)을 마련하고 보안 검수 지적을 반영. SVG를 갤러리에 그리고 검색 순위를 층별로 매기며, 복구 훈련의 첫 무인 회차가 드러낸 결함을 수정.
2026-10-16
  • Drive Seoul 새 차량 로드스터 로켓을 추가 — 공개된 성능을 바탕으로 절차 생성한 차체와 휠 아치, 5m·15초 비행과 전용 조작, 서울의 고유 NPC·지도 표시·재배치를 구현. 분사 연기를 월드 공간으로 흐르는 수증기 입자와 노즐 코어로 바꾸고 차량 파일 주소를 내용 해시로 고정.
  • issue 하위 이슈를 여러 단계로 중첩할 수 있게 깊이 제한을 걷고 부모 변경의 조상 순환을 막았으며 검색 결과는 계층 순서로 정렬. 작은 첨부의 로컬 읽기 캐시로 다운로드 지연을 줄이고, 코멘트 검색의 순위 후보 상한은 라이브에서 더 느려 기본값을 끔. 자율 조사·실행의 근거(판·본문 해시·읽은 범위)를 보존하고 실행 표본을 모델·프롬프트별로 나눠 완료 근거와 재발을 연결, 이슈 화면의 바로 실행·현황파악 버튼 제거. 데이터 레지던시 채우기 마감 대조가 끝나지 않던 것 수정.
2026-10-15
  • Drive Seoul 택시·배달·버스·트레일러 미션 경로가 서울 경계를 넘지 않게 해 안전한 후보가 없으면 안내를 시작하지 않고, 택시 세울 칸을 도착 경로에 맞춤. 자동 운전 봇이 연석을 스칠 때 접선 방향 이동을 유지하고 중앙 버스 섬을 돌아가며, 자동 화물은 가까운 안전한 상차지와 도크를 고름.
  • issue 복제 구독을 다시 건 구간에서 사본에 오지 않던 변경을 행 단위로 찾아 바로잡는 수선 명령을 추가하고 큰 표의 버킷 대조와 하루 한 번의 결손 점검까지 넓힘. vault의 첨부를 외부 스토리지로 복제해 읽기가 실패하면 vault로 대체하는 경로와 검증 뒤 유예 기간을 두고 클라우드 쪽을 숨기는 단계를 더하고 설정에 첨부 이전·저장 사용량 화면을 마련. 이슈·문서 그림을 미리 받고 두 번 누르면 확대·이동하는 뷰어, 배포 중 읽기 전용 개방과 단계·남은 시간 띠를 추가.
2026-10-14
  • Drive Seoul 지하철 타기 반경을 넓히고 지하 모드에서 지상의 신호등·정류장·난간을 숨기며 갱구 앞 깎기가 지면 도로를 자르지 않게 해 세계 판을 갱신. 중앙 정류장 손님이 섬 승강장에서 타고 내리게 하고 버스 봇이 섬 정류장에 들어가게 함. 길안내가 서울 경계 밖으로 나가는 경로를 없애는 일을 시작.
  • issue 첨부를 외부 스토리지에 이중 보관하는 아카이브 계층(보관 정책, 읽기 경로, 통계)과 형식 허용 목록 밖의 파일도 불투명 파일로 받는 첨부 수용을 추가. 판정기가 사람에게 넘기던 읽을 글·보고서 결정·질문·방치 이슈를 스스로 결정해 실행하게 함. 수신함 항목을 카드 박스로 가르고 고르지 않은 결정을 결정 없이 치우는 기능, 모바일 넘침 전수 측정 도구, 30일 지난 통과 테스트 기록 삭제를 마련.
2026-10-13
  • iiny짱 돌림판 구경 주소와 새로 고침, 고정한 결과를 칸 가운데가 아니라 실제로 멈춘 자리에 세움 — 서버가 칸 안 위치를 추첨 결과와 고정, 구경 스냅숏에 함께 싣고 화면은 그 자리로 돌림판을 세움.
  • Drive Seoul 지하철 첫 판 — 14개 노선·618개 역과 선로·승강장·역명판(실제 노선색)을 세계에 넣고, 서버가 시간표·폐색·역 정차로 열차를 운행하며 타고 내려 운전하고 구간 제한시간·정차 운임이 있는 미션을 추가. 중앙버스전용차로의 청색 선·적색 포장 띠와 중앙 정류장 섬, 끊긴 플레이어를 120초 보관해 이어하기, 비탈 톱니·물가 둑 지형 결함 수정도 포함.
  • issue 큰 첨부를 클라우드 보관소에서 로컬 vault로 내리는 기능을 마련 — 위치 장부, 읽기 전용 서버, 웹의 vault 읽기 경로, 내리고 다시 올리는 잡이 모두 스위치 뒤에 기본 꺼짐으로 들어감. 복구 훈련에 복원본의 서비스 읽기·쓰기 측정과 보조 색인 따로 짓기를 더하고, 체인지리스트 참조 전수 수집이 메모리를 넘겨 서버가 10분마다 죽던 것과 공개 사이트 발행 실패 뒤 배포 사전 확인이 교착하던 것 수정. 본문 목록 안 제목과 첨부 영상 링크 재생 렌더링 보강.
2026-10-12
  • iiny짱 돌림판 Cloudflare 이전 — 앱 몸통을 런타임 중립 모듈로 떼어 Worker·Durable Object 하나(SQLite)·정적 자산 구성으로 옮기고 iiny.woojinkim.org 에서 서비스. 만든 사람 화면에 '다른 화면에서 돌림판이 바뀌었어요' 가 잘못 표시되던 것과 멈춘 결과가 잠시 뒤 다른 선택지로 바뀌던 결함을 수정(서버 추첨 응답을 1.2초만 기다리던 것을 같은 요청 ID 로 다시 묻도록 변경). iiny짱의 눈 깜빡임을 늘리고 안내 문구에 맞춰 입을 움직이고 돌림판을 안 잡은 손의 손목과 검지를 가볍게 움직임. 이후 구경 주소 첫 화면에 배경 그림이 맞춰지기 전에 잠깐 보이던 것과 긴 질문이 돌림판 가운데 원에서 잘리던 것을 수정하고, 보안 점검에서 나온 것을 반영해 구경 연결 수 상한과 읽기 속도 제한, 쿠키 이름 접두 강제, 허용된 호스트 이름만 받는 입구 검사를 더함.
  • Drive Seoul 깊은 지하차도의 들머리 진입로를 위 길 아래 여유가 지켜지게 낮추고 난간이 다른 층 차를 막지 않게 정리. 짐 실은 배달 봇이 신호를 지키고 앞 차 간격과 꺾임 속력을 억제하게 하고, 짐 손상 원인을 충돌·불·미끄러짐으로 진단하며 적재함 짐이 안에서만 흔들리게 함. 트레일러 상차지·도크를 서울 안에서 고르고 트레일러 HUD에 보수를 표시.
  • issue Linux 노드로 옮긴 뒤 드러난 DB 부하를 쿼리 통계로 찾아 줄임 — 유사 이슈 검색의 비용 상한, 테스트 통과 기록 처리 쿼리 약 1만 건을 1회로, 계획 시계 쿼리 10.2초에서 2.5초, 체인지리스트 참조 수집의 증분화, 무결성 전수 검사와 논리 덤프를 주 1회로, 프로젝트 상세의 전역 집계 제거, 활동 화면의 줄 먼저·건수 나중 표시. 문서 쓰기가 색인 대기 병합에서 30초에 끊기던 것과 판 번호만 오른 승격이 노드 코드를 교체하지 못해 503이 풀리지 않던 것 수정, 무거운 배경 잡을 한 번에 하나씩 실행, 브라우저 탐색 지연 집계 수집.

이전 활동 전체 보기 →

  1. 이 표현은 예전부터 써 왔고 최영근의 '게임 기획자의 일'에 실린 인터뷰에서도 언급했습니다. 그 인터뷰에서는 "걸어다니는 설계도" 외에 "곰인형"으로도 소개됐습니다. ↩