본문으로 건너뛰기
피드

넷핵 5.0.0 공개, C99 전환과 크로스 컴파일 지원까지 들어갔다

open-source 약 5분

오픈소스 던전 탐험 게임 넷핵(NetHack)이 5.0.0 버전을 공개했다. 게임 개선과 버그 수정뿐 아니라 C99 준수, 크로스 컴파일 장벽 제거, yacc·lex 기반 도구를 Lua 기반 처리로 바꾸는 등 빌드와 아키텍처 쪽 변화가 꽤 크다.

  • 1

    넷핵 5.0.0이 2026년 5월 2일 공개

  • 2

    소스 코드가 C99 표준을 준수하도록 정리

  • 3

    서로 다른 플랫폼을 대상으로 빌드하는 크로스 컴파일 지원 강화

  • 4

    레벨·던전·퀘스트 텍스트 처리 일부가 yacc·lex·makedefs에서 Lua 기반 처리로 이동

  • 5

    기존 세이브 파일과 bones 파일은 5.0.0에서 호환되지 않음

  • 넷핵(NetHack) 개발팀이 2026년 5월 2일 넷핵 5.0.0을 공개했음

    • 넷핵은 로그(Rogue)와 핵(Hack)의 먼 후손이자, 넷핵 3.6 계열의 직접 후속임
    • 5.0.0은 .0 릴리스라 버그가 있을 수 있고, 개발팀은 제안·깃허브 풀 리퀘스트·버그 리포트를 받겠다고 밝힘
  • 이번 릴리스는 게임 개선과 버그 수정만 있는 게 아니라, 코드베이스와 빌드 구조를 꽤 손본 버전임

    • 소스 코드가 C99 표준을 준수하도록 정리됐음
    • 오래된 C 프로젝트에서 표준 준수는 단순 취향 문제가 아니라, 여러 컴파일러와 플랫폼에서 같은 방식으로 빌드되게 만드는 기반임
  • 크로스 컴파일(cross-compiling) 쪽 장벽도 낮췄음

    • 한 플랫폼과 운영체제에서 넷핵을 빌드한 뒤, 다른 플랫폼이나 운영체제에서 실행할 수 있게 만드는 작업을 개선했다는 뜻임
    • 자세한 내용은 최상위 폴더의 ‘Cross-compiling’ 파일에 정리돼 있다고 함

⚠️주의

> 기존 저장 파일과 bones 파일은 넷핵 5.0.0에서 동작하지 않음. 오래 이어오던 플레이 데이터가 있다면 업그레이드 전에 이 호환성 변경을 먼저 봐야 함.

  • 빌드 타임 도구 의존성도 줄이는 방향으로 바뀜

    • 기존에는 레벨 컴파일러와 던전 컴파일러가 yacc·lex 기반이었음
    • 퀘스트 텍스트 파일 처리는 넷핵의 makedefs 유틸리티가 맡고 있었음
    • 5.0에서는 이 부분들이 게임 실행 중 로드·처리되는 Lua 텍스트 대안으로 교체됐음
  • 변경 규모는 생각보다 큼

    • 게임 소스 안의 doc/fixes5-0-0.txt 파일에 3100개가 넘는 수정과 변경 목록이 들어 있다고 함
    • 이 문서는 개발팀 내부 용도로 작성된 내용이라 ‘있는 그대로’ 제공되며, 새 기능 섹션에는 스포일러로 볼 수 있는 항목도 있을 수 있다고 안내함
  • 바이너리 검증과 경로 확인용 안내도 포함됨

    • nethack.org에서 받은 윈도우 바이너리는 certUtil로 SHA256 체크섬을 확인할 수 있음
    • 대부분의 플랫폼에서는 nethack --showpaths 명령으로 넷핵이 사용하는 여러 파일 위치를 확인할 수 있음
  • 넷핵답게 릴리스 노트의 마무리는 피드백 요청임

    • 버그는 문제 보고 양식으로 제출해 달라고 안내함
    • 보고 전에 알려진 버그 목록을 먼저 확인하라고도 덧붙임

