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
Аркадная доставка пиццы по Москве с физикой, трафиком и соперниками
Translation pending
AI summary · website and README
GamesJavaScript · CSSGitHub @ndrwbvOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
Аркадная доставка пиццы по настоящей Москве (район вокруг Ленинской Слободы из OpenStreetMap): заказы от «умного трекера», трафик по полосам, светофоры, пешеходы, погода и сутки, соперники-курьеры, гараж и находки. three.js, крупный пиксель, звук синтезируется, картинок-файлов нет — всё рисуется кодом. Выросла из внутренней заготовки lab/delivery дайджеста (копия как была — в original/, в сборку не идёт). Что поменяли, чтобы игру можно было выпустить, — docs/CONTENT.md.Read the full README ↗
Аркадная доставка пиццы: в Стиме — по закрытому городу Солнечному (КПП, забор, промзона; выдуманное имя, карта собрана из OpenStreetMap), на Яндексе — по настоящей Москве (район вокруг Ленинской Слободы из OpenStreetMap): заказы от «умного трекера», трафик по полосам, светофоры, пешеходы, погода и сутки, соперники-курьеры, гараж и находки. three.js, крупный пиксель, звук синтезируется, картинок-файлов нет — всё рисуется кодом.
Выросла из внутренней заготовки lab/delivery дайджеста (копия как была — в
original/, в сборку не идёт). Что поменяли, чтобы игру можно было выпустить, —
docs/CONTENT.md.
Куда идёт игра — цель, принципы, что добавлять, как проверять и почему не меняем движок — docs/DIRECTION.md. Проверка механик и планы редактора карты — docs/SANDBOX.md.
Одна игра, три бандла — отличаются только платформенным слоем (src/platform/).
Две версии контента: детская (Яндекс, всегда: без крови, алкоголя, табака) и
взрослая 18+ (Стим по умолчанию: кровь, пиво, курилка, биты; в настройках Стима
переключается). Флаг — ADULT в src/game/moscow.js, ?kids — детская для проверки.
| команда | что | куда |
|---|---|---|
npm run dev | локально, localStorage, реклама-заглушка | http://localhost:5190 |
npm run dev:yandex | как на Яндексе, с заглушкой SDK (src/platform/yandex-mock.js) | http://localhost:5191 |
npm run build:yandex | архив для консоли Яндекс Игр | release/yandex-<версия>.zip |
npm run electron | Стим-сборка в Электроне | окно |
npm run probe -- --js="return d.S.state" / npm run check | проверка из скрипта без окна (JSON, кадр по флагу) / общие проверки перед сдачей, ~1 мин | stdout, docs/AGENTS.md |
npm run dist:win / dist:deck / dist:mac | пакеты для SteamPipe | release/ |
| релиз: GitHub → Actions → «Релиз» → Run workflow | выбрать только patch / minor / major — номер (v0.0.8…) CI считает сам и пишет его в углу заставки | GitHub Releases (docs/STEAM.md) |
Сначала Яндекс Игры — docs/YANDEX.md (что сделать руками, чтобы залить)
и docs/YANDEX-AUDIT.md (сверка с требованиями). Что вписано в
карточку (тексты ru/en/es, категории, теги) — docs/STORE-LISTING.md,
скриншоты и видео одной командой npm run media — docs/MEDIA.md. Потом Стим —
docs/STEAM.md (Steamworks, депоты, геймпад, обновления для Deck).
Поставить. В десктоп-режиме открыть Konsole и вставить:
curl -fsSL https://raw.githubusercontent.com/ndrwbv/bird-delivery/main/tools/install-deck.sh | bash
Игра встанет в папку bird-pizza там, где запущена команда (Konsole открывается в домашней —
значит ~/bird-pizza). Появятся два ярлыка «Птица Пицца»: в меню приложений (раздел «Игры»,
или набрать «пицца» в поиске) и на рабочем столе. Запустить без ярлыка: ~/bird-pizza/bird-pizza.sh.
При самом первом запуске игра спросит язык; поменять потом — в настройках главного меню.
Обновить. Запустить игру ярлыком: через пару секунд выскочит «Вышла версия …» → «Обновить» —
игра закроется, скачает новую и запустится сама. Если окна нет — ещё раз вставить ту же команду
в Konsole, новая версия встанет поверх. Сохранения лежат отдельно (~/.config/BirdPizza),
обновление их не трогает. Само обновление предлагает только версия, поставленная этой командой:
если архив распаковали руками — поставить командой заново.
Играть из игрового режима (оверлей Steam, кнопки Steam и «…»). Добавить как стороннюю игру:
/home/deck/bird-pizza/bird-pizza.sh → Add Selected Programs.bird-pizza.sh).В игровом режиме она в Библиотеке на вкладке Non-Steam. Обновляться лучше в десктоп-режиме: окно «Вышла версия» в игровом может не показаться. После обновления ярлык в Steam заново добавлять не нужно — новая версия встаёт в ту же папку.
Поставить. Скачать установщик bird-pizza-setup.exe из
последнего релиза (прямая ссылка:
https://github.com/ndrwbv/bird-delivery/releases/latest/download/bird-pizza-setup.exe) и запустить.
Прав администратора не надо и вопросов он не задаёт: игра встанет в
%LOCALAPPDATA%\Programs\bird-pizza-delivery, появятся ярлыки «Птица Пицца» на рабочем столе
и в меню «Пуск», и игра сразу запустится.
Установщик не подписан, поэтому Windows может показать синее окно «Система Windows защитила ваш компьютер» — нажать Подробнее → Выполнить в любом случае. Браузер тоже может предупредить, что файл скачивают редко, — выбрать «Сохранить» («Всё равно сохранить»).
Обновить. Игра сама: через пару секунд после запуска выскочит «Вышла версия …» → «Обновить».
Новая версия скачается в фоне (полоска на значке в панели задач), потом игра закроется, на несколько
секунд появится окошко установки, и игра запустится снова. Если окна нет — скачать свежий
bird-pizza-setup.exe и запустить, он встанет поверх. Сохранения лежат отдельно
(%APPDATA%\BirdPizza), обновление и даже удаление игры их не трогает. Удалить игру — «Параметры →
Приложения → Птица Пицца → Удалить».
Без установки — распаковать bird-pizza-win.zip и запустить BirdPizza.exe (SmartScreen — так
же, «Подробнее» → «Выполнить в любом случае»). Такая папка сама не обновляется.
| путь | что |
|---|---|
src/main.js | вход: площадка → язык → игра |
src/game/moscow.js | вся игра |
src/game/city-data.js | город из OpenStreetMap (не править, не перегенерировать без нужды) |
src/game/people.js | генератор людей: внешность, лица, имена по языкам |
src/game/brands.js | пародийные вывески вместо чужих брендов |
src/game/mapcheck.js | проверка и починка карты при загрузке, ?mapcheck — отладка |
src/platform/ | web / yandex / steam: реклама, сохранения, таблица, пауза |
src/input/ | геймпад и навигация по меню с него |
src/i18n/ | переводы: ключ — русская строка, docs/I18N.md |
electron/ | оболочка для Стима и автообновление для Deck |
Отладка: window.__dlv — состояние игры; ?mute — без звука, ?nolb — не писать в
таблицу, ?lang=de — язык, ?mapcheck — отчёт о карте.
Данные карты — © участники OpenStreetMap, ODbL; рельеф — SRTM (NASA). Шрифты Press Start 2P —
SIL OFL (public/fonts/OFL.txt) и Rubik Mono One — SIL OFL (public/fonts/RubikMonoOne-OFL.txt).