받아가기
에드먼드 맥밀런(아이작, 슈퍼 미트 보이 만든 그 사람)의 2015년 소품 게임 Fingered 한글패치입니다. 증인들의 진술을 듣고 용의자 줄에서 범인을 골라 전기의자로 보내는 게임인데, 증인들이 하나같이 제정신이 아니라 진술을 조합해서 추리해야 합니다. 성인용 블랙 코미디라 인종/성/신체에 대한 험한 농담이 그대로 나오고, 번역도 원문 수위와 톤을 그대로 따랐습니다.
적용 방법
- Steam 라이브러리 → Fingered → 관리 → 로컬 파일 보기
- 다운받은
한글패치폴더를 게임 폴더 안에 통째로 넣기- 게임을 끈 상태에서
1_한글패치_적용.bat더블클릭 → “[완료]” 뜨면 끝- 되돌리려면
2_원본복구.bat, 또는 Steam에서 게임 파일 무결성 검사Steam이 게임을 업데이트하거나 무결성 검사를 돌리면 원본으로 돌아가니, 그때는 1번을 다시 실행하면 됩니다.
알아두실 점
- AI 초벌 번역이고 검수는 아직 제대로 안 했습니다. 게임 진행에 지장은 없지만 어색한 문장이 있을 수 있습니다. 발견하시면 댓글로 알려주세요. 고쳐서 갱신하겠습니다.
- 이 패치에는 게임 원본 파일이 들어있지 않습니다. 정품으로 가진 게임 파일을 스크립트가 현장에서 고치는 방식이라 게임은 직접 구매하셔야 합니다 (Steam 상점 페이지, 세일 때 2천 원 정도).
- 비상업 팬 번역이며, 원작자(Edmund McMillen / James Id)의 요청이 있으면 즉시 내리겠습니다.
여기부터는 만든 과정입니다. 패치만 필요하신 분은 위에서 받아가시면 됩니다.
시작
심심해서 스팀 라이브러리를 둘러보다가, 산 지 10년도 넘은 것 같은 Fingered를 드디어 켜보려고 했는데 한글이 없었습니다. 아마 바인딩 오브 아이작과 묶어서 산 게임일 테니 없을 거라고 생각은 했습니다. 그런데 켜 보니 증인들 진술을 읽고 범인을 골라야 하는 게임이라, 텍스트를 제대로 이해하지 못하면 그냥 못 하는 게임이었습니다. 그래서 하지 말까 하다가, 요즘 AI로 이것저것 시켜보고 있으니 한글패치도 시켜보자 싶었습니다. 되면 좋고 안 되면 재료라도 건지자는 마음이었습니다.
결론부터 말하면 됐고, 3시간 남짓 걸려서 배포용 패처까지 뽑았습니다. 이번에도 도구는 Claude Code와 Cowork였습니다.
일단 게임이 뭘로 만들어졌는지부터
한글화 가능 여부는 결국 엔진이 결정합니다. 유니티면 번들을 까야 하고, 언리얼이면 pak을 뜯어야 하고, 플래시면 SWF 디컴파일입니다. 바인딩 오브 아이작의 옛 버전을 생각하고 플래시일 줄 알았는데, SteamDB를 찍어보니 NW.js였습니다. 크로미움 + Node.js, 즉 게임이 사실상 웹앱입니다.
이게 무슨 뜻이냐면, 게임 폴더를 뒤져보면 HTML/JS/PNG가 그대로 있다는 겁니다. 실제로 까봤더니 nw.exe 뒤에 zip이 통째로 붙어있고, 그 안의 gameCode.js 하나에 게임 로직이 다 들어있었습니다. 텍스트도 전부 이 파일 안의 데이터. 메모장으로 열어볼 수 있는 수준입니다. 이 순간 “아, 이건 된다”는 확신이 들었습니다.
폰트는 fonts.css에 @font-face 하나(Team Meat 손글씨 폰트, woff). 당연히 한글 글리프는 없습니다. 그러니까 할 일은 딱 두 개였습니다. 텍스트 바꾸기, 한글 폰트 하나 끼워넣기.
텍스트 분량 파악
시켜보니 예상보다 많았습니다.
- 증인 21명 × 형용사 33개 = 약 700개 표현. 증인마다 말투가 다 다르고 굉장히 특이합니다. 할머니 말투, 인종차별하는 아저씨, 기침하는 노숙자, 말끝 흐리는 소심한 애, 단어를 거꾸로 말하는 외계인, 피그라틴 쓰는 애, 짖는 개.
- 신문 헤드라인 + 사형수 마지막 말 + 엔딩 크레딧 증인 후일담, 약 300개
- 경찰 데이터베이스 화면에서 랜덤 조합되는 단어들(별명 440개, 혐의 동사 62 + 대상 107, 형량, 신체 특징 135개), 약 800개
- 용의자 이름 350개, 별명 75개
- 버튼/UI 몇 개
합치면 2,400문장쯤입니다. 이걸 손으로 했으면 안 했을 겁니다. AI라서 한 거죠.
번역에서 재미있었던 부분
문장 조립을 한국어 어순으로
영어는 "I'm positive he looked " + "very " + "chunky." 이런 식으로 문장을 이어붙입니다. 한국어는 이 순서가 안 됩니다. 서술어가 문장 끝에 와야 하고, 부정문(“did not look”)은 어미가 바뀝니다. 그래서 문장 조립 함수를 통째로 갈아엎었습니다. 틀은 "확실히 그 남자는 {X} 보였어요.", "분명히 그 남자는 {X} 보이지 않았어요." 같은 템플릿 4개로 두고, 형용사는 전부 ~하게, ~처럼 같은 부사구 형태로 번역했습니다. 증언 색깔 강조(확신 = 초록, 불확실 = 빨강, “very” = 파랑)도 한국어 단어에 맞춰 다시 걸었습니다.

