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문제 전국 참여, 링크 도전·듀얼·로열, 회원가입·광고 없음
Безплатна онлайн викторина на български: 10 въпроса на деня за цяла България, предизвикателства по линк, дуели и Роял. Без регистрация, без реклами.
게임TypeScript · JavaScriptGitHub @almanac-bg온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기АЛМАНАХ ⚡ Куиз битки в реално време: дуели, Роял за 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.