처음 설정 화면을 보고 순간 Claude에게 “Monkey Ball 스타일 게임 만들어줘” 라고 시킨 건가 싶었음
하지만 실제로는 에뮬레이터나 Emscripten 기반 디컴파일이 아니라, TypeScript로 완전히 새로 만든 게임이었음
이런 프로젝트 정말 좋아함 — WebMonkeyBall GitHub 링크
웹사이트 크레딧에 “decompilation”과 “porting” 역할이 있어서, 원본 바이너리를 디컴파일한 뒤 TypeScript로 포팅한 것 같음
나는 늘 JS JIT + WebGL/WebGPU 조합이면 이런 게임엔 충분하다고 말해왔음
WebAssembly 툴체인은 여전히 쓰기 불편함
참고로 PlayCanvas도 비슷한 예시임
GX 코드 부분은 GameCube API를 떠올리게 함
코드 스타일을 보니 Claude가 작성한 것처럼 보임
2006년 iPhone이 처음 공개됐을 때는 App Store가 없었고, Apple은 웹앱을 만들라고 했었음
그런데 2008년 App Store가 나오면서 Super Monkey Ball이 첫날 출시된 대표 앱이 되었음
웹으로는 절대 구현할 수 없는 진짜 네이티브 앱의 힘을 보여준 사례였음
2026년이 된 지금도 브라우저 벤더들은 RenderDoc 같은 디버깅 툴을 제공하지 못하고 있음
그나마 SpectorJS가 남아 있지만 거의 쓸 수 없을 정도임 Infinity Blade는 2010년에 iPhone의 OpenGL ES 3.0 성능을 보여준 대표작이었지만,
여전히 대부분의 웹게임은 플래시 리메이크 수준에 머물러 있음
참고 영상: Infinity Blade: iPhone Trailer
왜 이런 퀄리티의 웹게임이 더 많지 않은지 이해가 안 됨
충분히 만들 수 있는데도 드묾
나도 직접 몇 개 포팅해봤음 — Quake 3 데모, Cave Story
이런 게 수백 개는 있어야 한다고 생각함
요즘 iOS에서 가볍고 빠르게 즐길 수 있는 캐주얼 게임을 찾고 있었는데, 정말 찾기 힘들었음
이 게임이 바로 내가 원하던 느낌임
Apple의 칩은 좋지만, 게임 개발자 우선순위에서는 밀려 있음
ARM 환경에서는 에뮬레이션 성능 저하로 플레이 가능한 게임이 제한적임
참고: 86Box, MacBox
Steam이 ARM Mac에서 네이티브로 돌아가긴 하지만, 호환 타이틀은 여전히 적음
그래픽과 조작감이 훌륭하지만, 공 안에 원숭이가 없음 😢
Super Ball!
iOS에서는 자이로 권한 요청이 사용자 입력과 연결되지 않아서 작동하지 않음
아래 코드를 브라우저 콘솔에 붙여넣으면 버튼을 만들어 수동으로 권한을 요청할 수 있음
var b=document.createElement('button');
b.textContent='Gyro';
b.style='position:fixed;z-index:999';
b.onclick=()=>{DeviceOrientationEvent.requestPermission();b.remove()};
document.body.appendChild(b);
브라우저에서 돌아가던 GTA Vice City도 인상적이었는데 지금은 내려갔음
AI가 디컴파일 프로젝트에 얼마나 도움이 되는지 궁금함
여전히 복잡한 어셈블리는 수작업이 필요함 (예: ffmpeg)
re3/reVC 코드와 어셈블리를 학습 데이터로 써서 GTA San Andreas를 macOS용으로 학습시킬 수 있을지 상상해봄
GTA Vice City와 San Andreas는 이미 10년 넘게 iOS용으로 출시되어 있었음
Apple Silicon Mac에서 실행해봤는데, 터치 기반이라 컨트롤 업데이트만 해주면 잘 돌아갈 듯함
Rockstar가 macOS용으로 공식 지원만 해줘도 꽤 팔릴 것 같음
이제는 Intel Mac 지원을 빼도 아무도 신경 안 쓸 수준임
이런 프로젝트는 포크하거나 저장해두는 게 좋음
원작보다 조작이 더 민감한 느낌이지만 완성도는 높음
GameCube는 비례식 조이스틱을 썼지만, 키보드는 100% 입력이라 감도가 다름
그리고 원숭이가 떨어질 때 외치는 소리가 없으니 뭔가 허전함
예시 영상: YouTube 링크
Hacker News 의견들
하지만 실제로는 에뮬레이터나 Emscripten 기반 디컴파일이 아니라, TypeScript로 완전히 새로 만든 게임이었음
이런 프로젝트 정말 좋아함 — WebMonkeyBall GitHub 링크
WebAssembly 툴체인은 여전히 쓰기 불편함
참고로 PlayCanvas도 비슷한 예시임
GX 코드 부분은 GameCube API를 떠올리게 함
그런데 2008년 App Store가 나오면서 Super Monkey Ball이 첫날 출시된 대표 앱이 되었음
웹으로는 절대 구현할 수 없는 진짜 네이티브 앱의 힘을 보여준 사례였음
그나마 SpectorJS가 남아 있지만 거의 쓸 수 없을 정도임
Infinity Blade는 2010년에 iPhone의 OpenGL ES 3.0 성능을 보여준 대표작이었지만,
여전히 대부분의 웹게임은 플래시 리메이크 수준에 머물러 있음
참고 영상: Infinity Blade: iPhone Trailer
충분히 만들 수 있는데도 드묾
나도 직접 몇 개 포팅해봤음 — Quake 3 데모, Cave Story
이런 게 수백 개는 있어야 한다고 생각함
이 게임이 바로 내가 원하던 느낌임
ARM 환경에서는 에뮬레이션 성능 저하로 플레이 가능한 게임이 제한적임
참고: 86Box, MacBox
Steam이 ARM Mac에서 네이티브로 돌아가긴 하지만, 호환 타이틀은 여전히 적음
아래 코드를 브라우저 콘솔에 붙여넣으면 버튼을 만들어 수동으로 권한을 요청할 수 있음
AI가 디컴파일 프로젝트에 얼마나 도움이 되는지 궁금함
여전히 복잡한 어셈블리는 수작업이 필요함 (예: ffmpeg)
re3/reVC 코드와 어셈블리를 학습 데이터로 써서 GTA San Andreas를 macOS용으로 학습시킬 수 있을지 상상해봄
Apple Silicon Mac에서 실행해봤는데, 터치 기반이라 컨트롤 업데이트만 해주면 잘 돌아갈 듯함
Rockstar가 macOS용으로 공식 지원만 해줘도 꽤 팔릴 것 같음
이제는 Intel Mac 지원을 빼도 아무도 신경 안 쓸 수준임
그리고 원숭이가 떨어질 때 외치는 소리가 없으니 뭔가 허전함
예시 영상: YouTube 링크
웹 버전도 있음 — play.neverball.org
이번 웹 버전은 정말 놀라움. 훌륭한 완성도임