Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A 15-minute, 6-team game about presentation skills, built for the GSOE9010 Week 5 Presentation Skills (FC4) workshop. Players join on their phones; one projector screen runs the game. It is mostly team discussion: talk through a question or prepare a pitch, then decide together where to fly.
The route is 11–12 steps on every map and everyone moves at least 2 a round, so a group that keeps tapping GO always reaches the Stage by round 6. Groups that answer and pitch well arrive in round 4 or 5.
/ — landing page: join with a 4-letter code, or host/host — projector screen (lobby → game → results → debrief). Runs the game engine./play/CODE — phone controller/pack — everything for the Moodle upload as one PDF: cover, workshop plan, slides, facilitator guide, question bank, student handout/plan — the workshop plan for the whole hour (type your names and the two suggested activities straight onto the page)/slides — the slide deck for the hour (arrow keys to move, F for full screen)/student — printable one-page student guide (also saved as Spotlight-Isles-Student-Guide.pdf)/guide — printable facilitator guide, question bank and QR poster/dev/bots?count=40&code=CODE — bot simulator for rehearsalsDECISIONS.md explains the design choices. SPOTLIGHT_ISLES_BUILD_SPEC.md is the original, more complex design (version 1); the game was simplified after review, so where they differ, this README and DECISIONS.md are correct.
The game is the group's third, original activity. The task also asks for a 55–60 minute session with two suggested activities, and for uploaded materials worth 30% of the mark. The project covers those like this:
| The task asks for | Where it is |
|---|---|
| A workshop plan for the hour, with three balanced activities, an introduction and a conclusion | /plan page 1: 58 minutes (4 + 16 + 16 + 16 + 6) |
| Each activity with an introduction, a learning outcome, an interactive part and a summary | /plan pages 2–4 |
| Evidence of the two suggested activities and your modifications | /plan pages 2–3. You must type these in: they come from your Moodle instructions |
| A third original activity with innovative facilitation strategies | /plan page 4, the facilitator guide, the game itself |
| Evidence of research | /plan page 6. You must type in what you watched and read, and the source for each principle |
| Slides | /slides |
| Teamwork: every facilitator in every activity | The role table on /plan page 1 (editable); the game host changes every two rounds |
| One combined PDF, uploaded by 10am on the day | /pack → Print → Save as PDF |
Text you type on /plan or /slides is saved in that browser only and shared between the plan, the slides and the pack. Fill it in and print from the same computer and browser. Boxes still showing [square brackets] are highlighted, and the toolbar counts how many are left.
Two things to settle with your tutor beforehand: the rubric's top band for audience engagement says "no looking at phones", and this activity uses phones as its controller, so tell the tutor that phone use is part of the activity (Manual Mode runs it with no phones if needed). And check the course's rules on AI-assisted work before you submit.
You need two free accounts: Supabase (carries the live phone traffic) and Vercel (hosts the site).
https://xxxx.supabase.co)Only Supabase Realtime (Broadcast + Presence) is used. Nothing is stored.
Install Git if you don't have it, then in this folder:
git init
git add .
git commit -m "Spotlight Isles"
Create an empty repository on github.com and push to it (GitHub shows the two commands to copy).
vercel.com → Add New… → Project → import the GitHub repository. Vercel detects Next.js; leave the build settings alone.
Before deploying, open Environment Variables and add both:
| Name | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | your Project URL |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | your publishable key (sb_publishable_...). On older projects, NEXT_PUBLIC_SUPABASE_ANON_KEY with the anon key also works. |
Deploy. If you add or change the variables later, redeploy: they are baked in at build time.
No GitHub? Install Node.js, run npx vercel in this folder and follow the prompts, then add the two variables in the Vercel dashboard and run npx vercel --prod.
https://your-site.vercel.app/host on the projector laptop. The lobby must not show the amber "LOCAL MODE" warning. If it does, the environment variables are missing: add them and redeploy./host?speed=10 and, in another window, /dev/bots?count=40&code=CODE. The whole game plays in 90 seconds.Requires Node.js 20.9 or newer.
npm install
cp .env.example .env.local # then paste your two Supabase values (optional, see below)
npm run dev # http://localhost:3000
Without Supabase keys the game runs in local mode: tabs in the same browser talk to each other directly. That is enough to rehearse with bots, try the phone screens in another tab, and play in Manual Mode. Real phones need the keys.
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run build / npm start | Production build and server |
npm test | Engine unit tests (timeline = 900,000 ms, fair symmetric map, every rule, full-game simulations, colour-blind palette check) |
npm run smoke | End-to-end rehearsal in headless Edge: full game with 40 bots + a phone, host reload, Manual Mode (run npm run build first) |
/host during the Agenda so people join early. Click a team name to rename it to the real project-group name. Click a player's name to remove them.start time + fixed offset./host. It resumes in the right phase on the same clock, and phones reconnect by themselves./host?fx=low turns off bloom and water distortion. The game also does this by itself if the frame rate drops./host?fresh=1 discards a saved game and opens a new room.Print /guide?code=CODE (Print → Save as PDF, A4, margins none, background graphics on) for the facilitator guide, run sheet, question bank and QR poster.
For students, print /student the same way, or hand out the ready-made PDF at /Spotlight-Isles-Student-Guide.pdf. Opening /student?code=CODE (the lobby's "Student guide" link does this) adds a QR code for that room. If you change the rules, timings or topics, the /student page updates by itself, but the saved PDF does not: open /student, choose Print → Save as PDF, and replace the file in public/.
| To change | Edit |
|---|---|
| Region / criterion names (to match the official rubric) | config/rubric.ts |
| Team names, colours, emblems | config/teams.ts (run npm test: it checks the colours stay colour-blind safe) |
| Phase durations and round order | config/timeline.ts (a test fails if the total is not exactly 900 s) |
| Steps, points, map size, obstacles per island | config/balance.ts |
| Questions and explanations (check these against the course material) | content/questions.ts |
| Pitch topics and waiting-room tips | content/spotlight.ts |
lib/engine is plain TypeScript with no React or Pixi, so every rule is unit-tested.spotlight:CODE, using Broadcast for messages and Presence for who is connected. Vercel only serves static pages; there is no server code and no database.Only the nickname a player types is collected. There are no accounts and no tracking. Game state lives in the host's browser tab (with a local snapshot so a reload can resume) and nothing is stored on a server after the session.