신더 쿠리어

밤이 산 사당을 뒤덮었고 모든 화로가 식었다. 작은 여우 배달부가 마지막 불씨를 안고 절벽을 오른다 — 길이 끊기기 전에 세 개의 화로를 모두 다시 밝혀야 하며, 그 과정에서 재-스프라이트와 잉걸불 상자를 밟고 지나간다. Phaser 3에서 AI 에이전트가 처음부터 끝까지 제작한 완전한 정밀 플랫포머로, 감각을 최우선으로 만들어졌다: 스프라이트가 하나라도 존재하기 전에 모든 이동 상수가 그레이박스에서 조율되고 측정되었다.

지금 플레이하기

방향키 / A·D + 스페이스, 길게 누르면 더 높이 점프 · 폰에서는 터치 패드 · 약 3.2MB · M 사운드 · P 일시정지

▶ 플레이

계약으로서의 컨셉

이 작품은 먼저 컨셉이 잡혔다 — 잉걸불 등을 든 여우 배달부, 재-스프라이트 적, 소품 시트, 황혼의 사당 무드보드가 팔레트를 정했다: 남색 밤 위의 적갈색, 유일한 따뜻한 빛인 잉걸불 주황. 그 시트에 명시된 모든 요소는 실제 에셋으로 제작되었고, 매 감사 라운드마다 빌드를 그 기준과 비교했다.

신더 쿠리어 여우 컨셉
히어로 컨셉 — 여우가 검증받는 기준
신더 쿠리어 엔진 내 최종 장면
"사당이 다시 빛난다" — 승리 상태, 사당 문 앞 엔진 내 실제 화면

필(feel) 먼저, 아트는 나중에

게임 전체는 아트가 존재하기 전 그레이박스 상태로 실행되고 클리어까지 완료되었다. 이동 레이어가 이 랩의 핵심 산출물이다: 정점에서 멈춤이 있는 비대칭 중력, 코요테 타임, 점프 버퍼링, 지면 고정 수직 앵커를 가진 방향 예측 카메라 — 각 상수는 FEEL_NOTES.md에 그 값을 유지하는 이유와 기각된 값들의 측정 결과와 함께 기록되었다. 자동화된 플레이어가 매 감사 라운드마다 처음부터 끝까지 모든 빌드를 클리어한다.

그레이박스 블록아웃
블록아웃: 그레이박스로 플레이되는 전체 레벨, 감각은 완성된 상태
FEEL_NOTES.md에서 — 랩의 연구 결과물
G_FALL 3800 = G_RISE의 1.8배. 동일한 122px 구간에서 상승 345ms 대 하강 299ms를 측정: 상승은 의도를, 하강은 무게감을 전달한다. 대칭값 2100/2100은 기각되었다 — 측정된 상승:하강 비율이 약 1.0이었고, 체공 시간이 35% 늘어나 "여우가 풍선처럼 떠 있었다."
코요테 90ms + 1프레임: 절벽 이탈은 프레임 '사이'에서 일어난다 — 보정되지 않은 윈도우는 프레임 한 개만큼 조용히 줄어들고, 저프레임률에서 이 기능은 죽어버린다. 눈이 아니라 측정으로 발견했다.
충돌 등급별 히트스톱 40/70/110ms — 이벤트의 중요도와 발생 빈도에 맞춰 조정. 균일한 80ms는 기각되었다: 등급 구분이 사라지고 잦은 상자 파괴가 템포를 늘어지게 만들었다.

블렌더 파이프라인, 스프라이트로 렌더링

여우는 복셀 융합 방식으로 블렌더에서 제작되었으며 — 렌더 샘플 팔레트 검사와 함께 컨셉 대비 다섯 라운드의 감사를 거쳤다 — 재타겟팅된 CMU 모션 캡처(측정된 엉덩이 속도로 선택된 포즈, 달리기 클립 09_02, 점프 16_01)로 리깅 및 구동되어 스프라이트 행으로 렌더링되었다. 재-스프라이트, 화로, 상자, 잉걸불, 사당 문, 타일, 그리고 세 겹의 시차 산악 레이어는 모두 조립형 블렌더 렌더링이다. 오디오는 플랫폼의 샘플링 악기 엔진이다: 잉걸불 궤적을 위한 첼레스타 음정 사다리, 화로를 위한 하프-호른 스웰, 몸통을 위한 발소리·충격 패밀리, 그리고 그 아래 절차적 밤바람.

