---
title: "От первых аркад и «Змейки» до инди-хитов: история ключевых механик 2D-игр"
description: "Исторический и инженерный разбор базовых механик 2D-игр с 1972 года до наших дней: угол отскока в Pong, растущий хвост в Blockade и «Змейке», состояния врагов в Pac-Man и проверенный код угла отскока и целей привидений на JavaScript."
slug: istoriya-klyuchevyh-mehanik-2d-igr
date: 2026-10-29
updated: 2026-11-02
scheduled_at: "2026-10-29T19:00:00+03:00"
rubric: istoriya-2d-igr
tags: ["istoriya-igr", "zmejka", "mehaniki", "shkolnikam", "novichkam"]
reading_time: 9
draft: false
summary: "За полвека развития 2D-игр (с выхода аркады Pong в ноябре 1972 года и Blockade в октябре 1976 года) сформировались четыре базовые механики, на которых до сих пор строятся двухмерные хиты: управляемый угол отражения снаряда, динамическое препятствие из собственного следа («Змейка»), переключение состояний искусственного интеллекта врагов и нелинейное открытие карты через новые способности персонажа. Каждая из этих исторических механик описывается 3–5 правилами вида «событие → условие → действие»."
---

## Коротко

История 2D-игр — это последовательное изобретение компактных математических правил, каждое из которых решало задачу удержания внимания игрока при минимальных ресурсах оборудования. Четыре фундаментальные механики — управление углом отскока от ракетки (*Pong*, 1972; *Breakout*, 1976), превращение собственного роста в преграду (*Blockade*, 1976; *Snake*, 1997), детерминированные конечные автоматы поведения врагов (*Pac-Man*, 1980) и исследование связного мира с проверкой ключей и способностей (*Metroid*, 1986; *Castlevania: Symphony of the Night*, 1997) — по-прежнему составляют каркас современных 2D-проектов. В статье разобрано устройство каждой из этих механик с точными датами и формулами, а угол отскока и цели привидений *Pac-Man* показаны в проверенном коде на JavaScript.

## Содержание

1. 1972–1976: управляемый угол отскока и рождение аркадной физики (Pong и Breakout)
2. 1976–1997: феномен «Змейки» — как собственная длина становится главным врагом
3. 1980: четыре правила привидений в Pac-Man и рождение игрового ИИ
4. 1985–1997: от линейного скроллинга к связным мирам и замкам с ключами
5. Сравнительная таблица: какую историческую механику выбрать для первых трёх проектов
6. Практический сценарий: угол отскока и цели привидений в коде на JavaScript
7. Когда вам это не подойдёт

## 1972–1976: управляемый угол отскока и рождение аркадной физики (Pong и Breakout)

Первая коммерчески успешная аркада *Pong* (Atari, инженер Аллан Алькорн, выпуск в ноябре 1972 года) доказала, что для азартного геймплея достаточно одной поправки к школьному закону «угол падения равен углу отражения»: угол отскока мяча должен зависеть от того, на каком расстоянии от центра ракетки произошёл удар. Если бы ракетка отражала мяч как плоская стена (`vx_new = -vx`, `vy_new = vy`), траектория замкнулась бы в бесконечный предсказуемый цикл, и игрок не мог бы прицельно направлять удар.

Аллан Алькорн разделил высоту ракетки на сегменты (источник: интервью Аллана Алькорна в архиве *Computer History Museum*, `computerhistory.org`, и книга С. Кента *«The Ultimate History of Video Games»*, проверено: октябрь 2026). В современной 2D-реализации это правило записывается одной формулой через относительное смещение точки удара `d` в диапазоне `[-1, +1]` от центра ракетки высотой `L`:

```text
d     = clamp((y_ball - y_paddle) / (L / 2), -1, 1)
theta = d * 60°
vx    = S * cos(theta)
vy    = S * sin(theta)
```

В мае 1976 года (13 мая в Северной Америке) Atari выпустила *Breakout* (концепция Нолана Бушнелла и Стива Бристоу, аппаратный прототип Стива Возняка и Стива Джобса), где второй игрок был заменён на стену из 8 рядов кирпичей: каждый выбитый кирпич давал очки и одновременно открывал коридор в тыл стены, ускоряя темп раунда.

## 1976–1997: феномен «Змейки» — как собственная длина становится главным врагом

Механика «Змейки» (Snake) впервые появилась в октябре 1976 года в аркадном автомате *Blockade* компании Gremlin Industries (инженер Лейн Хаук), а в 1997 году инженер Танели Арманто встроил игру *Snake* в мобильный телефон Nokia 6110 (источник: каталог аркадных автоматов *The International Arcade Museum / KLOV*, запись *Blockade* 1976 года, и официальная историческая справка Nokia / интервью Танели Арманто, проверено: октябрь 2026).

