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

История и игра: Gorillas — скрытая игра MS‑DOS

9 min read Ретро игры Обновлено 21 Dec 2025
Gorillas: история и как играть в MS‑DOS
Gorillas: история и как играть в MS‑DOS

Изображение заставки MS-DOS игры Gorillas с двумя гориллами на небоскрёбах

Содержание

  • В чём простота и магия Gorillas
  • Как игра оказалась в MS‑DOS
  • Наследие и почему это важно
  • Как запустить Gorillas сегодня
  • Быстрый синтаксис и пример кода
  • Модели мышления для игры и разработки
  • Альтернативы и восстановление в других языках
  • Контрольный список для разных ролей
  • Часто возникающие вопросы

В чём простота и магия Gorillas

Gorillas — яркий пример «малого кода, большого эффекта». Это двухпользовательская игра, где каждый игрок по очереди вводит угол и силу броска для метания взрывных бананов с крыши небоскрёба. На траекторию влияет ветер и выбранное значение гравитации.

Ключевые свойства в одном предложении:

  • Простые правила: введите угол и силу — наблюдайте траекторию.
  • Параметры можно менять: скорость, гравитация, влияние ветра.
  • Исходный код открыт и редактируем в QBasic — учебный материал для начинающих.

Опыт игроков, знакомых с Scorched Earth или Worms, перекликается с Gorillas: та же базовая механика артиллерии, но в компактной и доступной форме.

Скриншот титульного экрана Microsoft Gorillas с меню и пиксельной графикой

Важно: Gorillas — это не только игра, но и демонстрация, как небольшой образец кода может стать образовательной платформой: дети могли открывать исходник, менять константы и видеть результат сразу.

Как игра оказалась в MS‑DOS

Коротко о вехах:

  • 1981 — появление PC‑DOS с IBM PC.
  • 1991 — выход MS‑DOS 5.0; Microsoft впервые серьёзно позиционирует DOS как розничный продукт.
  • В комплект MS‑DOS 5.0 добавили QBasic и четыре примера программ, чтобы помочь новым пользователям и начинающим программистам.

Компания хотела сделать MS‑DOS привлекательнее в розничной продаже: нужны были заметные функции и демо‑программы, которые покупатель мог бы оценить сразу. QBasic получил набор примеров: MONEY.BAS, REMLINE.BAS, NIBBLES.BAS и GORILLA.BAS.

Исходный код Gorillas был создан небольшой группой студентов из программы “co‑op” Microsoft: Ричард Мо (дизайн, музыка, графика), Лэнс Деларм и Лайл Хейзл (код механики и генерации городского пейзажа). Игра была переписана в QBasic из более ранних образцов артиллерийных игр, чтобы соответствовать лицензированию и правам Microsoft.

Обложка апгрейда MS-DOS 5 (1991)

Зачем именно гориллы? Разработчики сознательно отказались от танковых баталий по правовым причинам и искали «смешной» и непротиворечивый образ. Король‑Конг и гориллы выглядели уместнее, чем клоуны, кидающие пироги с крыш.

Наследие и почему это важно

Gorillas стала доступным входом в программирование для целого поколения. Причины влияния:

  • Исходный код был виден и редактируем — идеальный учебный материал.
  • Небольшой объём кода (примерно 1 134 строки) позволяет понять архитектуру простой игры целиком.
  • Распространение в составе MS‑DOS означало, что её видели миллионы пользователей по всему миру.

Истории: многие разработчики вспоминают Gorillas как первый пример, который «заинтересовал» их в коде; для некоторых это стала прямая дорога в индустрию игр.

Важно: игра распространялась с каждым пакетом MS‑DOS и многими версиями Windows до Windows 2000. Позже игры были убраны по мере смены платформ и перехода на новые версии ОС.

Скриншот Microsoft Nibbles — другой пример из комплекта QBasic

Как запустить Gorillas сегодня — пошагово

Варианты запуска, перечисленные по простоте:

  1. В браузере через Internet Archive (самый простой):

    • Откройте страницу с GORILLA.BAS на Internet Archive.
    • Нажмите кнопку питания в центре эмулятора. Эмулятор загрузит MS‑DOS и QBasic.
    • Чтобы запустить игру из кода, кликните по окну эмулятора и нажмите Shift+F5.
  2. Локально в DOSBox:

    • Установите DOSBox (доступен для Windows, macOS, Linux).
    • Смонтируйте папку с GORILLA.BAS как виртуальный диск и запустите QBASIC.EXE.
    • Запустите файл или отредактируйте и запустите программу.
  3. Перенос кода в современный интерпретатор или среду:

    • Портируйте логику в Python (Pygame), JavaScript (Canvas) или Swift; это хороший учебный проект.

Gorillas в эмуляторе на Internet Archive, показано окно QBasic с исходным кодом игры

