21P by gamjaa 5시간전 | ★ favorite | 댓글 4개
  • 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의 참된활용같네요