증인별 말투
증인 특수 말투는 이렇게 처리했습니다.
- 피그라틴 쓰는 애 → 도깨비말. “뚱뚱하게” → “뚜붕뚜붕하바게베”. 음절마다 ㅂ을 넣는 변환기를 짜서 실행 시점에 돌립니다.
- 거꾸로 말하는 외계인 → 음절 뒤집기. “마르게” → “게르마”.
- 말끝 흐리는 애 → 템플릿을 따로 줘서 “그 남자는 그렇게 보였어요… 귀엽…” 식으로 끝을 흐리게.
- 기침하는 애 →
*콜록*유지.
혐의 문장도 영어는 “Murdering a Nun”처럼 동사+목적어인데 한국어는 “수녀를 살해함”이라 뒤집어야 하고, 을/를, 와/과, 으로/로 조사가 앞 단어 받침에 따라 바뀝니다. 이것도 조사 자동 처리 함수 하나를 만들어서 붙였습니다. 사소한데 이런 게 없으면 “사탄를 살해함” 같은 게 나옵니다.
폰트 삽질
처음엔 원본 폰트 느낌을 살리려고 독도체(마커 손글씨)를 넣었습니다. 게임을 켜보니 글자가 너무 얇고 작아서 읽기 힘들었습니다. 원본 Team Meat 폰트가 굵고 큼직한 만화 글씨체라, 그 옆에 놓으면 독도체가 힘이 없습니다.

후보 10종을 같은 문장으로 렌더링해서 비교했고 주아체(BM Jua)로 갈아탔습니다. 둥글고 굵어서 나름 원본 톤과 잘 맞고 가독성이 올라갔습니다. SIL OFL 라이선스 무료 폰트라 재배포도 문제없습니다. 거기에 전체 글자 크기를 10% 키우고, 증언 문장만 30 → 33px로 조정했습니다. 캔버스 텍스트라 CSS size-adjust 같은 건 못 쓰고(이 게임의 크로미움이 2015년 버전입니다) PIXI.Text 생성자를 감싸서 폰트 크기를 곱해주는 식으로 했습니다.


