JavaScript·Canvas 한 HTML 파일로 만든 보행형 ASCII 사이버펑크 도시
- 1인 인디 개발자 Grow Now! Games가 JavaScript와 Canvas로 만든 보행형 ASCII 도시 영상을 공개했으며, Unity·Unreal·3D 모델·텍스처·셰이더는 쓰지 않았다고 설명함
- 엔진은 매 프레임 카메라에서 레이캐스팅해 원근, 깊이, 충돌, 가시성을 계산하고 도로·건물·나무·차·보행자를 문자와 숫자, 기호로 그린다고 밝힘
- 도시는 그리드 기반 3D 월드이며 ASCII 문자 화면으로 보는 블록 도시라는 구조임
- 영상 설명에는 프로토타입 링크가 있으나, HN 이용자들은 영상의 새 버전과 라이브 데모의 이전 버전이 달라 실제 화면이 더 알아보기 어렵다고 지적함
- HN 토론에서는 고정폭 문자 그래픽을 브라우저에서 만들면 글꼴·비율 통제와 입력·성능 분석이 편하다는 의견, SSH와 현재 디렉터리 문맥 때문에 TUI가 낫다는 반론이 나옴
Hacker News opinions
데모와 소스 링크가 설명 첫 부분에 있음. 직접 만져볼 수 있는 데모임.
메인 단위는 ASCII 219 블록 문자와 반블록, 음영 문자로 두고 디더링하는 편이 낫지 않나 싶음.
127보다 큰 문자는 엄밀한 ASCII가 아니라 확장 ASCII임. 그 구분이 중요하다면 고려해야 함.
문자를 쓰면 디더링도 가능함. alexharri.com의 ASCII 렌더링 인터랙티브 글이 이 방식을 잘 보여줌.
영상은 정말 좋아 보이는데 직접 실행하니 형태와 물체를 알아보기 어렵고 훨씬 지저분했음.
Arch Linux의 최신 Brave와 Firefox에서도 같은 문제를 봤음. 영상과 실제 화면 차이가 꽤 큼.
영상은 새 버전이고 라이브 데모는 예전 버전이라서 그런 듯함.
고정폭 문자 그래픽은 터미널보다 브라우저에서 먼저 만드는 걸 권함. 글꼴과 비율을 고정할 수 있고, 마우스 입력과 성능 프로파일링도 브라우저가 더 편했음.
TUI를 쓰는 이유는 약한 노트북에서 SSH로 수백 코어와 TB급 메모리가 있는 시스템에 접속해도 같은 도구와 작업 흐름을 쓸 수 있어서임.
기존 터미널에서 손을 거의 안 움직이고 빠르게 작업하려면 TUI가 좋음. 브라우저를 따로 열어야 한다면 차라리 일반 GUI를 쓰겠음.
브라우저 렌더링을 DOM 텍스트, 2D Canvas, WebGL Canvas로 벤치마크했음. DOM은 글자색이 줄 안에서 자주 바뀌지 않으면 60FPS도 잘 나오고, WebGL은 1000FPS 이상 나왔음.
커맨드라인과 TUI는 SSH로 쓸 수 있고 HTTPS 인증서를 다룰 필요가 없으며 현재 작업 디렉터리 문맥도 그대로 쓸 수 있음.
GitHub 프로젝트가 영상 속 프로젝트와 같은 것인지 의문임. 비슷한 목표의 다른 프로젝트를 혼동한 듯하고, 영상은 Grow Now Games의 비공개 소스 프로젝트로 보임.
15일 전에 같은 링크를 올렸지만 반응이 없었음. 이번에는 HN 첫 화면에 올라와서 사람들이 보게 됐네.