14P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 1980년대 텍스트 어드벤처 게임 Zork I·II·III의 소스 코드가 MIT 라이선스로 공개되어 누구나 학습·연구·실행 가능
  • Microsoft OSPO, Team Xbox, Activision이 협력해 역사적 코드 보존과 교육 활용을 목표로 함
  • 공개된 저장소에는 소스 코드, 빌드 노트, 주석, 관련 문서가 포함되며, 상표권·상업용 자산은 제외됨
  • 사용자는 ZILF 컴파일러Z-Machine 인터프리터를 통해 로컬 환경에서 직접 게임 실행 가능
  • 이번 공개는 게임 보존과 오픈소스 문화 확산을 위한 상징적 조치로, 세대를 넘어 지속되는 창의성과 기술의 결합을 보여줌

Zork 오픈소스 공개 개요

  • Microsoft의 Open Source Programs Office(OSPO) , Team Xbox, Activision이 협력해 Zork I, II, III를 MIT 라이선스로 공개
    • 목적은 학생·교사·개발자가 코드를 학습하고 연구하며 직접 플레이할 수 있도록 하는 것
    • GitHub의 기존 historical source 저장소에 공식 MIT LICENSE를 추가하는 형태로 기여
  • 이번 공개는 게임 역사 보존교육적 가치 확산을 중점으로 함

Zork의 기술적 배경

  • Zork는 그래픽이나 사운드 없이 텍스트만으로 세계를 구현한 게임으로, 당시 게임 설계 방식에 큰 변화를 가져옴
  • 핵심 기술은 Z-Machine이라 불리는 가상머신 사양으로, 동일한 스토리 파일을 여러 플랫폼에서 실행 가능하게 함
    • 이 구조 덕분에 Zork는 Apple II, IBM PC 등 다양한 플랫폼에서 구동된 최초의 크로스플랫폼 게임 중 하나로 평가됨
  • 원래 메인프레임 버전이 가정용 컴퓨터에 비해 너무 커서, Infocom은 이를 세 개의 독립된 게임(Zork I~III) 으로 분할함

코드 보존과 저장소 구성

  • Microsoft는 Internet Archive의 Jason Scott과 협력해 기존 Zork 저장소에 공식 오픈소스 라이선스를 추가
  • 각 저장소에는 다음이 포함됨
    • Zork I·II·III의 소스 코드
    • 빌드 노트, 주석, 역사적 관련 문서
    • MIT LICENSE.txt와 저장소 메타데이터
  • 공개 범위는 코드에 한정되며, 상표권·상업용 패키지·마케팅 자료는 포함되지 않음

Zork 실행 방법

  • Zork는 여전히 Good Old Games(GOG)The Zork Anthology를 통해 상업적으로 이용 가능
  • 직접 실행하려면 ZILF(Tara McGrew 제작)로 ZIL 파일을 Z3 실행 파일로 컴파일 후, Z-Machine 인터프리터에서 실행 가능
    • 예시 명령어:
      • "%ZILF_PATH%\zilf.exe" zork1.zil
      • "%ZILF_PATH%\zapf.exe" zork1.zap zork1-ignite.z3
    • 실행 도구 예시: Windows Frotz, Fic (Python 기반 CLI 구현)
  • 다양한 플랫폼용 Z-Machine 런너가 존재해 접근성이 높음

향후 계획과 의미

  • Zork의 기존 역사적 저장소를 공식 소스의 기준으로 유지하며, MIT 라이선스 적용 후 기여와 개선 제안을 환영
  • 목표는 현대화가 아니라 탐구와 교육의 장으로서의 보존
  • 이번 공개는 Infocom 개발자, Internet Archive, Microsoft·Xbox·Activision 팀의 협력에 대한 감사의 의미를 담음
  • Zork는 상상력과 엔지니어링의 결합이 세대를 넘어 지속될 수 있음을 상징하는 사례로 평가됨