출시된 스프라이트 행: 여우 달리기, 점프, 대기 동작; 재-스프라이트 부유 및 팝 동작
출시된 행: 모션 캡처 달리기 사이클 · 점프 상승/정점/하강 + 숨쉬기 대기 동작 · 재-스프라이트 부유 및 밟기-팝 동작

측정된 필(feel)

블록아웃은 자체 벤치마크 하네스를 함께 제공한다 (Playwright, 캔버스 렌더러, 원시 performance.now() 프레임 델타 — 이 랩의 감사 호스트에는 GPU가 없어서, 헤드리스 프레임 스로틀링과 엔진 델타 스무딩이 없다면 오히려 깨끗한 60을 위조하게 된다). 아래 수치는 그 공유 호스트의 조용한 부하 구간에서 측정된 것이며, 시뮬레이션 공간 거리는 부하 변화에 강건하다.

지표실측값조건
입력 → 점프 속도11–32ms (≤2프레임)DOM keydown 타임스탬프 → 속도 적용
코요테 윈도우50ms에서는 허용 · 160ms에서는 거부스크립트된 절벽 이탈 걷기, 90ms + 1프레임 윈도우
점프 버퍼착지 프레임 입력 후 43ms에 발동착지 90ms 전에 입력
가속 / 정지135ms 내 최대 속도의 95% 도달 · 17px에서 정지정지 상태에서 완전히 누름 / 최대 속도에서 뗌
점프 궤적전체 122px, 상승 345ms · 하강 299ms · 탭 39px길게 누름 대 70ms 탭 · 48px 타일
이벤트 피드백≤42ms, 모든 인터랙티브 이벤트예산 100ms; 동일 틱 내 시각적 반응
자동화 플레이스루화로 3/3, 18초 만에 승리, 오류 0건반응형 입력 봇, 데스크톱 · 확인 감사로 반복 실행
프레임 비용 (이번 감사 호스트)최고 평균 21.1ms · p95 32.7ms소프트웨어 캔버스, GPU 없음, 잔여 부하가 있는 공유 박스 — 실제 하드웨어에서는 WebGL 렌더러가 60fps로 동작
페이로드3.2MB · 66개 파일엔진 1.2MB + 아트 0.7MB + 샘플링 오디오 1.2MB

실제 엔진 기능, 그 자체로 입증됨

아케이드 물리, 상태 기반

월드 중력은 0이며, 오브젝트의 중력은 프레임마다 선택된다 — 상승, 정점 체공, 낙하 — 종단 속도 클램프와 함께.

수동 카메라 리그

지수 스무딩, 위치보다 느리게 재조준되는 방향 선행 시선, 비대칭 윈도우를 가진 지면 고정 수직 앵커, 감쇠하는 평행이동 전용 흔들림.

렌더텍스처 타일맵

각 플랫폼의 타일 그리드는 한 번만 렌더텍스처로 구워지며 — 소프트웨어 캔버스 바닥 위에서 프레임당 플랫폼 하나당 한 번의 드로우 콜.

스프라이트 애니메이션

모션 캡처 프레임 행; 달리기 속도는 지면 속도에 연동; 점프 포즈는 수직 속도로 선택; 인터럽트에 안전한 스쿼시 트윈.

곳곳의 파티클

달리기-미끄러짐 먼지, 중력을 받는 상자 파편, 재 튀김, 잉걸불 반짝임, 화로별 화염 루프 — 다섯 개의 정교하게 튜닝된 이미터.

샘플링 악기 오디오

플랫폼의 Web Audio 엔진: 엔벨로프 처리된 샘플링 보이스, 변주 지터, FX 센드, 첫 제스처 언락, 절차적 바람 앰비언스.

코요테 90ms + 1프레임버퍼 130ms 낙하 중력 1.8×정점 체공 |vy|<55 점프 컷 0.42히트스톱 40/70/110ms 흔들림 감쇠 11/s, 회전 없음선행 시선 96px 스쿼시 1.28/0.72 @ 70ms2단계 스톰프 바운스 첼레스타 잉걸불 래더모션 감소 0.2× 방향키 + WASD + 터치현지화 대응 문자열
BuildMidas Phaser Lab이 처음부터 끝까지 제작 — AI 에이전트가 컨셉 기획, 모델링, 모션캡처 애니메이션, 튜닝, 측정, 검증까지 모두 수행했습니다. 동일한 파이프라인이 AI 게임 빌더를 구동합니다.