43P by gamjaa 16일전 | ★ favorite | 댓글 10개
  • 2003년 Windows 전용 TPS 게임 GunZ: The Duel
    WebAssembly + WebGL 기반으로 브라우저에서 실행 가능하게 포팅
  • 설치 없이 크롬에서 URL만 열면 바로 플레이 가능 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 덕분에 대규모 레거시 포팅이 현실적인 작업이 됨
  • 시사점:
    • 앞으로 과거 게임/소프트웨어의 웹 이식 난이도가 급격히 낮아질 가능성

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

어젠가 인벤 기사를 봤었는데 Direct3D 번역 레이어를 구성해서 처리한 것이군요.
테스트해본다고 1분도 안돼어서 했을 땐 먼가 화질이 별로였다 라는 생각이 강했는데 그게 새로 처음부터 만드는 개념보단 번역 레이어를 거쳐서 그대로였다는걸 생각하면 그럴 수 있다고는 생각하네요...

다만, 원본 블로그는 좀 위험하게 운영할 예정인듯 싶네요. 번역글이라고 명시하거나 원본이라고 명시해야하는데...본인인 척 하는 듯한 느낌이 강하게...댓글에도 지적한 부분이 있는데 답글이 없네요.
(애초에 원본 블로그의 참조 글이 다 일본어쪽으로 되어있습니다.)

말이 안되는 부분이 한화 기준 안티 그래비티 돈이 월 3000원짜리 플랜이없습니다. 이미지 등은 다 일본어가 나타나있습니다. 심지어 어느 이미지는 영어가 들어가지요.
그럴 바엔 처음부터 한글로 변환해서 쓰지 않았을까 싶습니다.

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

보다보면 본인인가 싶은 느낌도 있습니다.

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

본인이 한게 아니군요.

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

크 정말 대단합니다.

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

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

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