GN⁺: Show HN: 죽은 Dune RTS 게임 부활
(wheybags.com)Emperor: Battle for Dune 복원 프로젝트
Emperor: Battle for Dune란?
- 2001년에 Westwood Studios에서 제작한 실시간 전략 게임
- Dune 2000의 후속작으로, 3D 그래픽과 개선된 UX, 뛰어난 사운드트랙을 특징으로 함
- 현재는 잘 알려지지 않았음
문제점
- 현대 시스템에서 높은 해상도를 지원하지 않음
- 멀티플레이어에서 게임 속도가 너무 빨라져 플레이 불가
- Westwood Online(WOL)이 작동하지 않아 LAN을 제외한 멀티플레이어 불가
- 캠페인 모드를 협동 모드로 플레이할 수 없음
- 설치 프로그램이 손상됨
- 높은 프레임 속도로 인해 시각적 효과가 깨짐
문제 해결 방법
- Emperor.exe를 대체하는 프로그램을 작성하여 Game.exe를 제어
- DLL을 주입하여 패치를 적용
패치 주입
- CreateRemoteThread와 LoadLibrary 트릭을 사용하여 Game.exe에 코드 주입
- detours 라이브러리를 사용하여 기존 함수 수정
그래픽 패치
높은 해상도 창
- UCyborg의 LegacyD3DResolutionHack 패치를 사용하여 해상도 문제 해결
- 4:3 비율을 유지하기 위해 레터박스 추가
프레임 속도 제한
- IDirect3DDevice7::EndScene 메서드를 패치하여 FPS를 60으로 제한
네트워킹 패치
- WOL 모드를 사용하여 멀티플레이어 기능 복원
- winsock을 가로채어 단일 클라이언트-서버 연결을 통해 모든 통신을 터널링
IRC 서버 작성
- WOL 마스터 서버를 대체하기 위해 기본 IRC 서버 구현
패키징
설치 프로그램 대체
- 원본 설치 프로그램이 손상되어 새로운 설치 도구 작성
- v1.09 패치 적용
Westwood Online 공유 인터넷 구성 요소
- WOLAPI.DLL을 COM 클래스 라이브러리로 등록하여 WOL 기능 복원
런처 UI
- 간단한 설정을 조정할 수 있는 기본 런처 UI 작성
결론
- 목표를 달성하여 현대 시스템에서 Emperor: Battle for Dune를 원활하게 실행할 수 있게 됨
- 협동 캠페인 모드를 포함한 멀티플레이어 기능 복원
GN⁺의 정리
- 이 프로젝트는 오래된 게임을 현대 시스템에서 다시 즐길 수 있게 해주는 중요한 문화적 보존 작업임
- 기술적으로 흥미로운 도전 과제들을 해결하며, 특히 그래픽과 네트워킹 문제를 해결하는 과정이 인상적임
- 비슷한 기능을 제공하는 프로젝트로는 dxwrapper와 같은 DirectX 래퍼 프로젝트가 있음
Hacker News 의견
-
Emperor: Battle for Dune를 archive.org에서 다운로드할 수 있음
- 링크
- wheybags 패치와 함께 게임을 시도해보고 싶어하는 사람들을 위한 정보 공유
- 과거 해적판 릴리즈 목록도 발굴했음
- OST 사운드트랙도 있다는 사실에 놀람
-
이 게임은 RTS 장르에 큰 의미를 가짐
- 자원을 수확하는 농민이 있는 전형적인 RTS 게임의 시초 중 하나였음
- 원작 소설 덕분에 이런 형태가 되었으며, 그렇지 않았다면 RTS 장르가 다른 길을 갔을 가능성도 있음
-
Westwood Online (WOL)이 더 이상 작동하지 않음
- 멀티플레이는 LAN을 통해서만 가능함
- XWIS.net이 WOL이 오프라인 된 후 많은 지원을 했음
- FreeRA 프로젝트도 WOL을 작동시키는 데 도움을 줄 수 있음
- WOL 라이브러리를 대체하는 것이 비교적 쉬울 수 있음
-
10년 전 Tiberian Sun의 네트워킹 코드를 패치한 경험 공유
- 다른 사람의 코드에 뛰어드는 것은 공유된 연결을 갖는 것과 같음
- 모뎀 플레이를 위한 별도의 스택이 있었음을 발견하고 놀람
-
작성자가 재미있고 지적인 사람이라는 느낌을 받음
- 확장 가능한 설명이 매우 유용하고 재미있었음
- CS:GO가 2023년에 은퇴했는지, CS2로 리브랜딩 되었는지 궁금해함
-
CnCNet과의 통합 가능성을 제안함
- CnCNet에서 함께 놀자는 초대
-
"28.8 BPS 모뎀"이라는 표현에 대한 반응
- "액티브 매트릭스, 수백만 가지의 환각적인 색상"이라는 표현
-
블로그 글에서 자주 보이는 "나는 숙련된 리버스 엔지니어가 아니다"라는 문구에 대한 반응
- 이미 충분한 경험을 쌓았으니 자신감을 가져도 됨
-
매우 흥미롭고 깊이 있는 기사에 감사함
- 게임을 지역 중고 상점에서 봤지만 Dune II만 플레이해서 사지 않았음
- 이제는 꼭 사야겠다고 결심함
-
UI 디자인에 대한 열정을 표현함
- Steve Yegge 블로그 글을 떠올리게 함