밤은 한 번에 12분
게임 안의 하룻밤은 실제 시간 12분입니다. 주문 셋을 다 돌리면 새벽이 오고, 못 돌리면 그냥 다음 밤이 옵니다. 실패 화면은 없습니다. 어제 못 간 집은 오늘 조금 더 짜증이 나 있을 뿐입니다.
위 3D 씬은 먼저 절반 해상도 버퍼에 그려집니다. 그다음 화면 전체를 한 번 더 지나가면서 픽셀마다 밝기 하나를 읽고, 옆의 4×4 바이어 행렬에서 임계값 하나를 꺼냅니다. 밝기가 임계값을 넘으면 한 단계 밝은 색, 아니면 한 단계 어두운 색. 쓰는 색은 네 가지뿐입니다.
임계값은 물체 표면의 UV 가 아니라 화면 좌표(gl_FragCoord)로 고릅니다. 그래서 디스크가 돌아도 점 무늬는 제자리에 있고, 물체만 그 위를 지나갑니다. 옛 인쇄물의 망점이 종이에 붙어 있는 것과 같습니다.
CRT 주사선 필터는 일부러 안 씌웠습니다. 흐린 화면을 흉내내는 대신 또렷한 격자 하나만 남기는 쪽이 요즘 눈에 더 정직해 보였습니다. 위의 「디더」를 껐다 켜 보세요. 꺼지면 밝기 단계가 그대로 띠로 드러납니다.
| x0 | x1 | x2 | x3 |
|---|---|---|---|
| 0 | 8 | 2 | 10 |
| 12 | 4 | 14 | 6 |
| 3 | 11 | 1 | 9 |
| 15 | 7 | 13 | 5 |
셀 배경은 그 칸의 임계값(0~15)을 16단계 농도로 칠한 것. 화면의 모든 픽셀은 이 16칸 중 하나에 속합니다.
항구 마을 「수리개」의 야간 배달부가 되어 스쿠터로 골목을 달립니다. 등불 하나, 주문 셋. 밤은 길고 안개는 짙습니다.
큰 이야기를 하려는 게임이 아닙니다. 국수 한 그릇을 식기 전에 건네는 일, 가로등 없는 언덕을 감으로 넘는 일, 그날의 마지막 손님이 누군지 알게 되는 일. 그런 작은 밤을 서른 번쯤 겪고 나면 마을 지도가 손에 익습니다.
게임 안의 하룻밤은 실제 시간 12분입니다. 주문 셋을 다 돌리면 새벽이 오고, 못 돌리면 그냥 다음 밤이 옵니다. 실패 화면은 없습니다. 어제 못 간 집은 오늘 조금 더 짜증이 나 있을 뿐입니다.
스쿠터 앞에 매단 등불이 유일한 광원입니다. 기름은 골목 국숫집에서 채웁니다.
골목마다 손으로 쓴 표지판이 서 있습니다. 세 번 지나가면 외워지고, 외워지면 밤이 조금 덜 무섭습니다.
「예쁘게」가 아니라 「또렷하게」가 목표였습니다. 네 가지 색으로도 비 오는 밤과 갠 밤이 구별되면 성공이라고 봤어요.
— 하윤, 디렉터 · 개발 노트 #14
개발 빌드 캡처를 손보지 않고 올렸습니다. 출시판은 색 배치가 조금 바뀔 수 있습니다.
2019년 부산에서 넷이 시작했습니다. 큰 게임을 만들 생각은 없고, 한 해에 하나씩 작은 밤을 만들자는 쪽입니다. 지금까지 두 편을 냈고 《밤배달》이 세 번째입니다.
디더 셰이더와 로더 코드는 출시 뒤에 공개할 예정입니다. 우리가 남에게서 배운 만큼은 돌려주고 싶어서요.
부산 영도의 방 한 칸. 첫 프로토타입은 손전등 하나로 집 찾기.
2색 퍼즐. 약 4만 장. 등불 그림자로 길을 여는 게임.
3색 어드벤처. 약 11만 장. 이때 처음 바이어 디더를 씀.
4색, 첫 3D. 이 페이지의 셰이더가 그 렌더러입니다.
출시일이 정해지면 먼저 알려드립니다. 메일은 발매 전 두 통, 발매일 한 통. 그 이상은 안 보냅니다.
2,418DISCS RESERVED