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 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证АЛМАНАХ ⚡ Куиз битки в реално време: дуели, Роял за 8 играчи, дневно предизвикателство и предизвикателства с линк. React, Node.js, Socket.IO, SQLite.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Куиз битки в реално време за много играчи: играй на almanac.bg. Тук е пълният изходен код на играта, свободен софтуер под AGPL-3.0.
Какво има:
Нужен е Node 24+. Играта ползва вградения node:sqlite, така че няма база данни за инсталиране.
npm install
npm run dev
Отвори http://localhost:5173, регистрирай профил и играй. При разработка първият профил, който регистрираш, става администратор, за да може да одобрява въпроси от общността. В продукция никой не става администратор с регистрация; виж стъпка 7 от Внедряване.
Истинската банка с въпроси на играта (над 3000 въпроса) не е част от публичния код, за да не могат отговорите да се
търсят по време на мач. Без нея се играе с примерните 120 въпроса от apps/server/src/data/questions.sample.json —
публична извадка от истинската банка, която стига за разработка и за всички тестове. Виж Въпроси.
Когато никой друг не чака за мач, след няколко секунди ботове заемат празните места, така че всеки режим може да се играе и без други хора. За да тестваш истински мултиплейър локално, отвори втори браузър (или частен прозорец) с друг профил.
| Скрипт | Какво прави |
|---|---|
npm run dev | API + realtime сървър на :3001 и Vite на :5173 (през proxy) |
npm run build | Билдва уеб приложението и пакетира сървъра в apps/server/dist |
npm start | Продукционен сървър на :3001 (чист Node), който сервира и уеб приложението |
npm run typecheck | Проверява типовете във всички пакети |
npm test | Всички тестове (около минута и половина), виж Тестове |
npm run lint | Форматиране, правила и подредба на импортите (Biome), както в CI |
npm run format | Поправя автоматично каквото може от горното |
npm test пуска тестовете на сървъра (истински сървър с временна база данни и истински сокети, енджинът на мача с
подменен часовник, наградите, правилата, банката с въпроси, внедряването и връщането назад) и на клиента, и после
проверява как SQLite изпълнява всяка заявка, която сървърът е пуснал. npm run test:browser билдва и минава през
играта в истински браузър (Chrome; WebKit и Firefox с E2E_ENGINES). GitHub Actions пуска всичко това при всеки push
към main и всеки pull request — браузърните тестове и в трите енджина. Подробно: docs/testing.md.
packages/shared Правила и каталог, общи за клиента и сървъра: режими, крива на нивата, сезони,
козметика, козове, постижения, типове за сокетите и REST
apps/server Express + Socket.IO + SQLite
src/game/Game.ts Енджинът на мача, изцяло на сървъра (таймери, точки, отбори, козове, отпадане, ботове)
src/game/matchmaking.ts Опашки за бърз мач, попълване с ботове и балансиране на отборите
src/game/rooms.ts Частни стаи (6-цифрени кодове, линкове /join/123456, отбори, покани към приятели)
src/game/rewards.ts Записва мачовете: XP, статистика, сезонно Elo, дневни резултати, постижения
src/seasons.ts Месечни сезони: частично нулиране, награди в края на сезона (изчисляват се при нужда)
src/daily.ts Въпросите на деня: един набор на ден (от seed), един опит, линкове към деня
src/skill.ts Колко труден е всеки въпрос и колко силен всеки играч, мерено по отговорите (като Elo)
src/runs.ts Всеки изигран мач въпрос по въпрос (пази се година): за съперници-записи и анализ
src/friends.ts Покани за приятелство и кой е онлайн
src/submissions.ts Въпроси от общността и модерация
src/data/questions.sample.json Публична извадка от банката с въпроси (истинската е частна, в private/)
test/ Тестовете на сървъра (docs/testing.md)
packages/client Ядрото на клиента: API заявки, състояние на играта в реално време (zustand), форматиране.
Сайтът добавя звуците си; отделено е, за да могат и други клиенти да го ползват
apps/web React 19 + Vite + Tailwind 4 + Motion
e2e/ Браузърните тестове (Playwright)
deploy/ Caddyfile (HTTPS и страницата при обновяване) и litestream.yml (бекъпите)
scripts/ github-setup.sh: настройките на хранилището в GitHub
Issues и pull request-и са добре дошли: виж CONTRIBUTING.md. Проблеми със сигурността съобщавай поверително, както е описано в SECURITY.md.
Кодът е свободен софтуер под GNU Affero General Public License v3.0 или по-нова версия (LICENSE).
Можеш да го стартираш, изучаваш, променяш и разпространяваш. Ако пуснеш променена версия като публичен уебсайт,
потребителите ѝ трябва да могат да получат изходния ти код: линкът „Изходен код“ във футъра (SOURCE_URL) е точно за
това.
Лицензът не обхваща:
packages/shared/src/brand.ts, иконите в apps/web/public).Чуждото в хранилището е под собствените си лицензи: шрифтовете Onest и Unbounded — SIL Open Font License
(apps/web/src/fonts), а картинките на играта (аватари, категории, козове, постижения) — Fluent Emoji на Microsoft, MIT
(apps/web/src/emoji/LICENSE).
ALMANAC (АЛМАНАХ) is a real-time multiplayer quiz game in Bulgarian, live at almanac.bg: solo practice, the questions of the day, ranked duels in rounds with a closest-number final, 2-on-2 teams, arenas of 3–5, an 8-player battle royale with knockouts, an evening royale for up to 50, private rooms and classrooms with a host screen, friend duels, groups with weekly boards, and a fact after each answer that players collect.
It's a TypeScript monorepo: an Express + Socket.IO server on Node's built-in SQLite (apps/server), a React 19 +
Vite + Tailwind web app (apps/web), and the rules and protocol shared by both (packages/shared). Every match runs on
the server. Production is a single Docker host behind Caddy, with continuous Litestream backups; CI tests every commit
(server, client, and browser tests in Chrome, WebKit and Firefox) and publishes the image that gets deployed.
Run it with Node 24+: npm install && npm run dev, then open http://localhost:5173. The real question bank is private
(answers shouldn't be searchable mid-match); a public sample of 120 questions ships with the code. The code is free
software under the AGPL-3.0; the name, logo and domain are not part of the licence. The documentation is in
Bulgarian; issues and pull requests in English are welcome.