# Show HN: 죽은 Dune RTS 게임 부활

> Clean Markdown view of GeekNews topic #15838. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15838](https://news.hada.io/topic?id=15838)
- GeekNews Markdown: [https://news.hada.io/topic/15838.md](https://news.hada.io/topic/15838.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-07-15T08:34:42+09:00
- Updated: 2024-07-15T08:34:42+09:00
- Original source: [wheybags.com](https://wheybags.com/blog/emperor.html)
- Points: 1
- Comments: 1

## Topic Body

### 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 래퍼 프로젝트가 있음

## Comments



### Comment 27252

- Author: neo
- Created: 2024-07-15T08:34:43+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40956087) 
- **Emperor: Battle for Dune**를 archive.org에서 다운로드할 수 있음
  - [링크](https://archive.org/details/EmperorBattleForDuneUSAEurope)
  - 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 블로그 글을 떠올리게 함