Примечание: исходная игра не включает компьютер‑контролируемого игрока — только два человека за одной клавиатурой.

Быстрые шаги для игры

  • Запустите игру.
  • Введите имена игроков.
  • Установите количество очков для окончания партии.
  • При необходимости измените гравитацию (меньше — значит более длинная дуга полёта).
  • Нажмите P для начала. Игроки вводят угол (в градусах) и силу (единицы внутри игры).

Простейшая физика: как думает Gorillas

Gorillas использует классическую задачу баллистики для расчёта траектории с учётом ветра и гравитации. Здесь краткая математическая модель, полезная при портировании или настройке параметров:

  • Начальная скорость v (в «единицах игры»).
  • Угол запуска θ (в градусах); в формулах переводите в радианы: θ_rad = θ * π / 180.
  • Компоненты скорости: vx = v cos(θ_rad), vy = v sin(θ_rad).
  • С учётом ветра можно добавить постоянное ускорение ax (положительное — в сторону x): ax = wind * k (k — масштабный коэффициент).
  • Обычные уравнения движения по осям:
    • x(t) = x0 + vx t + 0.5 ax * t^2
    • y(t) = y0 + vy t - 0.5 g * t^2 (g — гравитация, положительная величина)

Критерий попадания — пересечение координаты бомбы с позицией гориллы (с учётом радиуса поражения).

Важно: в классическом QBasic и в оригинальной игре все параметры дискретизованы и масштабированы под экранную сетку; при портировании используйте нормализацию координат и шаг времени dt ≈ 0.02–0.05 с для гладкой анимации.

Пример настройки переменных в QBasic (фрагмент)

REM Пример изменения скорости и гравитации в GORILLA.BAS
SPEEDCONST = 3  ' уменьшает или увеличивает общую скорость игры
GRAVITY = 9.8   ' значение гравитации, можно менять: 1–20
WIND = -2       ' отрицательное значение дует влево

Этот псевдофрагмент демонстрирует, какие константы обычно встречаются и как их менять, чтобы поиграть с поведением снаряда.

Альтернативные подходы и порты

Если вы хотите поиграть, отладить или использовать идею Gorillas в учебных проектах, рассмотрите следующие варианты:

  • Переосмысление в JavaScript + Canvas: даёт мгновенную публикацию в браузере и простой обмен URL.
  • Порт в Python с Pygame: учебный проект для освоения событийной модели и отрисовки спрайтов.
  • Swift/SwiftUI: порт для iOS/macOS с сенсорным управлением.
  • Современные физические движки (Box2D) для более реалистичных столкновений и взаимодействий.

Контрпример/когда это не сработает:

  • Если цель — сложная многопользовательская сетевка — исходный дизайн слишком прост и потребует переработки сетевого стека.
  • Если необходима современная графика и звук — легче взять идею и переписать визуальный слой, чем пытаться адаптировать оригинальный код.

Ментальные модели и эвристики

  • «Модель траектории»: думайте в терминах vx и vy отдельно — горизонтальная скорость меняется медленно (ветер), вертикальная — постоянно уменьшается (гравитация).
  • «Сетчатая итерация»: при подборе угла начинайте с 45° и корректируйте по направлению и силе; при сильном ветре увеличивайте силу и компенсируйте угол.
  • «Изменяй одну переменную»: чтобы понять эффект гравитации или ветра, меняйте только одну константу за раз.

Контрольные списки по ролям

Для учителя, желающего использовать Gorillas в классе:

  • Убедиться, что у учащихся есть доступ к Internet Archive или DOSBox.
  • Подготовить лист с задачами: изменить гравитацию, добавить автоматический ветер, реализовать счетчик попаданий.
  • Провести мини‑лекцию по баллистике и показать пример расчёта.
  • Попросить студентов документировать свои изменения в версии программы.

Для ученика/студента, кто портирует игру:

  • Считать исходник GORILLA.BAS.
  • Выделить модули: ввод, физика, генерация городского пейзажа, отрисовка, звуки.
  • Выбрать целевую платформу и API отрисовки.
  • Написать единичные тесты для функции расчёта положения снаряда.

Для ретро‑геймера:

  • Попробовать Internet Archive для аутентичности.
  • Если нужно ускорение/замедление игры — использовать SPEEDCONST.
  • Сохранить любимые настройки гравитации и ветра отдельно.

Сценарий разработки: мини‑методология порта (шаги)

  1. Изучение: откройте GORILLA.BAS и найдите ключевые функции.
  2. Валидация: запустите оригинал в эмуляторе, зафиксируйте поведение по умолчанию.
  3. Абстрагирование: выделите уравнения движения и параметры (g, wind, speed).
  4. Рефакторинг: сделайте отдельные функции для расчёта траектории.
  5. Тестирование: напишите набор входных значений (угол, сила, ветер) и ожидаемые траектории.
  6. UI: сделайте удобный ввод и визуальную индикацию попадания.
  7. Оптимизация: сгладьте отрисовку и добавьте эффект взрыва и анимацию.

