Rust로 포팅한 Quake, 브라우저에서 바로 실행되는 Show HN 프로젝트
- Quake를 safe Rust로 옮긴 포팅 프로젝트 quake-srp가 공개되어 WASM 기반으로 브라우저에서 바로 플레이할 수 있음
- 포팅은 LLM이 C 코드를 Rust로 옮기는 방식으로 진행됐다는 말이 나오며, 작성자는 원본과 픽셀 단위로 비교하는 시각 diff 하네스를 검증 도구로 함께 공개함
- 사이트는 WASD와 마우스 룩, 게임패드, 콘솔 명령을 지원하고 WinQuake 원본과 동일한 classic 프리셋을 제공함
- HN 댓글에서는 Rust가 메모리 버그만 막고 게임 내 물리 버그나 클리핑은 막지 못한다는 지적과, 단순 언어 이전 작업의 가치를 두고 논쟁이 이어짐
Hacker News opinions
Rust로 옮긴 게 무슨 의미 있냐 싶음. C에서 바로 wasm으로 가도 되는 거였는데 Rust 쓴 건 그냥 Rust 자랑 아닌가 싶음.
커밋 그래프 보니까 사람도 같이 작업한 흔적은 있음. 완전 LLM 단독은 아닌 듯.
0x5f3759df 찾아봤자 안 나옴. 그건 Quake 3 역제곱근이고 Quake 1에는 원래 없음.
원본 재생 기능이 있는 게임이면 입력 녹화 재생해서 픽셀 비교하는 게 제일 쉬운 검증법임. 이 하네스가 버그 잡는 데 꽤 쓰였을 듯.
성능은 걱정 안 해도 됨. WASM이라 옛날 게임은 충분히 돌아감. 90MHz 펜티엄 시절 게임인데 폰에서도 부드러움.
safe Rust가 unsafe를 안 쓴다는 뜻만은 아님. 인덱싱으로 내부 가변성 꼼수 쓰면 borrow checker를 피할 수 있으니 C 포팅이면 그런 코드 나왔을 가능성 있음.
이건 LLM한테 시키면 되는 수준이라 굳이 HN에 올릴 가치는 잘 모르겠음. 예전이었으면 신기했겠지만.
멀티플레이가 안 되는 게 아쉬움. 싱글은 잘 돌아감.