Hacker News

Total Annihilation, rebuilt for modern computers

Total Annihilation을 현대 컴퓨터에서 다시 구현한 오픈소스 엔진

Nanolathe는 고전 RTS Total Annihilation을 현대 컴퓨터에서 실행하도록 재구현한 MIT 라이선스 엔진입니다. 브라우저에서 데모 미션 3개를 즐길 수 있고, 원본 게임 파일을 제공하면 네이티브 버전에서 캠페인과 온라인 대전도 지원합니다.

AI 요약

Nanolathe는 1997년 출시된 RTS Total Annihilation(TA)을 현대 환경에서 실행하도록 만든 오픈소스 2.5D 엔진입니다. 코드는 MIT 라이선스로 공개했으며, 원작 실행 파일을 그대로 사용하는 대신 클린룸 조사(clean-room research)와 문서화한 데이터 형식에 따라 게임 동작을 재구현한다고 설명합니다. 웹 브라우저 데모에는 원작 데모의 미션 3개가 들어 있어 게임 파일 없이 실행할 수 있습니다.

렌더링과 실행 환경

기본 렌더러는 조명과 글로우 효과, 더 풍부한 디테일을 제공하는 현대식 GPU 렌더링입니다. 원작에 가까운 화면을 선호하면 Classic 모드로 전환할 수 있습니다. 프로젝트는 원작의 32×32 타일을 64×64 합성 타일로 만들고, 건강한 나무 스프라이트에는 2배 크기의 합성 리소스를 적용했다고 밝힙니다. 비교 화면은 두 렌더링 경로를 나란히 보여주며, 잘라내기나 리터칭, 크기 조정 없이 캡처했다고 설명합니다.

브라우저 데모는 데스크톱 Chrome, Edge, Safari를 지원합니다. Firefox와 모바일 기기에서는 실행을 검증하지 않았습니다. Windows, Mac, Linux용 네이티브 베타도 제공하며, 전체 게임을 실행하려면 사용자가 보유한 게임의 데이터 파일을 따로 가져와야 합니다. MIT 라이선스는 엔진 코드에만 적용되고 게임 콘텐츠는 별도입니다.

게임 기능과 온라인 대전

싱글 플레이 스커미시(Skirmish), 서바이벌(Survival), 캠페인은 대체로 구현된 상태입니다. 온라인에서는 스커미시 2~10명, 서바이벌 2~3명이 함께할 수 있습니다. 방장은 Modern, Community 3.9, Strict 3.1 규칙 중 하나를 고르고 컴퓨터 플레이어를 추가할 수 있습니다. 게임 중 채팅과 자원 공유, 동맹도 지원합니다. 스커미시와 서바이벌 대전은 리플레이로 기록됩니다. 모든 참가자가 각자 게임 파일을 보유해야 하며, 브라우저 데모로는 온라인 대전을 할 수 없습니다. 베타에는 버그와 미구현 기능이 남아 있고, 미션이나 콘텐츠 팩에 따라 호환성이 달라질 수 있으며 세이브 호환성도 다듬는 중입니다.

커뮤니티에서 나온 쟁점

댓글에서는 TA를 그대로 재현하는 프로젝트와 Beyond All Reason(BAR), Spring Engine 계열의 후속작을 구분해야 한다는 의견이 나왔습니다. BAR는 독립적인 콘텐츠와 플레이 방식을 갖춘 후속작인 반면, Nanolathe는 원작 게임 파일을 사용해 TA 경험을 재현하는 데 초점을 둡니다. 기존 Spring Engine과 비교해 어떤 이점이 있는지, 다른 TA 파생 엔진이 이미 있다는 질문도 나왔습니다.

구현 방식과 법적 문제도 논쟁거리입니다. 프로젝트는 실행 파일의 동작을 분석해 클린룸 문서와 엔진을 만들었다고 설명하지만, 일부 댓글은 역공학 결과를 문서로 옮기는 과정이 실제 클린룸 구현으로 인정될지 의문을 제기했습니다. 게임 콘텐츠와 엔진 코드의 라이선스가 분리된다는 점을 확인하고, 상업 게임의 저작권을 둘러싼 법적 판단은 별개로 봐야 한다는 반응도 있었습니다. 사이트 문구가 생성형 AI로 만든 홍보 문구처럼 보인다는 비판과, 브라우저 데모의 입력 지연 및 성능을 지적하는 댓글도 나왔습니다.

원문: Nanolathe / 번역·요약: Trawling

Hacker News 반응

  • @somat — Spring Engine보다 나은 점이 무엇인지 궁금합니다. Total Annihilation의 데이터 구조를 이해하는 클린룸 구현은 이미 20년 전에 시작됐습니다. 제가 해본 RTS 중 BAR가 가장 잘 다듬어진 게임이라고 생각합니다.
  • @ThrowawayR2 — 장점은 밸런스를 다시 조정하지 않은 출시 당시의 Total Annihilation을 경험할 수 있다는 점일 겁니다. RTS 계보의 뿌리라는 역사적 의미도 있고, 향수라는 측면에서도 흥미롭습니다. 캠페인과 음악, 나레이션은 거의 30년이 지난 지금도 괜찮습니다. 만든 분께 감사드립니다.
  • @noduerme — 클린룸이라는 말이 실제로 무엇을 뜻하는지 궁금합니다. 실행 파일을 LLM에 디컴파일하게 하고, 그 내용을 별도 형식의 문서로 바꾼 뒤 그 문서를 바탕으로 새 실행 파일을 만드는 방식이라면, 법정에서 인정받을 수 있을까요?
    • @Pannoniae — 제 생각에는 실제로 법정까지 가게 될지가 더 나은 질문입니다. 그런 선례는 대부분 없으니, 별로 중요하지 않을 수도 있습니다.
  • @Rabbit504030201 — 엄청난 노력을 들인 전형적인 불법 복제입니다. 현대 ML 도구를 썼다면 그래픽을 바꿀 수도 있었는데, 그냥 평범한 업스케일링을 했습니다. Total Annihilation은 abandonware가 아닙니다. 저작권 침해가 뚜렷하다면 Microsoft 소유 GitHub에서 내려가길 바랍니다.
  • @Nition — “원래의 아이소메트릭 시점”이라는 표현은 틀렸습니다. 원작은 카메라 회전이 없는 완전한 탑다운 시점이었습니다. 높이 맵을 쓰는 3D 지형에 2D처럼 보이는 화면을 그렸습니다.
  • @DaveChurchill — 사람들이 이런 AI 슬롭 웹사이트가 얼마나 보기 안 좋은지 알고 있나요?
    • @joefourier — 디자인은 넘어갈 수 있어도 문체가 정말 거슬립니다. 짧고 반복적인 문구가 계속 나옵니다. 왜 늘 똑같은 형식일까요? LLM이 괜찮거나 적어도 다양한 문장을 쓸 수 있는데도, 왜 이런 균질한 문체를 택하는지 모르겠습니다.
  • @tholford — Go로 만든 게임 엔진이라니, 보기 좋습니다. 잘 만들었습니다.
  • @slightlygrilled — 저도 Supreme Commander를 위해 이런 작업을 하고 있습니다. 현대 도구와 라이브러리를 쓰면 예전 기술 문제를 많이 해결할 수 있습니다. Linux와 Mac에서도 실행됩니다. 원작과 거의 같은 구현에 가까워졌고, 성능도 훨씬 뛰어납니다. 64,000대가 참여하는 공중전을 보여드렸고, 60fps 이상으로 실행할 수 있을 것 같습니다.