Совместимость, миграции и советы для локали

  • DOSBox работает на всех популярных платформах; рекомендован для локального запуска.
  • Internet Archive даёт мгновенный доступ без установки.
  • При портировании следите за масштабом пикселей и соотношением сторон: экран оригинала часто 4:3; современные экраны 16:9.

Риски:

  • При переносе точность расчётов может измениться из‑за иной частоты кадров и шага времени.
  • Неправильно масштабированные координаты приведут к «плавающим» или слишком коротким траекториям.

Примеры тестов и критерии приёмки

Критерии приёмки для порта:

  • Траектории при одних и тех же параметрах должны быть схожи на визуальном уровне.
  • Попадание детектируется корректно и стабильно.
  • Управление углом и силой интуитивно понятно.

Тест‑кейсы:

  • Угол 45°, сила 50, ветер 0: ожидается симметричная дуга, достигающая максимальной дальности при текущей скорости.
  • Ветер сильный вправо: увеличьте силу и уменьшите угол для попадания по дальним целям.

Часто возникающие вопросы

Q: Где найти оригинальный GORILLA.BAS? A: В дистрибутиве MS‑DOS 5.0 и в онлайн‑архивах вроде Internet Archive. Там можно запускать его в эмуляторе прямо в браузере.

Q: Можно ли добавить компьютерного соперника? A: Да — достаточно реализовать алгоритм поиска угла и силы (например, перебор/бинарный поиск по силе с учётом ветра).

Q: Почему игра отредактирована или удалена из поздних версий Windows? A: Смена платформ, обновления экосистемы и фокус на новых продуктах привели к исключению старых примеров из некоторых сборок.

Факты и числа (факт‑бокс)

  • Год появления в MS‑DOS: 1991 (версия 5.0).
  • Примерный размер исходного кода: ~1 134 строки.
  • Изначальный язык: QBasic (интерпретатор шёл в комплекте MS‑DOS).

Примеры кода и сниппет для портирования (псевдо‑Python)

# Псевдо‑функция для расчёта траектории в портированном проекте
import math

def trajectory(v, angle_deg, wind, g, dt=0.02, max_t=10):
    angle = math.radians(angle_deg)
    vx = v * math.cos(angle)
    vy = v * math.sin(angle)
    x, y = 0.0, 0.0
    ax = wind  # подберите масштаб для соответствия игре
    t = 0.0
    path = []
    while t < max_t and y >= 0:
        path.append((x, y))
        x += vx * dt + 0.5 * ax * dt * dt
        vy -= g * dt
        y += vy * dt
        vx += ax * dt
        t += dt
    return path

Этот пример иллюстрирует базовую идею и пригодится при портировании поведения игры.

Заключение

Gorillas — это значимый культурный и образовательный феномен эпохи MS‑DOS: простая механика, открытый исходный код и широкое распространение сделали её отправной точкой для многих будущих разработчиков. Сегодня легко запустить оригинал в эмуляторе, а идея — переосмыслить в современных языках — остаётся отличным учебным проектом.

Важно: если ваша цель — обучение, используйте исходник как демонстрацию принципов: ввод параметров, базовая физика, генерация уровней и работа со звуком.

Краткая сводка

  • Gorillas — двухпользовательская артиллерийская игра, поставлявшаяся с MS‑DOS 5.0.
  • Исходный код открыт, что сделало её учебной платформой для многих программистов.
  • Сегодня играть удобно через Internet Archive или DOSBox, а портирование — популярная задача для обучения.

Однострочный глоссарий

  • QBasic — интерпретатор BASIC, входивший в состав MS‑DOS 5.0; простой язык для обучения.
  • DOSBox — эмулятор DOS для современных ОС.
  • Траектория — путь полёта снаряда, определяемый скоростью, углом, ветром и гравитацией.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Отключить автосохранение Instagram и скачать посты
Руководство

Отключить автосохранение Instagram и скачать посты

Еженедельный планер в Canva: шаблон и инструкция
Продуктивность

Еженедельный планер в Canva: шаблон и инструкция

Проверка данных в Excel: выпадающие списки и правила
Excel

Проверка данных в Excel: выпадающие списки и правила

Включить подсветку клавиатуры на Windows и Mac
Настройка

Включить подсветку клавиатуры на Windows и Mac

Windows Update завис — что делать
Windows

Windows Update завис — что делать

Как в Instagram смотреть ленту только от подписок
Социальные сети

Как в Instagram смотреть ленту только от подписок