От Breakout (1976) до Arkanoid (1986): как ускорение мяча, прочные блоки и капсулы превратили отскок в глубокую игру

Коротко

Breakout (Atari, 13 мая 1976 года) сделал из Pong игру для одного человека и заложил три рычага сложности: ускорение мяча по счётчику ударов, укорачивание ракетки и более ценные верхние ряды. Arkanoid (Taito, июль 1986 года) через десять лет добавил прочные и неразрушимые блоки, капсулы-бонусы и 33 разные раскладки с боссом. Ниже — точные правила обеих игр, что из них следует для геймдизайна, шаблон типов блоков и код на JavaScript, который повторяет эти правила в своей игре.

Содержание

  1. Breakout 1976: точные правила одной стены
  2. Прототип на 44 микросхемах и путь к домашним версиям
  3. Arkanoid 1986: что изменилось через десять лет
  4. Три рычага глубины: разбор с точки зрения геймдизайна
  5. Практический сценарий: блоки с прочностью и капсулы в коде
  6. Когда вам это не подойдёт

Breakout 1976: точные правила одной стены

Breakout — это одна стена из 8 рядов кирпичей, один мяч и три попытки, чтобы разбить два экрана. Правила аркадной версии описаны так (Wikipedia, статья Breakout (video game) со ссылками на материалы Atari, проверено: ноябрь 2026):

Ряды и очки в Breakout
Ряды (снизу вверх)ЦветОчков за кирпич
1–2Жёлтый1
3–4Зелёный3
5–6Оранжевый5
7–8Красный7

Максимум за один экран — 448 очков, за игру — 896 (два экрана). Из этих чисел можно восстановить длину ряда: в каждом цвете по два ряда, поэтому

448 = 2 × (1 + 3 + 5 + 7) × N = 32 × N   →   N = 14 кирпичей в ряду
всего кирпичей на экране: 8 × 14 = 112

Сложность в Breakout растёт не со временем, а по событиям:

  • мяч ускоряется после 4 ударов, после 12 ударов и при первом касании оранжевого и красного рядов;
  • когда мяч пробивает красный ряд и касается верхней стенки, ракетка становится вдвое короче.

Сам автомат был монохромным: цвет рядам давали полоски цветной плёнки, наклеенные на экран.

Прототип на 44 микросхемах и путь к домашним версиям

Прототип Breakout собрали без процессора, на дискретных логических микросхемах. Бушнелл предложил Стиву Джобсу 750 долларов за прототип и бонус 100 долларов за каждую микросхему меньше 50; Стив Возняк спроектировал схему на 42 микросхемах, а собранная вместе с Джобсом плата-прототип содержала 44. Atari не смогла запустить эту плотную схему в серийное производство и выпустила свою версию примерно на 100 микросхемах; по словам Возняка, игровой процесс и тайминги остались теми же (там же, со ссылками на интервью BYTE 1984 года и книгу Возняка iWoz, 2006).

Дальше жанр развивался так:

ГодИграЧто добавила
1974Clean Sweep (Ramtek)Предшественник: мяч стирает поле из точек
1976Breakout (Atari)Стена кирпичей, ускорение мяча, укорачивание ракетки
1978Super Breakout (Atari)Режимы с несколькими мячами одновременно
1978Breakout для Atari 2600Цветная графика; 6 рядов вместо 8 и 5 попыток вместо 3 из-за ограничений приставки
1986Arkanoid (Taito)Прочные блоки, капсулы-бонусы, враги, босс

Arkanoid 1986: что изменилось через десять лет

Arkanoid превратил одну стену в последовательность уровней с разными блоками и бонусами. Игру сделали дизайнеры Taito Акира Фудзита и Хироси Цудзино; проект вырос из внутреннего конкурса, где две команды делали свою «разбей блоки», а победителей попросили объединить идеи. Неоновый стиль вдохновлён фильмом «Трон» (1982), а тестирование на игровых площадках началось всего через месяц после начала разработки. В Японии игра вышла в июле 1986 года (Wikipedia, статья Arkanoid со ссылками на интервью Цудзино в блоге BEEP!, 2019, и справочник М. Акаги, 2006, проверено: ноябрь 2026).

