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
Безплатна онлайн викторина на български: 10 въпроса на деня за цяла България, предизвикателства по линк, дуели и Роял. Без регистрация, без реклами.
Translation pending
GamesTypeScript · JavaScriptGitHub @almanac-bgOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
АЛМАНАХ ⚡ Куиз битки в реално време: дуели, Роял за 8 играчи, дневно предизвикателство и предизвикателства с линк. React, Node.js, Socket.IO, SQLite.
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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.