그림 속 영어
텍스트를 다 바꿨는데 화면엔 여전히 영어가 많았습니다. “NOTE TO SELF” 쪽지, 힌트 메모 15장, “ARE YOU SURE?”, “RELEASE”, “FINGER!”, 데이터베이스 라벨들. 전부 PNG에 박힌 글자입니다.
여기서 방식을 좀 고민했습니다. PNG를 직접 편집해서 배포하면 제일 쉬운데, 그러면 원작 그림을 제가 재배포하는 게 됩니다. 그래서 게임이 텍스처를 메모리에 올리는 순간을 가로채서 캔버스에 한글을 덧그리는 방식으로 갔습니다. 이미지 파일은 건드리지 않고, 실행할 때마다 즉석에서 바뀝니다.
덮어쓰기에서 지우기로
처음엔 영어 글자 위에 종이색 네모를 덮고 그 위에 한글을 썼는데, 쪽지가 살짝 기울어져 있어서 네모 모서리가 검은 외곽선을 침범하거나 글자 끝이 삐져나왔습니다. 보기 지저분했습니다. 그래서 픽셀 단위로 접근을 바꿨습니다. 종이색과 다른 픽셀을 연결된 덩어리로 묶고, 작은 덩어리(글자)만 종이색으로 채우고 큰 덩어리(외곽선, 밑줄, 구멍)는 남깁니다. 이러면 외곽선은 원본 그대로고 글자만 사라집니다. 이 방식이 훨씬 깔끔했습니다.

힌트 메모 15장이랑 초록 포스트잇 4장(게임 규칙 설명)은 사실 이 게임의 튜토리얼이라, 이걸 번역하는 게 제일 가치 있었습니다. 포스트잇은 “확실히”, “아마”, “시간”, “아주” 같은 키워드에 증언 색깔까지 똑같이 맞췄습니다.
배포 형태 고민
블로그에 올릴 생각이었는데, 수정된 gameCode.js나 nw.exe를 그대로 올리면 안 됩니다. 그 안에 원작 코드 50만 자가 통째로 들어있습니다. 번역 배포가 아니라 게임 배포가 됩니다.
그래서 패처 형태로 만들었습니다. 사용자가 가진 정품 게임의 nw.exe를 현장에서 고치는 스크립트입니다. 패치 zip 안에 든 건 번역 데이터 JS 파일들, 주아체 폰트와 라이선스, 게임 코드에 적용할 문자열 치환 규칙(JSON), 그리고 PowerShell 스크립트를 부르는 bat 두 개. 원본 코드는 한 바이트도 없습니다. 옛날 아이작 팬 한글패치도 이 방식이었고, xdelta 패치 같은 게 다 이 원리입니다. 멀티뷰 크롬 확장 때처럼 결과물을 어떻게 내놓을지가 만드는 것만큼 고민이었습니다.
패처 동작은 이렇습니다. nw.exe 뒤에 붙은 zip을 분리해서, gameCode.js에 치환 규칙 23개를 적용하고(각 규칙이 예상 횟수만큼 딱 매칭되는지 검사해서 게임 버전이 다르면 중단), index.html에 한글 스크립트 태그를 끼워넣고, 새 파일들을 추가하고, 다시 exe 뒤에 붙입니다. 원본은 nw.exe.orig_backup으로 백업하고, 복구 bat도 같이 넣었습니다. Windows 기본 PowerShell만 쓰니까 따로 설치할 건 없습니다.
삽질 목록
기록용으로 남겨둡니다.

- 글자 크기를 키우려고 PIXI 엔진 속성을 건드렸다가 non-configurable 에러가 나서, 그 뒤에 실행돼야 할 데이터 덮어쓰기가 통째로 스킵됐습니다. 문장 틀은 한글인데 속 단어랑 신문은 영어로 나오는 반쯤 번역된 상태였습니다(위 스크린샷). 생성자 래핑으로 바꾸고 순서를 조정해서 해결했습니다.
- 그림 덧그리기가 처음엔 하나도 안 됐습니다. 로드 완료 시점에 텍스처 캐시를 훑었는데, 스프라이트 아틀라스는 캐시에 안 들어가고 단일 이미지는 나중에 필요할 때 로드되더군요. 텍스처 update() 자체를 가로채는 방식으로 바꿔서 해결했습니다.
- “범인 처형 완료!” 신문 제목이 아래로 처졌습니다. 원본은 왼쪽 끝 기준으로 살짝 기울여놓은 텍스트인데 중앙 정렬로 바꾸면서 회전축이 바뀐 것. y좌표를 보정했습니다.
- 헤드리스 크롬으로 게임을 띄워서 텍스처 결과물을 뽑아보는 테스트 환경을 중간에 만들었는데, 이게 없었으면 2번 삽질은 훨씬 오래 걸렸을 겁니다. Steam 없이 게임 코드만 돌리려면
require랑 greenworks(Steam API)만 가짜로 채워주면 됩니다.