# Claude Code로 20년 전 상용 게임을 거의 고치지 않고 브라우저로 이식하기까지

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27829](https://news.hada.io/topic?id=27829)
- GeekNews Markdown: [https://news.hada.io/topic/27829.md](https://news.hada.io/topic/27829.md)
- Type: news
- Author: [gamjaa](https://news.hada.io/@gamjaa)
- Published: 2026-03-25T10:22:48+09:00
- Updated: 2026-03-25T10:22:48+09:00
- Original source: [velog.io](https://velog.io/@aespa/claude-code-gunz-the-duel-web-port)
- Points: 43
- Comments: 10

## Summary

20년 전 Windows 전용 게임을 **WebAssembly와 WebGL로 완전 이식**해 브라우저에서 그대로 실행한 사례입니다. 핵심은 C++ 원본 코드를 거의 수정하지 않고, Direct3D 호출을 **실시간 WebGL로 변환하는 번역 레이어**를 둔 점입니다. 이 과정에서 Claude Code가 대규모 코드 분석과 변환을 자동화해, 과거엔 불가능하던 레거시 포팅을 몇 시간 만에 끝냈다고 합니다.

## Topic Body

* 2003년 Windows 전용 TPS 게임 **GunZ: The Duel**을  
  → **WebAssembly + WebGL 기반으로 브라우저에서 실행 가능하게 포팅**  
* 설치 없이 **크롬에서 URL만 열면 바로 플레이 가능** [https://gunz.sigr.io/](https://gunz.sigr.io/)  
* Linux, macOS, 모바일까지 **거의 모든 환경에서 동작**  
* 기존 C++ 코드 **거의 수정 없이 유지**  
* 새로 작성된 코드의 **약 99%는 AI가 생성**     
  
#### 왜 의미 있는가  
  
* 기존 PC 게임:  
  * 다운로드/설치 필요  
  * Windows 종속  
* 이번 결과:  
  * 완전 동일한 게임을 브라우저에서 실행  
  * “비슷한 구현”이 아니라 **원본 그대로 이식**  
* 과거에는 “이론상 가능하지만 현실적으로 불가능” 영역이었음     
  
#### 과거 시도와 실패  
  
* 과거 접근:  
  * JavaScript + Three.js로 **엔진을 새로 구현**  
* 결과:  
  * 맵 렌더링까지만 성공  
  * 전체 엔진 재구현 난이도가 너무 높아 중단  
* 결론:  
  * “재구현 방식”은 현실적으로 불가능에 가까움     
  
#### 핵심 문제: Windows 의존성  
  
* GunZ는 C++ 기반 + **Direct3D 의존**  
* 문제:  
  * Direct3D는 Windows 전용 API  
  * 브라우저(WebGL)에서는 직접 사용 불가  
* 단순 wasm 컴파일로는 해결되지 않음  
* 즉:  
  * 플랫폼 독립 코드만 wasm 가능  
  * 그래픽 API 의존 부분이 가장 큰 장벽     
  
#### 기존 접근 방식들의 한계  
  
* 게임 코드 직접 수정  
  * 수만 줄 수정 필요  
  * 유지보수 불가능  
* 자동 변환 (D3D → WebGL)  
  * API 의미 차이로 **기계적 변환 불가**  
* 결론:  
  * 기존 방식은 모두 비현실적     
  
#### 핵심 아이디어: “번역 레이어”  
  
* 접근:  
  * 게임 코드는 그대로 유지  
  * Direct3D 호출을 가로채서  
  * **실시간으로 WebGL로 변환**  
* 구현:  
  * D3D9 API와 동일한 인터페이스를 가진 **WebGL 래퍼**  
  * 게임 ↔ 그래픽 API 사이에 삽입  
* 효과:  
  * 게임 코드 수정 거의 없음  
  * Windows 의존성 제거  
  * 이식 비용을 “래퍼 구현”으로 한정     
  
#### AI의 역할  
  
* 사용 도구:  
  * Google Antigravity  
  * Claude Code (Max 플랜)  
* 결과:  
  * 대규모 코드 분석 및 수정 자동화  
  * 수주 걸리던 문제를 **몇 시간 내 해결**  
  * 사실상 인간이 못 할 작업을 대신 수행  
* 특히:  
  * D3D → WebGL 래퍼 구현 대부분을 AI가 담당    
  
#### 핵심 요약  
  
* “게임을 다시 만드는 것”이 아니라  
  → **기존 코드를 그대로 살리는 방향으로 해결**  
* 핵심 기술:  
  * WebAssembly  
  * Direct3D → WebGL 번역 레이어  
* 핵심 변화:  
  * AI 덕분에 **대규모 레거시 포팅이 현실적인 작업이 됨**  
* 시사점:  
  * 앞으로 **과거 게임/소프트웨어의 웹 이식 난이도가 급격히 낮아질 가능성**

## Comments



### Comment 53827

- Author: beoks
- Created: 2026-03-25T17:12:56+09:00
- Points: 2

AI 도 대단하지만, D3D9 가 인터페이스로 잘 나뉜덕이 더 크다는 생각이 드네요, 직접 참조로 얽혀 있었으면 훨씬 더 어려웠을 것 같습니다.

### Comment 53819

- Author: minsuchae
- Created: 2026-03-25T15:24:31+09:00
- Points: 2

어젠가 인벤 기사를 봤었는데 Direct3D 번역 레이어를 구성해서 처리한 것이군요.  
테스트해본다고 1분도 안돼어서 했을 땐 먼가 화질이 별로였다 라는 생각이 강했는데 그게 새로 처음부터 만드는 개념보단 번역 레이어를 거쳐서 그대로였다는걸 생각하면 그럴 수 있다고는 생각하네요...  
  
다만, 원본 블로그는 좀 위험하게 운영할 예정인듯 싶네요. 번역글이라고 명시하거나 원본이라고 명시해야하는데...본인인 척 하는 듯한 느낌이 강하게...댓글에도 지적한 부분이 있는데 답글이 없네요.  
(애초에 원본 블로그의 참조 글이 다 일본어쪽으로 되어있습니다.)  
  
말이 안되는 부분이 한화 기준 안티 그래비티 돈이 월 3000원짜리 플랜이없습니다. 이미지 등은 다 일본어가 나타나있습니다. 심지어 어느 이미지는 영어가 들어가지요.  
그럴 바엔 처음부터 한글로 변환해서 쓰지 않았을까 싶습니다.

### Comment 53838

- Author: vndk2234
- Created: 2026-03-25T20:44:07+09:00
- Points: 1
- Parent comment: 53819
- Depth: 1

결제하셨다고 하는건 5x인데 캡쳐는 20x 이긴 한데, 일본 사시는 분일 수도 있으니까요 뭐...

### Comment 53824

- Author: kentakang
- Created: 2026-03-25T17:03:54+09:00
- Points: 1
- Parent comment: 53819
- Depth: 1

보다보면 본인인가 싶은 느낌도 있습니다.  
  
sigr.io로 접속했을때 떠 있는 문구도 에스파의 노래 가사고,  
Gunz 프로젝트 이름도 Whiplash Gunz로 에스파 곡명인데,  
velog 핸들도 aespa로 일관성 있게 에스파를 좋아하는 느낌이 있어서 본인이 번역 돌려서 velog에 올린건가? 하는 생각도 드네요.

### Comment 53930

- Author: 324ing
- Created: 2026-03-27T09:42:29+09:00
- Points: 1

본인이 한게 아니군요.

### Comment 53826

- Author: wedding
- Created: 2026-03-25T17:09:32+09:00
- Points: 1

근데 건즈 스팀판이 출시했는데.. 법적으로 문제가 없나 싶네요.

### Comment 53810

- Author: ifmkl
- Created: 2026-03-25T14:37:59+09:00
- Points: 1

크 정말 대단합니다.

### Comment 53794

- Author: simryang
- Created: 2026-03-25T12:37:54+09:00
- Points: 1

너무 좋아하던 게임인데 다시 살려주셔서 감사합니다.  
근데 접속자가 없네요

### Comment 53800

- Author: unknown
- Created: 2026-03-25T13:16:58+09:00
- Points: 1
- Parent comment: 53794
- Depth: 1

서버도 브라우저 안에서 돌아가서 그런 것 같아요. 여럿이 같이 하시려면 게임 하실 분들끼리 정보 교환해서 서로 웹소켓으로 연결해야 하는 것 같습니다.

### Comment 53788

- Author: jtpark03
- Created: 2026-03-25T12:08:09+09:00
- Points: 1

대단합니다 AI의 참된활용같네요
