NetHack 3.6.6 Windows Graphical Interface 버전을 기반으로 하는 한국어 번역 개인 프로젝트입니다.
일본어 번역판인 JNetHack의 코드 구조를 일부 참고하여,
한국어의 어순과 문법에 맞게 엔진 단에서부터 텍스트 출력 구조를 재설계하고 있습니다.
Disclaimer : 이 프로젝트는 넷핵을 사랑하는 개인 팬에 의해 진행되는 비공식 번역 프로젝트이며,
공식 NetHack DevTeam 및 JNetHack 개발팀과 어떠한 공식적인 관련도 없습니다.
(This is an unofficial fan translation project, not affiliated with the NetHack DevTeam or the JNetHack team.)
단순히 외부 텍스트 파일만 번역하는 것이 아닌,
C언어 소스 코드를 직접 수정하여 한국어에 완벽하게 호환되는 출력 시스템을 구축하고 있습니다.
영어의 SVO(주어-동사-목적어) 어순으로 하드코딩된 넷핵의 출력 매크로와 pline 함수들을
SOV(주어-목적어-동사) 어순으로 개조합니다.
원본 코드를 보존하기 위해 주석 및 전처리기 지시자를 사용합니다.
은/는, 이/가, 을/를 등 앞 단어의 종성(받침) 유무에 따라 조사가 동적으로 변환되도록
append_josa 등의 커스텀 함수를 자체 구현하여 자연스러운 한국어 문장을 생성합니다.
#if 0 /*KR: 원본*/
pline("%s into the moat.", E_phrase(etmp, "fall"));
#else /*KR: KRNethack 맞춤 번역*/
pline("%s 해자에 빠졌다.", append_josa(E_phrase(etmp, ""), "는"));
#endif
게임의 세이브 파일이나 내부 로직은 영어를 기반으로 작동합니다.
엔진이 몬스터나 아이템을 생성하고 검색할 때는 원본 영어를 그대로 사용하게 두고,
플레이어의 화면에 출력되기 직전에만 get_kr_name() 함수가 개입하여 한글로 번역해 줍니다.
if (!strcmp(en_name, "cockatrice"))
return "코카트리스";
본 로드맵은 초기 기획에서 실제 개발 진척도에 맞춰 수정 업데이트되었습니다. (현재 v0.2 빌드 진행 및 배포 중)
- C언어 엔진 단의 조사 처리 함수 및 한글 명칭 반환 시스템(korean.c) 구축.
- 게임 내 한글 직접 입력 지원 및 출력 인코딩(CP949) 문제 해결.
- 게임 내 상호작용, 전투 로그, 마법, 특수 맵 생성, 명령어 등
핵심 엔진 로직에서 출력되는 하드코딩 텍스트 및 한국어 어순 구조화 완료.
- 백과사전, 소문, 아티팩트 설명 등 대다수의 정적 텍스트 데이터 번역 완료.
- 남은 작업: 거대 텍스트(data.base, tribute) 번역, 직업별 퀘스트 대사(quest.txt) 검수 및 다듬기,
던전 맵 스크립트(.des) 내 특수 메시지 번역. data.base, tribute 번역 및 quest.txt 번역 다듬기.
- Windows GUI에 종속적인 기본 메뉴, 팝업창, 인벤토리 UI 번역 적용 완료.
- 남은 작업: 게임 플레이 중 드물게 나타나는 자잘한 시스템 에러 메시지(예: 파일 저장 실패 등)나
미처 발견하지 못한 UI 텍스트 추적 및 예외 처리.
- 정기적인 Windows 실행 파일(.exe) 빌드 및 마이너 버전 배포 (현재 v0.2 ~ v0.3 단계).
- 실제 플레이 테스트를 통한 문맥상 어색한 오역, 미번역 텍스트, 조사 충돌 버그 등 제보 접수 및 지속적인 패치 유지보수.
아직 번역이 진행 중이므로 어색한 문장이나 오역, 혹은 게임 플레이 중 튕김 현상(Crash)이 발생할 수 있습니다.
문제나 개선 사항을 발견하시면 언제든 버그 신고 구글 폼 또는 깃허브 Issues에 제보해 주세요!
버그 신고 (구글 폼)
NetHack General Public License (NGPL) 을 따릅니다.
자세한 사항은 소스 코드 내의 dat/license 파일을 참고해 주십시오.
영어 원문 링크
한글 번역 링크
README.txt 재작성에는 HanNetHack 의 README를 많이 참고했습니다. 이 자리를 빌어 감사를 표합니다.
wand = 지팡이 spellbook = 주문서 scroll = 두루마리 potion = 물약
메모장: 파일 ➔ 다른 이름으로 저장 ➔ 우측 하단 인코딩을 ANSI로 선택 ➔ 덮어쓰기
Visual Studio: 파일 ➔ 다른 이름으로 저장 ➔ 저장 버튼 옆 화살표(▼) 클릭 ➔ 인코딩하여 저장 ➔ 한국어 - 코드 페이지 949 선택 ➔ 덮어쓰기
빌드하는 법: Nethack.sln (win/win32/vs2017) 눌러서 프로젝트 로드하고 하면 됨
위자드 모드 하는 법 : 바로가기 생성 - 속성 - 대상 - 끝에 -D -u wizard 추가