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
플레이어가 같은 비밀 위치를 받고, 스파이가 섞여 위치를 추리하는 다인용 사회 추리 게임
Multiplayer social deduction spy game where players receive the same secret location from 500 places while undercover spies attempt to blend in and deduce the location.
게임PHP · TypeScriptGitHub @poedgar온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기spy on node and react
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Party games for friends, on the web and on phones: Spy (everyone knows
the location except the spies) and Phrase (everyone holds one word of a
famous phrase). English and Ukrainian.
Details live in each app's README: laravel-app/README.md
(game rules, API, realtime, notifications) and
expo-app/README.md / expo-app/RELEASE.md.
1. php artisan migrate --force — the app fails with "relation does not
exist" errors if this is skipped.
2. Build the front end after setting the VITE_PUSHER_* variables (they
are baked in at build time).README 전문 보기 ↗Next games:
Party games for friends, on the web and on phones: Spy (everyone knows the location except the spies), Phrase (everyone holds one word of a famous phrase), Sing It Out / Доспівай (everyone hears the same clip, sings how it goes on in turns, then votes for the best), Finish the Phrase / Продовж фразу (everyone writes an ending to the same beginning, then votes for the best without names) and Interpret the Phrase / Розтлумач фразу (everyone explains the same idiom, votes for the best explanation, then sees the real meaning) and Name the Emotion / Вгадай емоцію (everyone names the emotion on the same face, at three levels) and Meme It / Зроби мем (everyone captions the same funny picture, then votes for the best meme without names). English and Ukrainian.
Name the Emotion's faces are the UIBVFED set (M. Mascaró Oliver, E. Amengual
Alcover, Universitat de les Illes Balears, PLOS ONE 2020, CC BY): virtual
people whose expressions are built from the Facial Action Coding System. They
ship in laravel-app/public/emotions; the game credits them wherever they
appear, and players' answers re-sort them into levels by measured hit rate.
Meme It's starter pictures are animal photos from Wikimedia Commons, each
public domain, CC0 or CC BY (no share-alike, since a caption on top can count
as an adaptation). They ship in laravel-app/public/memes; each one's author
and licence are shown under the picture. Admins can add more by link under
Admin → Written games.
| Folder | What it is |
|---|---|
laravel-app/ | The main app: Laravel + Inertia/Vue web client, and the JSON API for mobile. |
expo-app/ | The iOS/Android app (Expo, React Native), built on the Laravel API. |
| repo root | The original React/Firebase prototype, kept as it was. |
Details live in each app's README: laravel-app/README.md
(game rules, API, realtime, notifications) and
expo-app/README.md / expo-app/RELEASE.md.
# Web app + API
cd laravel-app
composer setup # install, .env, key, migrate, build
composer dev # server, queue worker, Vite
# Mobile app (needs the API running)
cd expo-app
npm install
npx expo start
Every deploy:
php artisan migrate --force — the app fails with "relation does not
exist" errors if this is skipped.VITE_PUSHER_* variables (they
are baked in at build time).Once, on the server:
php artisan queue:work): live notifications, pushes and
emails are queued. The in-app bell works without it.php artisan schedule:work, or cron running
php artisan schedule:run every minute): prunes old notifications, stale
games and expired mobile sign-ins daily.PUSHER_APP_*), or a self-hosted
Pusher-compatible server via PUSHER_HOST/PORT/SCHEME. Without it the apps
still work, refreshing every few seconds instead of instantly.MAIL_*): invitation emails, password resets, email
verification.APP_NAME="Marvelous Games", and SANCTUM_TOKEN_EXPIRATION if mobile sign-ins
should last other than 90 days.GitHub Actions run per app on changes to it: Laravel tests, PHPStan and Pint
(laravel-app-tests.yml), the Laravel Cypress suite
(laravel-app-cypress.yml), the mobile typecheck, lint, Jest and Expo doctor
(expo-app.yml), and the prototype's Cypress suite (cypress.yml).
All done: Ukrainian, notifications, invited players showing up without a reload, a minimum (3) as the default table size, asking to join, and joining without an invitation (open games and join requests).
_
Your side (needs your accounts or servers):
Production deploy: run the migration, start the scheduler and queue worker, configure mail and set APP_NAME, as listed before. Change the Neon database password. The old host was public in the README, and git history still has it. Pick a real bundle id (for example com.yourname.spynet), set APP_BUNDLE_ID, and do a first EAS build. Push notifications only work in a real build, not the simulator, so test them on a phone. Worth doing next (I can do these): 4. Android check. Only iOS has been run with Maestro. Running the flows on an Android emulator would test the push channel fix and the keyboard behaviour there. 5. Flow 02 (join and invite) needs two accounts. I can make it create its own second user through the API so it runs on its own, then add the Maestro flows to CI. 6. Delete the merged branches (lobby-improvements, open-games, notifications, phrase-game, spy-rounds-and-ukrainian, ukrainian-gaps, polish) locally and on GitHub. They're all merged into main. 7. Error monitoring (Sentry or similar) for both apps, so production crashes reach you.
Bigger product ideas, if you want them: 8. A third game for the "Coming Soon" tile. 9. Play stats per player (games played, wins as spy, phrases guessed). 10. Rematch with the same players in one tap after a game ends.
I'd start with 4–6. Tell me which ones to do.