Классические игры
Начальный уровень
Демо ниже — нажимайте кнопки и смотрите, как это устроено. Ничего на компьютере не меняется.
Классические игры
Классические игры
"Иногда самые простые вещи — самые сильные. Игры 1980–1990-х — это первые языки, на которых человечество заговорило с машинами — языки, в которых каждая кнопка имеет значение, каждый пиксель — смысл, а каждая победа — результат настоящего мышления".
Почему именно классические игры?
Современные игры — это зрелища. Они показывают нам миры, где небо дышит, а герои плачут. Но в них часто за нас думает компьютер — он решает, когда подсказать, как прыгнуть, куда бежать.
Классические игры — это диалог.
Нет голосовых подсказок. Нет карт в углу экрана. Нет сохранений через каждые 30 секунд. Есть только Вы, экран и правила — чёткие, как законы физики.
Именно в таких играх формируются навыки, которые потом пригодятся в жизни:
- Анализ — Вы учитесь замечать закономерности (например, как двигаются враги в Galaga),
- Планирование — Вы думаете на несколько шагов вперёд (Lode Runner, Bomberman),
- Устойчивость к ошибкам — Вы падаете, но встаёте снова ("Game Over" — приглашение переосмыслить стратегию),
- Креативность — когда нельзя перестрелять проблему, приходится обойти её (Metroid, Prince of Persia).
Поэтому начинать знакомство с цифровым миром — лучше всего с этих игр. Это как учиться читать по "Приключениям Тома Сойера".
Что такое "классические" — и почему NES?
NES — сокращение от Nintendo Развлечения Система. Это домашняя игровая приставка, выпущенная в Япони в 1983 году (там она называлась Famicom — Family Computer), а в Северной Америке — в 1985-м. А в СССР и позже в постсоветском пространстве — под именем Dendy (это клон NES, произведённый в Тайване и Китае).
⚠️ Важно:
- Dendy ≠ NES, но полностью совместима с картриджами NES.
- NES не была первой приставкой (до неё были Atari 2600, Intellivision и др.), но именно она восстановила игровую индустрию после кризиса 1983 года и заложилиа основы современной игровой культуры.
Технически NES — это 8-битный компьютер с процессором Ricoh 2A03 (клон MOS 6502), 2 КБ оперативной памяти и графическим чипом, способным отображать до 256×240 пикселей с палитрой из 54 цветов. Звук — 5 каналов — 2 импульсных, 1 треугольный, 1 шумовой и 1 для PCM-сэмплов (очень редко использовался).
Но для ребёнка важнее ощущение:
Когда Вы включаете NES, Вы не просто запускаете игру — Вы входите в договор с машиной: "Я буду внимателен. Я буду учиться. И тогда — Вы дашь мне шанс победить".
Как сегодня в это играть? (Практическая инструкция)
Вариант 1. Оригинал. Почти как в 1987 году. ✅ Рекомендуется как основной
Что нужно:
-
Приставка — NES, Famicom, Dendy (новая или б/у).
На "Авито", "Юле", "Ozon", "Wildberries" продаются как новые сборки (часто с HDMI-выходом), так и винтажные экземпляры. Средняя цена — от 1 500 до 4 000 ₽.
Совет: ищите комлекты с 2 джойстиками и 2–3 играми — они надёжнее и дешевле поштучной покупки. -
Картриджи — оригинальные (дорого, от 800 ₽ за простые, до 10 000+ за редкие) или репринты (новые картриджи с классическими играми — от 300 ₽).
Важно: избегайте "мульткарт" с 1000+ играми — они почти всегда содержат пиратские копи с багами и искажённой графикой.
-
Подключение:
- Старые телевизоры (с RCA-входом — "тюльпан"): просто воткнуть.
- Современные мониторы/ТВ: нужен RCA-to-HDMI конвертер (от 500 ₽). Есть и приставки с встроенным HDMI (например, Dendy Classic HDMI).
Плюсы: подлинный тактильный опыт (клик джойстика, запах пластикового картриджа), никакой эмуляции — только железо.
Минусы: возможны проблемы с совместимостью ТВ, износ контактов.
Вариант 2. Эмуляция. Технически правильно — но осторожно.
Эмулятор — программа, которая имитирует работу NES на ПК, смартфоне или Raspberry Pi.
Популярные — FCEUX, Mesen, bsnes/higan.
⚠️ Важно:
- Сам эмулятор — легален.
- ROM-файлы (образы игр) — легальны только если Вы владеете оригинальным картриджем и сделали дамп самостоятельно.
- Скачивание ROM из интернета — нарушение авторских прав.
Для учебных целей (например, в школе) допустимо использовать homebrew-игры (свободные, созданные сообществом), например:
- Nuclear Throne Classic (демо),
- Shooting Star,
- Puzzle Dash.
Вариант 3. Официальные переиздания.
- Nintendo Switch Online + NES/SNES: подписка (~300 ₽/мес) даёт доступ к 100+ играм с облачными сохранениями и онлайн-мультиплеером.
- Evercade EXP / VS — портативная/домашняя консоль с лицензионными картриджами от Atari, Capcom, Data East.
**Наша рекомендация: начинайте с оригинальной Dendy/NES. Это как учиться играть на акустической гитаре, а не на гитаре с автотюном. Ощущение честного взаимодействия — бесценно.
Путешествие по играм
Ниже — структурированное погружение. Каждая игра — урок, замаскированный под веселье.
graph TD
A[Классические игры] --> B[Аркады: реакция + ритм]
A --> C[Платформеры: пространство + время]
A --> D[Головоломки: логика + планирование]
A --> E[Экшн-RPG: исследование + рост]
A --> F[Спортивные: правила + стратегия]
B --> B1[Pac-Man]
B --> B2[Space Invaders]
B --> B3[Galaga]
B --> B4[Pooyan]
B --> B5[Donkey Kong]
C --> C1[Super Mario Bros.]
C --> C2[Contra]
C --> C3[Ninja Gaiden]
C --> C4[Castlevania]
C --> C5[Mega Man]
D --> D1[Tetris]
D --> D2[Lode Runner]
D --> D3[Bomberman]
D --> D4[Dr. Mario]
E --> E1[The Legend of Zelda]
E --> E2[Metroid]
E --> E3[Final Fantasy]
E --> E4[Dragon Quest]
F --> F1[Volleyball]
F --> F2[Soccer]
F --> F3[Excitebike]
F --> F4[Ice Climber]
A --> G[Особые случаи: сложность как искусство]
G --> G1[Battletoads]
G --> G2[Gauntlet]
G --> G3[Teenage Mutant Ninja Turtles II]
G --> G4[Toxic Crusaders]
Toxic Crusaders
"Вы — мутант-защитник Земли. Ваша задача — очищать заводы, реки, леса от ядовитых отходов. Иногда — с помощью пушек. Чаще — с помощью ума".
Эта игра — редкий пример экологического повествования в эпоху, когда "зелёные" темы почти не затрагивались. Уровни построены как головоломки — надо найти, откуда идёт загрязнение, перекрыть трубы, собрать отходы.
→ Учит — системному мышлению (всё связано), ответственности (последствия действий видны сразу), нестандартным решениям (иногда надо не убить босса, а отключить его реактор).
Duck Hunt
"Вы не просто стреляете. Вы учитесь целиться в реальном времени, учитывая задержку сигнала, чувствительность датчика, даже угол наклона Zapper-пистолета".
Zapper — световое ружьё. Оно не "видит" утку. Оно ловит вспышку на экране, когда пиксель в зоне прицела становится белым.
→ Это первое знакомство с физикой ввода — задержка, калибровка, шум. То же, с чем сталкиваются разработчики VR и AR сегодня.
Tetris
"Падающие фигуры — это не кубики. Это матрицы. И каждая поворот — операция вращения над вектором".
Тетрис — идеальный мост от игры к программированию:
- Координаты (X, Y),
- Коллизи ("можно ли сдвинуть блок?"),
- Состояния ("полная линия → исчезновение → сдвиг вниз").
На NES-верси (1989) — идеальный баланс сложности: рост скорости линейный, а не экспоненциальный. Можно дойти до Level 15, не имея рефлексов про-геймера.
Super Mario Bros.
"Марио не бегает. Он взаимодействует с физикой — инерция прыжка, скольжение по льду (в SMB3), отскок от пружин".
Уровни в SMB — это учебные модули:
- 1-1 — научись прыгать, избегать врагов, использовать ?-блоки.
- 1-2: освой вертикальное мышление.
- 3-1: научись управлять ветром (облака).
→ Это как "Hello, World!" для геймдизайна: каждое действие имеет обратную связь, каждый риск — награду.
The Legend of Zelda
"Здесь нет “прохождения”. Есть исследование. Вы можете пойти в пещеру — и погибнуть. Или найти меч — и вернуться. Или обойти босса сзади… если догадаетесь, что это возможно".
Zelda — первая игра, где карта стала главным героем. Каждая комната — узел в графе возможностей.
→ Учит — не бояться "неправильных" путей, строить внутренние карВы знаний, доверять интуиции.
Contra
"Одиночный прохождение — почти невозможно. Вдвоём — реально. Почему? Потому что один прикрывает, второй атакует. Один ловит бонус, второй отвлекает врага".
Contra — демонстрация синергии.
→ Важный урок: иногда сила — в согласованности действий. Как в Git, когда merge-конфликт разрешает пара разработчиков, а не один.
Mortal Kombat
"“Finish him!” — знаменитая фраза. Но чтобы выполнить Fatality, надо ввести точную комбинацию — Вниз, Вперёд, Вперёд, Удар. Одна ошибка — и герой просто ударит. Или промахнётся".
Это — урок точности ввода. Как при написани кода: один пропущенный ; — и программа не скомпилируется.
→ Также: первая игра, где контекст важен (разные Fatality в зависимости от персонажа и локации).
Punch-Out!!
*"Противники не “крутые”. Они предсказуемые. Габриэль бьёт правой после трёх шагов влево. Блондиный — моргает перед ударом. Вы не сражаетесь с ними. Вы читаете их код".
→ Это тренировка распознавания паттернов — основы машинного обучения и отладки — сначала видите симптом, потом ищете причину, потом — правило.
Вскрываем приставку — анатомия NES/Dendy
"Приставка — не волшебная коробка. Это — оркестр из микросхем. Каждая играет свою партию. Иногда — в унисон. Иногда — в диссонансе. И именно из этого звука рождается чудо".
Первый миф — "Картридж — это только хранилище игры"
Нет.
Картридж NES — это полноценный расширительный модуль. Внутри него ПЗУ (постоянное запоминающее устройство, ROM), и часто — дополнительные чипы:
- MMC (Memory Management Controller) — контроллер управления памятью.
Например, в Super Mario Bros. 3 (1990) используется MMC3. Он позволяет:- "переключать" банки памяти (игра весит 512 КБ, но NES "видит" только 32 КБ за раз),
- управлять таймерами (для анимации фона),
- генерировать прерывания (чтобы враги появлялись вовремя).
→ Это как "виртуальная память" в современных ОС, но реализованная железом.
-
CHR-RAM — динамическая видеопамять.
В The Legend of Zelda (1987) — статическая CHR-ROM (рисунки хранятся на картридже).
В Mega Man 2 (1988) — CHR-RAM: рисунки генерируются в реальном времени, что позволяет менять палитру в зависимости от уровня. -
Батарейка для сохранений (в Zelda, Metroid, Final Fantasy).
Это литиевая CR2032, подключённая к SRAM. Она живёт 10–15 лет. Когда игра "забывает" сохранение — пора менять батарейку (задача для Части 4: "Ремонт своими руками").
Что внутри приставки? Три главных героя
Разберём NES по слоям. Представим, что приставка — это трёхэтажное здание:
graph LR
CPU[Центральный процессор 2A03] -->|Отдаёт команды| PPU[Видеопроцессор 2C02]
CPU -->|Проигрывает звук| APU[Аудиоподсистема внутри CPU]
CPU -->|Читает/пишет| RAM[2 КБ оперативной памяти]
PPU --> VRAM[2 КБ видеопамяти + CHR-ROM/RAM]
APU -->|5 каналов| Speaker[Динамик]
CPU <-->|Шина данных| Cartridge[Картридж]
CPU — 2A03 (Ricoh)
Это клон процессора MOS 6502 — того самого, что стоял в Apple II, Commodore 64 и даже в ранних "Электрониках".
Тактовая частота: 1.79 МГц (NTSC) / 1.66 МГц (PAL). Для сравнения: ваш смартфон — ~2 000 000 000 Гц.
Но! NES не тормозит, потому что:
- Нет ОС — программа работает напрямую с железом,
- Каждый кадр — 1/60 секунды (60 FPS), и CPU обязан уложиться в это время.
→ Это как бег на короткую дистанцию: медленно, но идеально синхронизированно.
PPU — 2C02 (Picture Processing Unit)
Отвечает за всё, что Вы видите.
Как он работает:
- Name Table (2 КБ): карта экрана — какие тайлы (8×8 пикселей) где рисовать.
- Pattern Table — сами тайлы (например, "голова Марио", "кирпич", "облако").
- Attribute Table: палитра для блоков 16×16 пикселей.
- Sprite RAM: до 64 спрайтов (движущихся объектов), но одновременно на строке — только 8.
→ Поэтому в Contra враги "мерцают": игра скрывает одних, чтобы показать других. Это не баг — приём оптимизации.
APU — Audio Processing Unit
Встроен в 2A03. Пять каналов:
| Канал | Тип | Пример использования |
|---|---|---|
| Pulse 1 | Прямоугольная волна | Мелоди (линия Марио) |
| Pulse 2 | Прямоугольная волна | Аккомпанемент |
| Triangle | Треугольная волна | Бас, эффекты (прыжок) |
| Noise | Шум | Выстрелы, ветер, дождь |
| DMC | PCM-сэмплы | Голос в Metroid ("Mother Brain"), звуковые эффекты в Mega Man 2 |
🎵 Попробуй: найдите в YouTube "NES sound channel isolation" — послушай, как игра звучит по каналам. Удивительно, как из пяти "голосов" складывается целая симфония.
Почему экран "мерцает" и "трясётся"? Физика кадра
NES рисует экран по строчкам — 262 строки за 1/60 секунды.
- Строки 0–240: видимая область (256×240),
- Строки 241–261: вертикальный возврат луча (VBlank).
Именно в VBlank разрешено менять видеопамять — иначе будет screen tearing (разрыв изображения).
→ Поэтому все сложные операции (переключение уровней, расчёт врагов) — только в VBlank.
🔬 Эксперимент для старших (12+):
В эмуляторе Mesen включите "Renderer → Show scanlines". Вы увидите, как луч "рисует" экран сверху вниз. Попробуйте поставить точку останова на строке 241 — и понаблюдайте, как игра "дышит" между кадрами.
Цвета
NES не генерирует RGB. Она выводит композитный видеосигнал, где цвета — результат интерференции яркости и цветности в аналоговом ТВ.
Палитра — 54 оттенка, но на разных ТВ они выглядят по-разному (см. "NTSC color bleed").
🎨 Задание:
Возьмите скриншот из Super Mario Bros.
Откройте его в графическом редакторе.
Увеличь пиксельную сетку.
Найдите места, где цвет "растекается" между пикселями (например, у облаков).
Это — не артефакт сжатия. Это — физика аналогового ТВ, запечатлённая в цифре.
Почему игры не "лагают", даже на слабом железе?
Потому что они написаны на ассемблере 6502, с учётом каждого такта.
Пример: в Super Mario Bros. расчёт прыжка Марио занимает < 300 тактов — это ~0.17 мс.
Разработчики Nintendo использовали:
- Look-up tables (таблицы синусов/косинусов — чтобы не считать),
- Fixed-point arithmetic (дробные числа как целые: 1.5 = 15, делить на 10 в конце),
- Unrolled loops (циклы "размотаны" вручную — меньше команд перехода),
- DMA (Direct Memory Access) — копирование спрайтов в PPU без участия CPU.
→ Это как писать стихи хайку: каждое слово — на вес золота.
А как насчёт "хаков" и неофициальных возможностей?
NES — открытая платформа (по историческим причинам: Nintendo не успела запатентовать всё). Это породило:
- Homebrew-сообщество (сайты: nesdev.org, forums.nesdev.com),
- Домашние картриджи (например, EverDrive-N8 — флеш-карта, в которую можно загружать ROM’ы),
- Модификаци железа:
- RGB mod — замена видеочипа на 2C02-RGB для чистого сигнала,
- Region-free mod — игра любого региона на любой приставке,
- Save state mod — добавление SRAM и кнопки "сохранить состояние".
Эти моды — инженерное творчество. Как сборка робота из конструктора — только конструктор здесь — паяльник и схемы.