Инженерная красота «Змейки» состоит в **самобалансирующейся петле риска и награды** без единого внешнего врага:
1. На старте поле из `20 × 15 = 300` клеток почти полностью свободно (длина змейки — `3` клетки, занято `1%` поля), и начинающему игроку легко освоить кнопки поворота.
2. Каждое собранное яблоко увеличивает счёт на `+1` и добавляет `1` сегмент к хвосту. При длине в `75` клеток змейка занимает уже `25%` игрового поля, превращая собственное тело в движущийся лабиринт.
3. Движение всей змейки из `N` сегментов за один шаговый такт таймера (например, каждые `150 мс`) не требует пересчёта всех `N` клеток: достаточно добавить одну новую клетку головы по вектору направления `(dx, dy)` и удалить последнюю клетку хвоста (если в этом такте не съедено яблоко).

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

## 1980: четыре правила привидений в Pac-Man и рождение игрового ИИ

Вышедшая в Японии 22 мая 1980 года аркада *Pac-Man* (Namco, геймдизайнер Тору Иватани) показала, как четыре врага на 8-битном процессоре Zilog Z80 с тактовой частотой `3,072 МГц` могут действовать как слаженная команда охотников за счёт четырёх разных правил выбора целевой клетки (источник: GDC-доклад Тору Иватани 2011 года *«Classic Game Postmortem: Pac-Man»* и технический разбор *The Pac-Man Dossier* Джейми Питтмана, проверено: октябрь 2026):

- **Blinky (красный — «Тень»):** выбирает в качестве цели текущую клетку игрока `(x_p, y_p)`, создавая прямое давление сзади.
- **Pinky (розовый — «Быстрый»):** целится на `4` клетки вперёд по направлению движения игрока, отрезая путь на перекрёстках.
- **Inky (голубой — «Застенчивый»):** берёт точку на `2` клетки впереди игрока и удваивает вектор от позиции красного Blinky до этой точки, зажимая героя в клещи.
- **Clyde (оранжевый — «Глупыш»):** когда расстояние до игрока больше `8` клеток по теореме Пифагора, преследует его как Blinky, а как только подходит ближе `8` клеток — сворачивает в свой левый нижний угол карты.

Кроме того, все четыре привидения синхронно переключаются по таймеру между тремя состояниями: **«Разбегание по углам»** (Scatter, `7 с`), **«Преследование»** (Chase, `20 с`) и **«Испуг»** (Frightened — синий цвет после съедания большой мигающей точки, когда охотник и жертва меняются ролями). Это классический конечный автомат (State Machine), который в любой современной 2D-игре реализуется одной переменной состояния врага.

## 1985–1997: от линейного скроллинга к связным мирам и замкам с ключами

После появления плавного горизонтального скроллинга и дизайна уровней «обучение без текста» в *Super Mario Bros.* (Nintendo, геймдизайнер Сигэру Миямото, 13 сентября 1985 года; в мире 1-1 первый гриб намеренно вылетает так, что в узком проходе игрок не может его перепрыгнуть и неизбежно узнаёт механику роста) 2D-игры освоили нелинейные карты. В *Metroid* (Nintendo, август 1986 года) и *Castlevania: Symphony of the Night* (Konami, март 1997 года, проверено: октябрь 2026) уровень перестал быть прямой полосой слева направо и превратился в граф комнат с условиями доступа.

На уровне логики движка «замок в метроидвании» — это обычное условие `ЕСЛИ` перед открытием двери или преодолением препятствия:
- Узкий проход: проверка наличия предмета `Ключ` (булева переменная `ЕстьКлюч == true` или `Ключи >= 1`);
- Высокий уступ в `192` пикселя (6 клеток): проверка открытой способности `ДвойнойПрыжокРазблокирован == true`.

## Сравнительная таблица: какую историческую механику выбрать для первых трёх проектов

Таблица помогает преподавателям кружков, школьникам (с 10 лет) и начинающим авторам выбрать посильную механику по числу объектов и правил.

Таблица: Лестница сложности базовых 2D-механик для учебных и инди-проектов

| Этап обучения | Исторический прототип (год) | Ключевая механика | Число типов объектов на сцене | Число правил «КОГДА → ЕСЛИ → СДЕЛАТЬ» | Что тренирует автор |
|---|---|---|---|---|---|
| 1-й проект (за 1 вечер) | *Blockade* (1976) / сбор предметов на арене | Движение по таймеру и сетке, сбор еды, счётчик очков | 3 (голова, хвост, еда) | 4–6 правил | Таймер, сетка, перекрытие объектов |
| 2-й проект (выходные) | *Pac-Man* (1980) | Лабиринт со стенами, патрулирование объекта `враг`, сбор `ключа` для открытия выхода | 5 (персонаж, стена, враг, ключ, выход) | 5–7 правил | Патруль по отрезку, булевы переменные (`КлючСобран`), перезапуск уровня |
| 3-й проект (1–2 недели) | *Super Mario Bros.* (1985) / *Metroid* (1986) | Многослойный платформер с гравитацией, `Coyote Time`, секретами и таймером | 7+ (с камерой, слоями и несколькими зонами) | 8–12 правил | Гравитация, Coyote Time, камера и параллакс, отладка |