Hacker News 의견
  • 내가 14살쯤이던 1980년대 초, 친구와 함께 Zork를 하다가 우리도 직접 게임을 만들어보자고 생각했음
    그래서 Infocom에 편지를 보내 ZIL과 Z-machine을 써서 새 게임을 만들게 해달라고 제안했는데, 놀랍게도 정중한 거절 답장을 받았음
    지금 생각하면 BASIC과 어셈블리만 알던 우리로선 ZIL로 게임을 만드는 건 무리였을 것 같음
    그래도 어린 우리를 존중해준 회사의 태도가 인상 깊었음. 그 편지를 아직도 가지고 있었으면 좋겠음

    • 나도 거의 똑같은 경험을 했음. 비슷한 나이에 Apple II BASIC과 6502로 코딩을 배우며 Infocom에 편지를 보냈는데, 영국에 살던 우리에게도 답장이 왔었음
      아쉽게도 그 편지는 이사 다니며 잃어버렸거나, 아니면 grue에게 먹혔을지도 모름
    • 나도 80년대에 텍스트 어드벤처 게임에 빠져 있었음. BASIC으로 간단한 게임을 만들며 세계 상태를 표현하는 데이터 구조 같은 걸 배웠음
      하지만 명확한 게임 디자인이 없어서 점점 흥미를 잃었음. 퍼즐들도 논리보다는 ‘영감의 번쩍임’이 필요해서 금방 포기하곤 했음
    • 이 얘기 들으니 추억이 밀려옴. 나도 BBS 세계에 빠져서 MUD용 셸을 만들며 프로그래밍을 본격적으로 시작했음
      친구와 함께 자동 맵핑이나 간단한 그래픽 기능을 추가하며 놀았는데, 이런 작은 게임들이 호기심을 키우는 데 정말 큰 도움이 되었음
  • 이 소식에 소름이 돋을 정도로 감동받았음. Zork와 Infocom의 게임들은 내게 게임 세계의 입문이었고, Commodore 64에서 처음 즐겼던 추억임
    이 게임들을 만든 모든 사람들에게 감사의 마음을 전하고 싶음. 정말 많은 사람들의 삶에 즐거움과 의미를 준 작품이었음

  • Zork1의 GitHub 저장소 직접 링크를 공유함

    • GitHub가 또 오류를 내는 건지 모르겠음. 계속 500 에러가 뜸
  • Microsoft가 Zork의 권리를 가지고 있는지 궁금했음

    • 1986년에 Activision이 Infocom을 인수했고, 2023년에 Microsoft가 Activision을 샀기 때문임
    • Infocom → Activision → Microsoft 순으로 소유권이 넘어간 셈임
    • Activision이 80년대부터 권리를 가지고 있었고, Microsoft가 Activision을 인수하면서 함께 넘어온 것임
  • 예전부터 ‘Zork 소스 코드’라는 걸 여러 곳에서 봤는데, 이 저장소 같은 것도 있음. 이들의 출처 관계가 궁금함

    • Zork는 원래 MIT에서 PDP-10용으로 MDL이라는 Lisp 계열 언어로 만들어졌음
      이후 개발자들이 회사를 차려 마이크로컴퓨터용으로 이식하면서 ZIL이라는 새로운 언어와 가상 머신을 만들었고, 게임을 세 부분으로 나눠 출시했음
      네가 링크한 건 원본 MDL 버전이고, 이번 공개는 ZIL 버전임
    • 원래 Zork는 MIT에서 만든 공개 도메인 게임 Dungeon이었음. 이후 Infocom이 설립되어 세 부분으로 나누고 콘텐츠를 추가해 상용화했음
      소스는 80~90년대 사이에 MDL → FORTRAN → f77 → C로 번역되며 여러 버전이 생겼고, 그래서 C 버전이 비정형적으로 보임
      Infocom이 문 닫을 때 직원들이 백업을 가져갔고, 그중 일부가 유출되어 2019년부터 ZIL 소스가 공개됨
      Microsoft는 이번에 세 개의 Zork 게임에 대한 법적 권리 정리를 한 것뿐임
    • 내가 전문가까지는 아니지만, 1977년의 Zork 아카이브를 보면 그 시절엔 개인용 소프트웨어 시장이 거의 없었음
      MIT에서는 DEC-10이나 Multics 환경에서 개발했을 것이고, 이후 Infocom이 생기며 Apple II나 CP/M 시스템으로 이식했음
      당시 Colossal Cave Adventure가 인기를 끌면서 MIT 개발자들이 그 아이디어를 발전시킨 것임
    • 나도 차이를 찾아봤는데, 새로 공개된 버전엔 PLUGH 이스터에그가 있고, 예전 버전엔 ‘Tomb of the Unknown Implementor’가 있음
  • 누가 제일 먼저 Arduino + LCD로 포팅할지 궁금함

  • Microsoft가 어떻게 이걸 소유하게 됐는지 다시 궁금해짐
    원래 MDL 버전은 오래전부터 공개되어 있었는데, 혹시 Microsoft가 다른 Infocom 게임들도 공개할지 기대됨
    그리고 “게임의 사고방식을 바꾼 작품”이라면 사실 ADVENTURE가 그 시작이었음. Zork는 훨씬 세련됐지만 같은 계열의 후속작이었음

  • 나는 Docker로 Zork를 실행하는 걸 좋아함
    docker run -it clockworksoul/zork1 명령어로 바로 플레이 가능함

    • 누군가 실제로 써준다니 기쁨. 하루가 즐거워짐
  • historicalsource 저장소에는 Infocom의 여러 게임 코드가 모여 있음
    대부분은 완전한 오픈소스는 아니지만, 그래도 정말 멋진 자료 아카이브

  • “It is pitch black. You are likely to be eaten by a grue.” — Zork의 유명한 문구를 인용함

    • 혹시 grue라는 단어가 철학자 Nelson Goodman의 저서 Fact, Fiction, and Forecast에서 온 건지 궁금함
    • 나도 블로그의 404 페이지에 grue 농담을 써둠
      mordenstar.com/zork
    • 만약 이 상황이 너무 잔인하게 느껴진다면, 횃불이나 성냥이 인벤토리에 없다는 사실을 떠올려볼 것임
      MC Frontalot의 “It Is Pitch Dark”라는 곡에서도 이 장면이 등장함
      참고로 이 곡에는 Steve Meretzky가 참여했음