Waystone

황혼의 산길에서 길을 표시할 만큼 높은 케언을 쌓는다. 이 스택에는 어떤 것도 조작된 것이 없다: 모든 돌은 Blender로 조각된 메시이며 자기 자신의 볼록 껍질(convex hull)이 그 콜라이더이고, 케언은 접촉 마찰, 질량, 관성에 따라 서거나 무너진다. 세 번째 돌마다 바람이 일어나며 — 넓고 평평한 슬래브는 이를 가볍게 견디지만 키 큰 기둥은 그렇지 못하다.

지금 플레이하기

방향키 / WASD로 케언 위에서 돌을 밀기 · Q / E로 돌리기 · 스페이스로 내려놓기 · P 일시정지 · M 모션 감소. 여덟 개의 돌이 서 있고, 세 개를 잃으면 빛이 꺼진다.

▶ 플레이

콘셉트가 곧 계약이다

이 작품을 제작하던 날 플랫폼의 컨셉 이미지 서비스는 크레딧이 소진되어 있었기에, 컨셉 팩은 대신 랩에서 직접 제작되었다: 최종 아트가 나오기 전에 렌더링된, 작품이 약속하는 모든 실루엣의 점토 마케트와, 헥스값을 가진 팔레트, 그리고 아트 단계가 충족해야 할 재질 및 조명 규칙이 함께한다. 이것은 여전히 하나의 계약이며 — 완성된 돌들이 실루엣 하나하나까지 대조 검증된 기준이다.

웨이스톤 컨셉 보드
직접 제작한 컨셉 보드: 점토 마케트, 팔레트 헥스값, 재질 및 조명 규칙
엔진에서 실행 중인 웨이스톤
실제 화강암과 실제 섀도우 맵 위에서 엔진에 실행 중인 동일한 케언

아트 이전의 회색 박스

전체 루프는 먼저 프리미티브로 실행되었습니다: 호이스트, 낙하, 정착 테스트, 바람, 돌 손실 규칙, 재시작. 2라운드에서 스크린샷만으로는 잡을 수 없었던 실제 버그가 발견되었습니다 — 돌풍이 placed % 3 테스트에서 발동했는데, 돌풍은 돌을 배치하지 않기 때문에 턴 루프가 같은 돌풍을 영원히 재발동시켰습니다. 또한 호이스트가 프레임 상단 밖으로 떠 있고 카메라가 너무 낮게 위치한 것도 드러났습니다. 이 세 가지 모두 돌 하나가 조형되기 전에 수정되었습니다.

블록아웃 프리미티브
블록아웃: 박스와 실린더로 표현된 받침대와 돌 — 물리는 이미 실제 물리다
아트가 입혀진 동일한 케언
Blender 화강암이 입혀진 동일한 케언

조각, 끌질, 베이크

각 웨이스톤은 겹쳐진 프리미티브들을 융합해 복셀 리메시한 뒤, 두 겹의 노이즈로 변위시키고 평면 데시메이션을 적용하여 표면이 뭉개지지 않고 끌로 깎은 듯한 면들로 갈라지도록 만든다. 그 고폴리곤 조각은 노멀, 앰비언트 오클루전, 베이스 컬러와 함께 저폴리곤 헐로 베이크되며, 지의류는 표면 법선에 게이팅된 노이즈 마스크로 구동되어, 위를 향한 면에서만 세이지와 러스트 색이 자라고 돌이 놓이는 면에는 결코 자라지 않는다.

웨이스톤 턴테이블, 각 4방향
여섯 개의 웨이스톤, 각 4방향, 베이크 직후

콜라이더가 곧 돌이다

박스 콜라이더가 달린 조형된 돌은 지름길이 아니라 결함 유형입니다: 스택이 플레이어가 볼 수 없는 형태 위에서 균형을 잡게 되기 때문입니다. 여기서는 모든 돌의 ConvexPolygonShape3D 이 로드 시 자체의 베이크된 메시로부터 생성되며, 엔진의 스택 계산 — 높이 판독, 호이스트의 정지 위치, 무게중심 기울기 — 모두 측정됨 Blender 빌드에서 산출된 하프 익스텐트 값을 사용하며, 게임에 직접 입력된 숫자가 아닙니다.

기울어진 케언
여섯 번째 돌까지 쌓여 기울어진 상태 — 수직 게이지가 실제 접촉 상태를 그대로 보여준다
돌풍
돌풍: 질량과 놓인 높이에 따라 스케일링된, 모든 돌에 가해지는 실제 임펄스

