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,即可验证所有权并自行管理介绍。
一分钟完成验证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.