1P by neo 2023-10-09 | favorite | 댓글 1개
  • 텍스트는 닌텐도 엔터테인먼트 시스템(NES)의 게임 'Elite'의 완전히 문서화된 소스 코드에 대해 논의하고 있다.
  • 소스 코드는 모든 줄이 문서화되고 설명된 저장소에서 사용할 수 있다.
  • 저장소에는 소스 코드에서 게임을 빌드하는 방법에 대한 지침도 포함되어 있다.
  • 소스에서 빌드할 수 있는 게임의 두 가지 버전: Ian Bell의 개인 웹사이트에서의 NTSC 버전과 Imagineer PAL 버전이 있다.
  • 저장소는 교육적이고 비영리 목적으로, 사람들이 게임과 그 개발에 대해 더 이해하는 데 도움을 주기 위해 만들어졌다.
  • 게임의 소스 코드는 Ian Bell과 David Braben에 의해 작성되었으며, 코드에 대한 해설은 Mark Moxon이 제공하였다.
  • 저장소는 라이선스가 없으므로, 원래의 저작권법이 적용되며 아무도 작품을 복제, 배포, 파생 작품을 만들 수 없다.
  • 소스 코드는 통합 개발 환경(IDE)에서 탐색할 수 있으며, 주 게임의 소스 코드는 여덟 개의 다른 ROM 뱅크에 나뉘어 있다.
  • 저장소에는 게임의 특정 측면에 대해 자세히 다루는 "깊은 탐구" 기사도 여러 개 포함되어 있다.
  • 게임의 빌드 과정은 BeebAsm과 Python이 필요하며, 과정은 제공된 Makefile에서 정의된다.
  • 빌드 과정은 두 가지 주요 목표를 지원한다: 최대한 강화된 커맨더 버전과 게임의 출시 버전을 맞춘 버전.
  • 저장소에는 두 가지 다른 버전의 NES Elite의 소스 코드도 포함되어 있다: Ian Bell의 개인 웹사이트에서의 NTSC 버전과 Imagineer PAL 버전.
  • 텍스트는 NTSC 버전이 실제로는 NTSC 기계에서 작동하지 않지만, NTSC 모드에서 일부 에뮬레이터와 함께 작동하도록 변경되었다는 노트로 마무리된다.
Hacker News 의견
  • Elite의 NES 버전은 초기에 하드웨어 타이머를 사용하여 게임 내 물리학을 위한 실시간을 추적했지만, 일부 NES 콘솔의 하드웨어 제한 때문에 자체 구현된 실시간 시계로 전환해야 했습니다.
  • 개발자들은 각 기능이 프레임당 얼마나 많은 클럭 사이클을 소비하는지에 대한 자체 추정을 만들었고, 이를 사용하여 실제 시간이 얼마나 경과했는지 추정했습니다.
  • 후속 게임인 Elite: Dangerous는 원래 1984년 버전과 연속성을 유지하면서 게임 요소를 벡터 그래픽에서 완전히 렌더링된 3D로 변환합니다.
  • 게임의 C 버전인 Elite - The New Kind는 원래 버전에 대부분 충실합니다.
  • Elite의 저자인 Ian Bell은 NES 버전이 그의 개인적으로 가장 좋아하는 8비트 버전이라고 주장했습니다.
  • Objective-C로 작성된 오픈 소스 Elite 클론인 Oolite의 소스 코드는 온라인에서 사용할 수 있습니다.
  • NES에서의 Elite의 소스 코드는 매우 상세하고 잘 문서화되어 있습니다.
  • NTSC 콘솔에서 게임을 실행하려는 관심이 있지만, 이를 위해서는 상당한 수정이 필요할 것입니다.