기술 맥락

  • 넷핵 5.0.0에서 개발자 입장으로 볼 만한 건 게임 콘텐츠보다 빌드와 데이터 처리 방식이에요. 수십 년 된 C 프로젝트는 새 기능을 넣는 것보다, 다양한 플랫폼에서 계속 빌드되게 유지하는 일이 더 어려울 때가 많거든요.

  • C99 준수는 코드베이스의 기준선을 정리하는 선택이에요. 너무 오래된 C 관습에 묶이면 최신 컴파일러나 플랫폼 대응이 피곤해지고, 반대로 너무 최신 표준으로 가면 오래된 환경 지원이 깨질 수 있어요. C99는 그 사이에서 꽤 현실적인 타협점이에요.

  • 크로스 컴파일 개선도 이식성 때문에 중요해요. 게임을 만든 환경과 실행할 환경이 다를 수 있으니, 빌드 과정이 특정 운영체제나 로컬 도구에 강하게 묶이면 배포가 번거로워지거든요.

  • yacc·lex와 makedefs 처리 일부를 Lua 텍스트로 옮긴 것도 같은 흐름이에요. 빌드 시점에 필요한 전통적인 유닉스 도구 의존을 줄이고, 게임 실행 중 데이터를 로드해 처리하는 쪽으로 가면 플랫폼별 빌드 차이를 줄이기 쉬워져요.

오래된 C 코드베이스가 새 버전을 낼 때 진짜 흥미로운 건 기능보다 빌드 시스템과 데이터 처리 방식의 정리임. 넷핵 5.0.0은 게임 릴리스이면서 동시에 장수 오픈소스 프로젝트가 이식성과 유지보수성을 어떻게 챙기는지 보여주는 사례임.

댓글

댓글

댓글을 불러오는 중...

open-source

AMD, 리눅스 오픈소스 드라이버에 HDMI 2.1 핵심 지원 넣기 시작

AMD가 리눅스용 오픈소스 그래픽 드라이버에 HDMI 2.1의 고정 속도 링크 지원 패치를 공개했다. 아직 가변 주사율과 디스플레이 스트림 압축은 빠졌지만, HDMI 포럼의 제약 때문에 오픈소스 구현이 막혀 있던 영역에 공식 코드가 나온 점이 의미 있다.

open-source

한컴, AI로 PDF 접근성 태그 넣는 기술 오픈소스로 공개

한컴이 PDF 문서 구조를 AI로 분석해 접근성 태그를 자동 삽입하는 기능을 오픈소스로 공개했다. 미국 ADA 타이틀 II, 유럽 접근성법, 국내 장애인차별금지법 등 규제 대응 수요를 겨냥한 오픈 코어 전략이다.

open-source

공무원이 퇴근 후 만든 AI 도구가 던진 질문: 정부 데이터는 왜 아직 AI가 못 읽나

광진구청 공무원이 HWP 문서 변환 도구와 법령 검색용 MCP 도구를 오픈소스로 공개하면서 공공기관의 AI 활용 문제가 다시 드러났다. 핵심은 개인의 미담이 아니라, 정부 데이터가 여전히 사람 눈으로 읽는 방식에 맞춰져 있고 AI가 호출하기 좋은 구조가 아니라는 점이다.

open-source

월러스, AI 에이전트용 메모리 SDK ‘멤월’ 공개

수이 기반 스토리지 프로토콜 월러스가 AI 에이전트용 메모리 레이어이자 SDK인 멤월을 출시했다. 핵심은 에이전트 메모리를 특정 모델이나 공급업체에 묶지 않고, 검증 가능하고 이동 가능한 데이터 레이어로 만들겠다는 것이다.

open-source

한컴, PDF 접근성 규제 대응용 오픈소스 솔루션 공개

한컴이 미국·유럽에서 강화되는 PDF 접근성 규제에 대응할 수 있는 오픈소스 솔루션을 공개했어. 접근성 태그가 없는 PDF 때문에 스크린 리더가 문서 구조를 못 읽는 문제를 겨냥했고, 올 2분기에는 PDF/UA 표준 수준의 상용 솔루션도 내놓을 예정이야.