원문 캡처 · github.com
원문 캡처 · github.com

Stillplay는 지뢰찾기, 프리셀, 솔리테어, 스파이더 솔리테어, 하트를 브라우저에서 즐기는 게임 모음이다. 설치나 계정이 필요 없고, 한 번 방문하면 오프라인에서도 플레이할 수 있다. Stillplay에서 플레이하기 또는 GitHub 저장소를 이용하면 된다.

지뢰찾기는 초급·중급·전문가 난이도를 제공하며 첫 클릭은 항상 안전하다. 솔리테어는 한 장 또는 세 장 뽑기와 일반·베가스 점수 방식을 지원한다. 프리셀에는 유명한 #11982를 포함해 번호가 붙은 모든 게임이 들어 있다. 스파이더 솔리테어는 한·두·네 가지 무늬로 할 수 있고, 하트에서는 컴퓨터 상대 세 명과 대전한다.

카드를 끌어 옮기거나 화면을 눌러 선택·배치할 수 있고, 키보드 조작과 실행 취소도 지원한다. 게임마다 하루 동안 같은 판을 제공하는 일일 게임이 있으며, 기록과 연승은 브라우저에 저장된다. 각 게임은 휴대전화의 320픽셀 화면에도 맞춰져 있다. 제작자는 플레이 가능한 홈 화면까지 약 75KB이며 게임 규칙과 코드는 해당 게임을 열 때 불러오고, Lighthouse 네 항목에서 모두 100점을 받았다고 설명한다.

게임 규칙은 C로 작성해 웹어셈블리(WebAssembly)로 컴파일했으며, 사이트는 프레임워크와 번들러 없이 HTML, CSS, ES 모듈로 구성했다. 제작자가 밝힌 더 큰 목표는 원래 윈도우 XP 게임을 기능별로 재구성하고 결과를 바이트 단위로 대조하는 것이다. 하지만 그 작업은 아직 시작되지 않았다. 현재 게임은 원본이 아니라 기억 속 게임처럼 작동하도록 별도로 작성한 코드이며, 원본이라고 주장하지 않는다.

로컬에서 실행하려면 Node 24와 pnpm 11이 필요하다.

pnpm install --frozen-lockfile
pnpm dev --port 4179

이후 http://localhost:4179/를 연다. C 코어를 다시 빌드하려면 wasm32 대상과 wasm-ld를 지원하는 Clang이 필요하며, 프로젝트는 wasi-sdk를 예로 든다. 커밋된 WASM을 재사용하려면 pnpm build --no-cores를 사용할 수 있다.

저장소에는 같은 WASM 코어를 Node에서 실행하는 xpc 명령줄 도구도 포함돼 있다. 스크립트와 에이전트에서 게임을 실행하고 JSON을 출력할 수 있으며, 게임 상태는 기본적으로 .stillplay-state.json에 저장된다. 리플레이 형식은 문서에서 확인할 수 있다. 프로젝트는 MIT 라이선스이며, 마이크로소프트와 제휴하거나 승인을 받은 프로젝트가 아니다.