Классические текстовые игры в Linux: BSD, Tetris и другие
Зачем это нужно
Текстовые игры возвращают простоту и ностальгический геймплей. Это полезно для: быстрой разрядки в терминале, обучения работе с ncurses и проверки настроек консоли. Терминальные игры потребляют мало ресурсов и запускаются даже на удалённых серверах.
Краткая справка
ncurses — библиотека для создания текстовых интерфейсов в терминале. BSD games — набор классических текстовых игр, распространявшийся с BSD Unix.
Установка на Ubuntu — быстрый старт
Важно: команды ниже предназначены для Ubuntu (и производных). Перед выполнением обновите списки пакетов.
sudo apt update
sudo apt install bsdgamesПосле установки вы получите коллекцию из 43 игр, среди которых: random, gomoku, caesar, countmail, rot13, bcd, atc, number, boggle, quiz, morse, teachgammon, snake, snscore, pig, wargames, tetris-bsd, adventure, arithmetic, worms, hunt, canfield, battlestar, rain, robots, cribbage, dab, sail, wump, trek, phantasia, wtf, go-fish, monop, backgammon, worm, hack, ppt, primes, hangman, pom, cfscores и mille.
Важно: названия команд совпадают с именами игр. Запускайте из терминала по имени игры, например:
adventureПопулярные игры и как их запускать
Tetris в терминале (tetris-bsd)
Классическая реализация Tetris для терминала.

Запуск (после установки bsdgames):
tetris-bsdBastet — улучшенный Tetris для терминала
Bastet даёт более соревновательный опыт и умнее подбирает фигуры.
sudo apt install bastet
bastet
Space Invaders — ninvaders
Клон Space Invaders на ncurses.
sudo apt install ninvaders
ninvaders
Moon-buggy — раннер на луне
Движение по поверхности Луны с прыжками через кратеры.
sudo apt install moon-buggy
moonbuggy
2048 — текстовая версия (сборка из исходников)
Текстовая версия 2048 нужно собрать из исходников. Это хороший пример, если вы хотите практиковаться в gcc.
Соберите в текущей директории:
wget https://raw.githubusercontent.com/mevdschee/2048.c/master/2048.c
gcc -o 2048 2048.c
./2048Совет: если не установлен gcc, установите его через sudo apt install build-essential.
Советы для других дистрибутивов и платформ
- Debian/Ubuntu-подобные: используйте apt/apt-get. Пакеты обычно те же.
- Fedora/RHEL/CentOS: ищите пакеты в dnf/yum или собирайте из исходников.
- Arch Linux: пакеты часто есть в AUR (например, bastet, ninvaders).
- macOS: многие проекты можно установить через Homebrew (
brew install ninvadersили собрать из исходников). - Windows: используйте WSL (Windows Subsystem for Linux) или Cygwin для запуска терминальных игр.
Важно: в контейнерах и минимальных образах могут отсутствовать терминальные возможности. Убедитесь, что переменная TERM установлена и поддерживает ncurses.
Когда это не подходит (ограничения)
- Если вы хотите графику и аудио — текстовые игры не заменят современные 3D-игры.
- На очень маленьких терминалах (меньше 80×24) расположение элементов может ломаться.
- На удалённых сессиях с медленным вводом чувствительность управления может быть неудобной.
Альтернативные подходы и расширения
- Запуск через tmux/screen для фоновой игры и восстановления сессии.
- Перенос окон в GUI-терминалы (GNOME Terminal, Alacritty) для масштабирования и улучшенной поддержкой шрифтов.
- Использовать эмуляторы физических контроллеров через клавиатурные макросы.
Чек-листы: для игрока и для администратора
Для игрока (быстрый запуск)
- [ ] Обновить пакеты:
sudo apt update - [ ] Установить игру:
sudo apt install ninvaders(пример) - Проверить размеры терминала (рекомендуется 80×24 и выше)
- Запустить игру по имени
Для администратора (развёртывание на сервере/в контейнере)
- Установить зависимости (ncurses, gcc, build-essential)
- Проверить локальные политики безопасности (ограничение shell)
- Настроить tmux/screen для восстановления сессии
- Документировать список установленных пакетов и версии
Мини-методология: собрать и запустить пользовательскую текстовую игру
- Скачайте исходники (wget/git).
- Прочитайте README — там часто есть требования и опции сборки.
- Установите зависимости: ncurses, build-essential и т.д.
- Соберите (
make/gcc) и запустите. Тестируйте в разных терминалах.
Небольшая таблица совместимости (универсальные советы)
- ncurses: ключ для текстовых интерфейсов.
- TERM: убедитесь, что переменная TERM корректна (xterm-256color и т. п.).
- Шрифты: моноширинный шрифт улучшает читаемость.
Краткий словарь (1 строка каждый)
- ncurses — библиотека для текстовых пользовательских интерфейсов.
- BSD games — набор классических текстовых игр, входивший в BSD Unix.
- WSL — подсистема Windows для запуска Linux.
Примеры, когда это полезно (edge cases)
- Работа в SSH-сессии с коллегой и хотите короткую игру на перерыве.
- Демонстрация возможностей ncurses на лекции по системному программированию.
- Ностальгия или желание играть в старые жанры без установки GUI-игр.
Критерии приёмки
- Игра запускается в терминале без ошибок.
- Элементы интерфейса корректно отображаются при размере терминала ≥ 80×24.
- Управление отзывчиво и без значительной задержки на локальной машине.
Часто задаваемые вопросы
Q: Можно ли установить эти игры без прав root? A: Некоторые игры можно собрать и запускать в домашней директории. Установка пакетов в систему потребует прав администратора.
Q: Где найти дополнительные текстовые игры? A: На GitHub и в репозиториях дистрибутивов. Поисковые запросы: “terminal games”, “ncurses games”.
Заключение
Текстовые игры — лёгкий и полезный способ развлекаться и изучать терминал. Набор BSD games, bastet, ninvaders, moon-buggy и текстовый 2048 покрывают разные жанры: аркаду, раннеры и головоломки. Если вы хотите больше — ищите проекты на GitHub или собирайте старые игры из исходников.
Важно: поделитесь в комментариях вашими любимыми текстовыми играми и советами по их запуску.
Краткое резюме:
- Установите bsdgames или отдельные пакеты через пакетный менеджер.
- Для сборки из исходников используйте gcc; не забудьте зависимости.
- Проверяйте совместимость терминала и используйте tmux/screen для удобства.
Похожие материалы
Как компактировать диск VMware и освободить место
Winepak: запуск Windows‑игр на Linux через Flatpak
Как настроить iCloud Photos на любом устройстве
Как посмотреть время игры на Nintendo Switch
docker sbom: генерировать SBOM для Docker-образов