Гид по технологиям

Классические текстовые игры в Linux: BSD, Tetris и другие

5 min read Linux игры Обновлено 18 Nov 2025
Текстовые игры в Linux: BSD, Tetris и другие
Текстовые игры в 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 для терминала.

Tetris в терминале

Запуск (после установки bsdgames):

tetris-bsd

Bastet — улучшенный Tetris для терминала

Bastet даёт более соревновательный опыт и умнее подбирает фигуры.

sudo apt install bastet
bastet

Bastet — продвинутый Tetris в терминале

Space Invaders — ninvaders

Клон Space Invaders на ncurses.

sudo apt install ninvaders
ninvaders

Ninvaders — текстовый Space Invaders

Moon-buggy — раннер на луне

Движение по поверхности Луны с прыжками через кратеры.

sudo apt install moon-buggy
moonbuggy

Moon-buggy — джампер в терминале

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 для восстановления сессии
  • Документировать список установленных пакетов и версии

Мини-методология: собрать и запустить пользовательскую текстовую игру

  1. Скачайте исходники (wget/git).
  2. Прочитайте README — там часто есть требования и опции сборки.
  3. Установите зависимости: ncurses, build-essential и т.д.
  4. Соберите (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 для удобства.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как компактировать диск VMware и освободить место
Виртуализация

Как компактировать диск VMware и освободить место

Winepak: запуск Windows‑игр на Linux через Flatpak
Linux

Winepak: запуск Windows‑игр на Linux через Flatpak

Как настроить iCloud Photos на любом устройстве
Технологии

Как настроить iCloud Photos на любом устройстве

Как посмотреть время игры на Nintendo Switch
Guides

Как посмотреть время игры на Nintendo Switch

docker sbom: генерировать SBOM для Docker-образов
DevOps

docker sbom: генерировать SBOM для Docker-образов

Псевдонимы Skiff Mail — создать и удалить
Электронная почта

Псевдонимы Skiff Mail — создать и удалить