바람에 관한 게임인데, 바람 소리는 없다

이 작품이 제작되던 날 플랫폼은 루프되는 앰비언트 노이즈 베드를 금지했는데, 적대자가 날씨인 게임에는 곤란한 규칙이다. 그래서 여기서 바람은 결코 녹음이 아니다: 돌풍은 작곡되었으며 — 트레몰로 현악 스웰이 팀파니와 호른 히트로 해소되고 — 이는 시각적으로도 표현된다, 옆으로 날리는 풀과 흙, 그리고 HUD의 방향 화살표로. 황혼의 분위기는 하프 프레이즈 아래 느린 콘트라베이스와 비올라 드론이다. 다른 모든 소리는 플레이어가 방금 유발한 이벤트다.

정직하게 측정됨

이 호스트의 소프트웨어 렌더러에서 Playwright로 감사됨 — GPU 없음, 그리고 다른 네 개 랩의 Blender 작업이 동시에 돌고 있는 머신. 아래 프레임 레이트는 최저치다.

측정
익스포트 페이로드 (pck)6.41 MB
엔진 런타임 (wasm, 고정)33.7 MB
페이로드 내 제작된 아트11.48 MB
오디오 스템0.45 MB
블록아웃 라운드6회 - r2는 영원히 재발동되는 돌풍에 걸렸고; r5는 50분 동안 104번의 완전한 밤을 플레이했으며 매번 5번째 돌에서 무너졌다
아트 감사 라운드9회 - r8은 통과, r9는 확인용
웨이스톤 조형 및 베이크6개, 각각 하이폴리에서 로우폴리 헐로 (201-443 트라이)
콜라이더 소스모든 돌 헐은 로드 시 자신만의 베이크된 메시로부터 생성됨
셀프테스트 플레이스루8/8 돌, 2개 손실, 1.44m, t=408초에 승리
감사 중 게임 시간 대 실시간~85% - 이 작업물은 렌더링 부하가 걸린 적이 없음
사용된 모션 캡처 클립없음 - 이 작업물에는 캐릭터가 없음 (P5 해당 없음)

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

RigidBody3D 쌓기

실제 질량, 마찰력 0.92, 연속 충돌을 가진 여섯 종류의 돌. 케언은 스크립트가 아니라 접촉에 의해 지탱됩니다.

아트로부터 나온 컨벡스 헐

모든 콜라이더는 로드 시 돌 자체의 베이크된 메시로부터 생성됩니다 — 보이는 형태가 곧 균형을 잡는 형태입니다.

실시간 섀도우 맵

서쪽에서 비추는 차가운 DirectionalLight3D 하나가 바위 위로 케언의 그림자를 드리웁니다: 그림자를 보면 기울기를 읽을 수 있습니다.

적대자로서의 물리 연산

돌풍은 질량에 비례한 임펄스와 각 돌에 가해지는 토크로, 높이에 따라 가중치가 붙습니다 — 당신이 자랑스러워했던 그 높은 기둥이 바로 무너지는 것입니다.

트라이메시 세트 드레싱

선반과 받침대는 각자의 Blender 메시로 충돌하므로, 미끄러져 떨어진 돌은 그려진 그대로의 바위 위에 안착합니다.

GPUParticles3D

착지할 때마다 먼지가 피어오르고, 마른 풀과 자갈이 돌풍 속에서 옆으로 흩날립니다.

튜닝된 상수값

호이스트는 스택 위 0.52m에서 정지 비행 gravity_scale 0.55 — "내려놓기"이지 "떨어뜨리기"가 아님 마찰력 0.98, 반발력 0, 각속도 감쇠 0.75 조준 범위는 중심에서 0.46m로 제한 1.42m 밖으로 나가거나 받침대 상단 아래로 내려가면 손실 정착: 0.13m/s 및 0.42rad/s를 0.38초 동안 유지 정착 타임아웃 5초 — 흔들림이 턴을 멈추게 하지 않음 3번째 돌마다 돌풍, 1.2초 예고 돌풍 임펄스 = 질량 × 0.62 × 높이 계수 기울기 = 무게중심 이동 / 0.55m 8개의 돌로 승리, 3개 손실로 실패 그림자 최대 거리 16m, 바이어스 0.04 키 라이트 0.85 + 앰비언트 0.38 — 약 1.4를 넘으면 화강암이 하얗게 뜸 max_physics_steps_per_frame 30