Что появилось по сравнению с Breakout:

  • Прочность блоков: большинство блоков разбивается с одного удара, некоторым нужно несколько, а некоторые не разбиваются вовсе.
  • Капсулы: часть блоков при разрушении роняет капсулу; если поймать её ракеткой (кораблём Vaus), она даёт бонус — длиннее корабль, несколько мячей, пушки, временное замедление мяча или дополнительную жизнь.
  • Враги: летающие фигуры мешают мячу, их можно сбить за бонусные очки.
  • Уровни и босс: у каждого этапа своя раскладка; на последнем (33-м в большинстве версий, 36-м на NES) ждёт босс DOH, и продолжить после потери всех жизней уже нельзя.

Журнал Compute! в 1989 году отмечал, что кроме Breakout в Arkanoid видны элементы Pong, Space Invaders и Pac-Man — последний именно в бонусах.

Три рычага глубины: разбор с точки зрения геймдизайна

Глубину в обеих играх дают три независимых параметра: темп мяча, «здоровье» блока и решение «ловить бонус или спасать мяч». Каждый из них можно настраивать отдельно.

  1. Темп по событиям, а не по таймеру. В Breakout мяч ускоряется после 4 и 12 ударов и при достижении верхних рядов. Игрок сам приближает ускорение своими успехами, поэтому рост сложности ощущается как заслуженный, а не как случайный.
  2. Прочность как число. Блок на 3 удара — это объект с переменной Прочность = 3. Один параметр меняет и время прохождения уровня, и маршрут мяча: неразрушимые блоки превращаются в стены, которые направляют отскок.
  3. Риск ради награды. Падающая капсула заставляет выбирать: сдвинуть корабль за бонусом или остаться под мячом. Это главное новое решение, которое Arkanoid добавил игроку.
Шаблон типов блоков для своей игры (наши стартовые значения, а не данные Arkanoid)
ТипПрочностьОчкиШанс капсулы
Обычный11010%
Крепкий23020%
Бронированный36030%
Стенанеразрушимый—0%

Практический сценарий: блоки с прочностью и капсулы в коде

Все три рычага укладываются в несколько десятков строк: прочность — число у блока, ускорение — счётчик ударов, капсула — бросок случайного числа в момент разрушения. Задача: поле из 5 рядов по 10 блоков, мяч ускоряется после 4 и 12 ударов как в Breakout, блоки берут прочность из шаблона выше, а при разрушении с заданным шансом падает капсула «длинная ракетка». Множитель ускорения 1,15 — наше значение, а не данные оригинала.

// Типы блоков из таблицы-шаблона (наши стартовые значения).
const BLOCK_TYPES = {
  normal: { hp: 1, score: 10, capsuleChance: 0.10 },
  strong: { hp: 2, score: 30, capsuleChance: 0.20 },
  armored: { hp: 3, score: 60, capsuleChance: 0.30 },
  wall: { hp: Infinity, score: 0, capsuleChance: 0 },
};
const SPEEDUP_AT = [4, 12]; // удары, после которых мяч ускоряется, как в Breakout
const SPEEDUP = 1.15;       // наше значение

function makeLevel(rows, cols, typeForRow) {
  const blocks = [];
  for (let r = 0; r < rows; r++) {
    for (let c = 0; c < cols; c++) {
      const t = typeForRow(r);
      blocks.push({ type: t, hp: BLOCK_TYPES[t].hp, row: r, col: c, alive: true });
    }
  }
  return { blocks: blocks, hits: 0, score: 0, ballSpeed: 300, capsules: [] };
}

// Вызывается, когда мяч столкнулся с блоком. random — функция 0..1.
function onBallHitBlock(game, block, random) {
  if (!block.alive || block.type === "wall") return; // стена только отражает мяч
  block.hp -= 1;
  game.hits += 1;
  if (SPEEDUP_AT.indexOf(game.hits) !== -1) game.ballSpeed *= SPEEDUP;
  if (block.hp <= 0) {
    block.alive = false;
    const t = BLOCK_TYPES[block.type];
    game.score += t.score;
    if (random() < t.capsuleChance) {
      game.capsules.push({ kind: "longPaddle", col: block.col, row: block.row, vy: 120 });
    }
  }
}

