Underground 2 Revived
Chrome과 Firefox에서 Need for Speed Underground 2를 WebGPU로 두고 팬 프로젝트입니다
한 방, 작은 퍼즐 하나, 하나의 결말. 장면을 바꾸고 대사를 입력해 결과를 플레이합니다 스튜디오와 AI가 안내합니다
One room, one small puzzle, one ending. Start from a scene ready to change, write the lines and play the result. The Studio guides you; an AI assistant can help.
게임TypeScript · CSSGitHub @Quest-n-Click온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기The showcase website of quest'n'click, the open-source point-and-click engine
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The showcase website of Quest'n'Click, the open-source point-and-click engine for the browser: what it does, the demos to play, the changelog and the whole documentation, in English and in French. Live at quest-n-click.cleverapps.io.
Nothing of the engine is copied here. The site reads GitHub at run time:
CHANGELOG.md at the latest tag (/changelog);<!-- metric:… --> markers, "In numbers");quest-n-click-docs-<version>.tar.gz of the latest release, or its latest revision
(docs-v<version>-r<n>), rendered page by page in the site's own design with a search (/docs);quest-n-click-v<version>-web.tar.gz of the latest release that carries one (from 4.5.2), the game and
the Studio's demo built for the base path /demo/, checked against the release's SHA256SUMS and served at
/demo/ and /demo/studio.html. Until a release carries it, /demo/ says so and the Play page embeds GitHub Pages.A release of the engine is enough: the release workflow calls POST /api/revalidate and the site loads the new
archive without a redeploy. Once an hour the site also checks on its own.
npm install
QNC_DOCS_SOURCE=$(npm run -s docs:fetch) npm run dev # the archive downloaded once into .cache/, then offline
npm run build && npm start # production, on $PORT (8080 by default)
npm run test:e2e # Playwright, against `npm start`
Without QNC_DOCS_SOURCE the server resolves and downloads the archive itself at the first request for the docs.
| Variable | Role |
|---|---|
PORT | the port next start listens on (Clever Cloud sets 8080) |
SITE_URL | the public origin, for canonical URLs and Open Graph (default https://quest-n-click.cleverapps.io) |
GITHUB_TOKEN | optional, raises the GitHub API limit from 60 to 5000 requests an hour |
REVALIDATE_SECRET | the bearer token POST /api/revalidate expects |
QNC_DOCS_SOURCE | a directory holding an extracted documentation archive, instead of GitHub |
QNC_DOCS_CACHE | where downloaded archives are kept (default .cache/qnc-docs) |
QNC_DEMO_SOURCE | a directory holding an extracted web archive (the game built for /demo/), instead of GitHub |
QNC_DEMO_CACHE | where downloaded web archives are kept (default .cache/qnc-demo) |
QNC_DEMO_FALLBACK_URL, …_SHA256, …_VERSION | a web archive to serve while no release carries one (a release's always wins) |
Next.js 16 (App Router, React 19, TypeScript, Tailwind 4), served as a Node application on Clever Cloud.
app/[locale]/…: the pages; English at the root, French under /fr (proxy.ts rewrites the root to /en).lib/github.ts: the GitHub reads, memoised in memory for an hour, with the last good answer kept on a failure.lib/docs/: the documentation store (resolve.ts finds the archive, store.ts downloads, extracts and serves
it, markdown.ts renders the wiki's Markdown with its own markers: explicit anchors, applies: comments,
[!GUARANTEE], [!LIMIT] and [!MEASURE] blockquotes, generated regions).lib/demo/: the demo store (store.ts finds the latest web archive, downloads, checks and serves it) and the
route app/demo/[[...path]] that serves its files with the right types and caching.lib/changelog.ts: CHANGELOG.md parsed into versions and sections.messages/: the interface texts in both languages. content/: the gallery captions and the code excerpts.scripts/screenshots.mjs: screenshots of the main pages in both schemes and viewports.clever create --type node --org <org> quest-n-click-site
clever env set CC_NODE_DEV_DEPENDENCIES install
clever env set CC_POST_BUILD_HOOK "npm run build"
clever env set REVALIDATE_SECRET "$(openssl rand -hex 32)"
clever domain add quest-n-click.cleverapps.io
clever deploy
The engine repository holds the same secret as SITE_REVALIDATE_SECRET; its workflow site-revalidate.yml calls
the site after each published release.
MIT. The screenshots and the logo belong to the quest'n-click project (art under CC BY 4.0).