## Практический сценарий: угол отскока и цели привидений в коде на JavaScript

Две исторические механики — угол отскока *Pong* и цели привидений *Pac-Man* — переносятся в современный код почти дословно: каждая занимает 5–15 строк на JavaScript. Код ниже проверен в Node.js 24; комментарии показывают его фактический вывод.

```js
// 1. Угол отскока от ракетки (Pong): чем дальше от центра удар, тем круче угол
function bounce(ballY, paddleY, paddleH, speed) {
  const d = Math.max(-1, Math.min(1, (ballY - paddleY) / (paddleH / 2)));
  const theta = d * 60 * Math.PI / 180;            // до ±60°
  return { vx: speed * Math.cos(theta), vy: speed * Math.sin(theta) };
}
const hit = bounce(130, 100, 64, 400);              // удар у нижнего края ракетки
console.log(Math.round(hit.vx), Math.round(hit.vy)); // 222 333

// 2. Целевые клетки привидений Pac-Man в режиме преследования
// player: { x, y, dx, dy } — клетка игрока и направление взгляда
function ghostTargets(player, blinky, clyde, scatterCorner) {
  const ahead = function (n) { return { x: player.x + player.dx * n, y: player.y + player.dy * n }; };
  const pivot = ahead(2);
  const dist = Math.hypot(clyde.x - player.x, clyde.y - player.y);
  return {
    blinky: { x: player.x, y: player.y },                       // прямо на игрока
    pinky: ahead(4),                                            // на 4 клетки вперёд
    inky: { x: 2 * pivot.x - blinky.x, y: 2 * pivot.y - blinky.y }, // удвоенный вектор от Blinky
    clyde: dist > 8 ? { x: player.x, y: player.y } : scatterCorner, // ближе 8 клеток — в свой угол
  };
}
const t = ghostTargets({ x: 10, y: 20, dx: 1, dy: 0 }, { x: 4, y: 14 }, { x: 12, y: 22 }, { x: 0, y: 34 });
console.log(JSON.stringify(t));
// {"blinky":{"x":10,"y":20},"pinky":{"x":14,"y":20},"inky":{"x":20,"y":26},"clyde":{"x":0,"y":34}}
```

Для проверки взята клетка игрока `(10, 20)` со взглядом вправо: Pinky целится в `(14, 20)`, Inky — в `(20, 26)`, а Clyde, оказавшись ближе `8` клеток, уходит в свой угол `(0, 34)`. Код упрощён: режимы «разбегание» (`7 с`) и «испуг» добавляются переменной состояния с таймером, как описано в разделе о *Pac-Man*.

## Когда вам это не подойдёт

Классические аркадные схемы подходят не для всех проектов.

- **Сложные тактические и ролевые системы с сотнями таблиц характеристик:** если в игре сотни видов экипировки, диалоговые деревья на десятки тысяч слов и поиск пути для `50` одновременных юнитов, простых аркадных правил (патруль по отрезку, таймер, счётчик) будет недостаточно.
- **Открытые пространства без сетки:** правила привидений рассчитаны на клетки и перекрёстки лабиринта; в свободном 2D-пространстве врагам нужен другой способ выбора направления, например рулевое поведение (steering) или навигационная сетка.
- **Сюжетные игры без аркадного риска:** визуальные новеллы и квесты строятся на диалогах и выборе, а не на углах отскока и таймерах, поэтому аркадные правила там избыточны.

---

Мы разрабатываем **J2DRU** — браузерный 2D игровой движок; он в разработке и публично пока не открыт, заявку можно оставить на [странице раннего доступа](/early-access?utm_source=blog&utm_medium=article&utm_campaign=istoriya-klyuchevyh-mehanik-2d-igr) (подача заявки не гарантирует приглашение).

**Читайте также:**
- [Тайловые сетки и устройство 2D-миров: от классики до современных редакторов уровней](/blog/tajlovye-setki-i-ustrojstvo-2d-mirov)
- [Идеальный прыжок и секрет Coyote Time: почему одни платформеры ощущаются отзывчивыми, а другие нет](/blog/idealnyj-pryzhok-i-sekret-coyote-time)
- [Эволюция 2D-камеры: от одного экрана Space Invaders и Defender до скроллинга Super Mario Bros. и The Legend of Zelda](/blog/evolyuciya-2d-kamery-ot-odnogo-ekrana-do-skrollinga)