// Проверка: верхний ряд — бронированные, второй — крепкие, остальные обычные.
const game = makeLevel(5, 10, function (r) { return r === 0 ? "armored" : r === 1 ? "strong" : "normal"; });
let seed = 1;
function rnd() { seed = (seed * 16807) % 2147483647; return seed / 2147483647; } // повторяемый генератор
for (const b of game.blocks) while (b.alive) onBallHitBlock(game, b, rnd);
console.log("ударов:", game.hits);                 // 3×10 + 2×10 + 1×30 = 80
console.log("очков:", game.score);                 // 10×60 + 10×30 + 30×10 = 1200
console.log("скорость:", game.ballSpeed.toFixed(1)); // 300 × 1,15 × 1,15 = 396,75 → toFixed(1) печатает 396.7
console.log("капсул выпало:", game.capsules.length); // при seed = 1 — 11

Проверка в Node.js даёт 80 ударов, 1200 очков и скорость 396.7 после двух ускорений (точное значение 396,75, вывод округлён); число капсул зависит от генератора случайных чисел: при seed = 1 выпало 11 капсул из 50 блоков. Удалять разбитые блоки из массива прямо во время обхода не нужно: флаг alive и уборка после кадра безопаснее — подробно об этом в статье о спавне и удалении объектов.

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

Схема «стена, мяч, бонусы» хорошо работает для коротких аркадных сессий, но не для любой игры:

  • Нужна точная копия оригинала: чисел вроде точной скорости мяча и шансов выпадения капсул в Arkanoid в проверенных источниках нет, поэтому значения в шаблоне — наши стартовые, их подбирают тестированием.
  • Физика с вращением мяча и сложными отскоками: для точного управления углом отскока от разных частей ракетки нужна отдельная формула; она разобрана в статье об истории ключевых механик 2D-игр.
  • Повествовательная игра без «счёта»: весь интерес жанра держится на очках, рекорде и росте темпа; если их нет, механика быстро надоедает.

Мы разрабатываем J2DRU — браузерный 2D игровой движок; он в разработке и публично пока не открыт, заявку можно оставить на странице раннего доступа (подача заявки не гарантирует приглашение).

Источники (проверено: ноябрь 2026): Wikipedia, Breakout (video game) — дата выпуска, ряды и очки, ускорение мяча, ракетка, 448/896 очков, прототип на 42/44 микросхемах (BYTE, 12.1984; S. Wozniak, iWoz, 2006), версия Atari примерно на 100 микросхемах, Clean Sweep, Super Breakout, версия для Atari 2600; Wikipedia, Arkanoid — Фудзита и Цудзино, конкурс внутри Taito, «Трон», выпуск в июле 1986, 33/36 раундов, DOH, капсулы, Compute! 07.1989. Число кирпичей в ряду, шаблон типов блоков, множитель ускорения и код — наши.

Читайте также:

Частые вопросы

Когда вышел Breakout и кто его придумал?

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

Как в Breakout росла сложность?

Мяч ускорялся после 4 ударов, после 12 ударов и при первом касании оранжевого и красного рядов, а после того как мяч пробивал красный ряд и касался верхней стенки, ракетка становилась вдвое короче.

Что нового принёс Arkanoid?

Блоки, которым нужно несколько ударов, и неразрушимые блоки; капсулы с бонусами (длиннее ракетка, несколько мячей, пушки, замедление мяча, дополнительная жизнь); враги за бонусные очки; разные раскладки уровней и босс DOH на последнем этапе.

Как запрограммировать прочность блоков и выпадение капсул?

У каждого блока хранится число прочности: удар мяча уменьшает его на 1, при нуле блок удаляется и начисляются очки. В момент удаления бросается случайное число от 0 до 1, и если оно меньше шанса капсулы для этого типа блока, на месте блока создаётся падающая капсула. Отдельный счётчик ударов ускоряет мяч после 4-го и 12-го удара.