Коротко
Breakout (Atari, 13 мая 1976 года) сделал из Pong игру для одного человека и заложил три рычага сложности: ускорение мяча по счётчику ударов, укорачивание ракетки и более ценные верхние ряды. Arkanoid (Taito, июль 1986 года) через десять лет добавил прочные и неразрушимые блоки, капсулы-бонусы и 33 разные раскладки с боссом. Ниже — точные правила обеих игр, что из них следует для геймдизайна, шаблон типов блоков и код на JavaScript, который повторяет эти правила в своей игре.
Содержание
- Breakout 1976: точные правила одной стены
- Прототип на 44 микросхемах и путь к домашним версиям
- Arkanoid 1986: что изменилось через десять лет
- Три рычага глубины: разбор с точки зрения геймдизайна
- Практический сценарий: блоки с прочностью и капсулы в коде
- Когда вам это не подойдёт
Breakout 1976: точные правила одной стены
Breakout — это одна стена из 8 рядов кирпичей, один мяч и три попытки, чтобы разбить два экрана. Правила аркадной версии описаны так (Wikipedia, статья Breakout (video game) со ссылками на материалы Atari, проверено: ноябрь 2026):
| Ряды (снизу вверх) | Цвет | Очков за кирпич |
|---|---|---|
| 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).
Дальше жанр развивался так:
| Год | Игра | Что добавила |
|---|---|---|
| 1974 | Clean Sweep (Ramtek) | Предшественник: мяч стирает поле из точек |
| 1976 | Breakout (Atari) | Стена кирпичей, ускорение мяча, укорачивание ракетки |
| 1978 | Super Breakout (Atari) | Режимы с несколькими мячами одновременно |
| 1978 | Breakout для Atari 2600 | Цветная графика; 6 рядов вместо 8 и 5 попыток вместо 3 из-за ограничений приставки |
| 1986 | Arkanoid (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 — последний именно в бонусах.
Три рычага глубины: разбор с точки зрения геймдизайна
Глубину в обеих играх дают три независимых параметра: темп мяча, «здоровье» блока и решение «ловить бонус или спасать мяч». Каждый из них можно настраивать отдельно.
- Темп по событиям, а не по таймеру. В Breakout мяч ускоряется после
4и12ударов и при достижении верхних рядов. Игрок сам приближает ускорение своими успехами, поэтому рост сложности ощущается как заслуженный, а не как случайный. - Прочность как число. Блок на
3удара — это объект с переменнойПрочность = 3. Один параметр меняет и время прохождения уровня, и маршрут мяча: неразрушимые блоки превращаются в стены, которые направляют отскок. - Риск ради награды. Падающая капсула заставляет выбирать: сдвинуть корабль за бонусом или остаться под мячом. Это главное новое решение, которое Arkanoid добавил игроку.
| Тип | Прочность | Очки | Шанс капсулы |
|---|---|---|---|
| Обычный | 1 | 10 | 10% |
| Крепкий | 2 | 30 | 20% |
| Бронированный | 3 | 60 | 30% |
| Стена | неразрушимый | — | 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. Число кирпичей в ряду, шаблон типов блоков, множитель ускорения и код — наши.
Читайте также: