피드로 돌아가기
GeekNewsBackend
원문 읽기
AI로 35년전 고전 게임 한글화하기
개발자가 AI(Claude Opus/Sonnet)와 리버스 엔지니어링을 결합해 35년전 게임의 미지원 한글화를 ScummVM Kyra 엔진에 구현
AI 요약
Context
Westwood의 Kyra 엔진으로 제작된 '키란디아의 전설 2편(운명의 손)'은 독자적인 바이너리 포멧(PAK, EMC, DLG, ENG)과 1바이트 기준 폰트 렌더링으로 인해 팬 한글화가 불가능했다. 기존 SCUMM, SCI 엔진의 게임들과 달리 한글화 사례가 전무했다.
Technical Solution
- 게임 포멧 리버스 엔지니어링: Westwood의 PAK, EMC, DLG, ENG 파일 구조를 분석해 Python 도구로 추출 도구 개발
- 번역 자동화: 추출된 스크립트를 Claude Opus/Sonnet LLM에 입력하여 게임 톤을 유지하도록 번역 수행
- 언어별 파일 생성: 번역된 EMC → KMC, DLG → DLK, ENG → KOR로 변환하여 OTHER.PAK에 저장
- ScummVM 엔진 수정: 팬 번역 모드 시 OTHER.PAK에서 번역 파일을 로드하도록 kyra_hof.cpp 수정
- 한글 폰트 시스템 구현: 기존 중국어 팬 번역용 MultiSubsetFont 시스템을 확장해 EUC-KR 바이트 쌍을 글리프 인덱스로 변환하는 로직 추가
- 텍스트 렌더링 수정: 2바이트 문자 중간에 개행이 삽입되는 preprocessString() 함수 버그 수정
- 언어 감지 로직 변경: 게임 종료 시 한글 저장으로 인한 감지 오류를 해결하기 위해 언어는 영어로 감지하되 KOREAN.FNT 파일 존재 시 팬 언어로 표시
- IFF 파싱 호환성 처리: Westwood 방식의 IFF 청크 크기 계산(form_size = file_size)을 반영하여 Chunk overread 에러 해결
- 번역 의존성 제거: KMC 파일이 없을 경우 EMC 파일을 사용하도록 폴백 로직 구현
- 빌드 자동화:
python tools/build_korean.py한 줄로 전체 빌드 후 .zip 파일 생성 및 원본 게임에 덮어쓰기 가능하도록 구성
Key Takeaway
레거시 게임의 한글화처럼 구조가 명확하지 않은 문제에서 AI를 "프로젝트 리더" 역할로 활용하면, 직접 수행하기 어려운 초기 방향 결정과 대량의 코드 생성을 효율화할 수 있다. 원본 포멧 리버스 엔지니어링 → AI 기반 번역 → 엔진 수정 → 버그 수정의 전체 사이클에서 AI와 개발자의 역할 분담이 프로젝트 완성을 가능하게 했다.
실천 포인트
레거시 게임 한글화나 폐기된 엔진 지원 프로젝트를 진행할 때, 구조 분석과 대량 코드 생성 단계에서 Claude Opus/Sonnet같은 고성능 LLM을 활용하고 개발자는 리버스 엔지니어링 방향 설정, 통합 테스트, 엔진 수정 같은 고수준 의사결정에 집중하면, Python과 C++ 직접 작성을 최소화하면서도 복합한 프로젝트를 완성할 수 있다.