Игры Сталина 1955 (СИ) - Кулаков Игорь Евгеньевич
8 двухцветных (черно-белый, жёлто-зелёный и прочие контрастные схемы) однобитных (на пиксель) режимов, соответственно использующих только 8000 байт из видеоОЗУ (320×200/8)
Есть и четырёхцветный видеорежим — двухбитный (на пиксель) режим (320×200/4)
Был забавный момент. Отдельный утончённый ум из КБ МЗЭТ, участвовавший в проектировании видеочипа для М-7/приставки, предложил реализовать «извращенскую» схему, которую я опознал как аналогичную «Спекки» — когда содержимому его, фактически черно-белого изображения (один бит на пиксель) предлагалось присваивать, в рамках знакоместа размером 8×8 точек (т.е. квадрату из 64 пикселей на экране) однобайтовый «атрибут», три бита которого давали цвет переднего плана, три бита цвет фона, 1 бит яркости и 1 бит мигания. Это давало возможность использования 15 цветов. На реальном «Спекки» таким образом, при разрешении 256×192 видеопамять занимала всего 6912 битов, т.е. менее 7 килобайт и давала приличное быстродействие без аппаратного скроллинга.
Но, помня, что:
а)…то, как тяжело было программистам игр и других программ на ZX Spectrum моего прошлого работать с подобным устройством видеопамяти…
б)…имея уже заложенные в видеочип возможность аппаратных вертикального (гладкого, через пиксель) и горизонтального (пусть и через 8 или 4 пикселя) скроллинга и, (главное) аппаратных спрайтов…
в)…предполагая быстрое развитие плат расширения с дополнительным видеоОЗУ, как и увеличение списка доступных многоцветных видеорежимов, что изначального закладывалось в возможности стандартного видеочипа…
г)…предполагая последующее появление плат расширения в виде «внешней видеокарты» с вообще новыми видеопроцессорами с более широкими возможностями…
…я пресёк ту идею, пояснив вышеуказанные моменты, адаптировав свои слова возражения к «текущей реальности»:-)
Стоит заметить, что в двухцветном видеорежиме была реализована та самая крайне приятная для программирования игр возможность использования аппаратных спрайтов, «накладываемых» видеочипом поверх основного изображения — до 64 спрайтов 8×8 или до 32 16×16, которые располагались, при потребности в них, программистом игры в оставшейся свободной видеопамяти. Каждый спрайт мог иметь один из 256 цветов!
Маски ( 0 — прозрачное, 1 — непрозрачное, цвет задаётся для всего спрайта отдельно) 64 спрайтой 8×8 пикселов занимали 512 байт видеопамяти или в случае 32 16×16 — 2 кб.
Работа с которыми, после размещения их в видеопамяти, была крайне проста для программиста. Всего лишь — манипуляции со списком их координат (применительно к экрану), номером цвета (0–255) и указателями на размещение в видеопамяти.
Четырёхцветный видеорежим занимал 16000 байт из 16384 видеопамяти, оставляя там лишь 384 байта, для хранения в которых видеочип поддерживал работу 32 спрайтов 8×8.
В видеочипе, для скроллинга были два «хитрых» спецрегистра, использовавших схему манипуляции через их значения для смещения отображения реального содержания видеопамяти на экране.
При «гладком» вертикальном скроллинге схема работала так:
При нулевом значении регистра видеочип просто отображал по порядку соответствующее содержимое видеопамяти с начального адреса в ней с первой линии на экране по последнюю. При увеличении значения регистра с 0 на 1 видеочип отображал содержимое видеопамяти с начального адреса начиная со второй линии по последнюю, показывая то, что было в предыдущей итерации на последнее линии, уже на первой.
При необходимости, за время «обратного хода луча» монитора (телевизора) игра должна была «перерисовывать» программным способом первую линию, формируя новый «выползающий бэкграунд» невидимо для играющего.
Увеличивая-уменьшая значение, возможно было скроллировать содержимое экрана в обеих направлениях.
Для аппаратного горизонтального скроллинга такой фокус также был возможен, но, по аппаратным причинам, только через 8 или 4 пикселя. (байт видеопамяти, соответственно, отображал 8 (для случая 2 цветов на пиксель) или 4 пикселей (для случая 4 цветов на пиксель)).
Именно в расчёте на подобные аппаратные графические возможности и создавался первый набор игр полноценной 8-битной платформы, с двумя её ветвями развития!
«Крышесносящим» в оглушающем успехе старта доступных для масс электронных игр было то, что нами было выпущено сразу много игр, заметно превосходящих по качеству то, что появилось на первых игровых приставках и слабых ПК конца 70-х — начала 80-х «утерянного прошлого». Возможности платформы сразу использовались практически по максимуму — послезнание, в очередной раз сказало своё слово.
Простым сравнением и описанием сего факта выглядит фраза «игры на компьютерах начала 80-х были из из конца жизненного цикла этих платформ».
Многие наши конкуренты в создании игр, появившиеся на волне успеха продаж платформы в СССР, Европе и за океаном (производимые по лицензии, купленной IBM) и созданного нами игрового софта к обеим ветвям платформы, какое-то время тупо задавались вопросом — «как это сделано⁇» Даже имея возможность дизассемблирования и качественную документацию по архитектуре платформы, рекомендации по программированию для неё, прошло немалое время, прежде чем эти самые конкуренты подтянулись за нами.
Помимо дизассемблирования процедур в машинных кодах, эффективно использующих все аппаратные возможности платформы, нужно было знать ответы на вопросы, «где взять идеи и как именно писать новые крутые игры?».
Опыт моего прошлого и запасы «как это было сделано тогда» были доступны тут единицам, из которых отношение к игростроительству имело ещё меньше:-)
И если хорошие мозги, набитые на программировании руки были не только у четвёрки «цифровых мушкетёров», то советы с высоты опыта «а вот давайте запилим ещё такую игру…» мог давать, фактически только я один:-)
И я их давал… только тем четверым… хехе.
Остальное — цедил намёками в специализированной игровой прессе, бурно начавшей цвести вместе с платформой, разработкой софта и периферии к ней.
Список игр, которые достигли состояния релиза к моменту начала продаж игровой приставки и М-7 и поставляемые (в разных количествах и в виде -картриджей, магнитофонных катушек и немногочисленных пока дискет) был таков:
Абсолютно новые, рождённые воображением местных, без моих подсказок!
1) «Камикадзе»
2) «Настольный теннис»
3) «Звёздная война»
4) «Лабиринт» с процедурно генерируемыми уровнями
5) «Ралли»
Доработанные под использование новых графических и звуковых возможностей игры, изначально созданные для текстового режима М-4:
6) Тетрамино
7) Замок Гоблинов (по сути, тот же Lode Runner)
8) Шахматы
9) Шашки
10) Удав-змея
11) Морской бой
12) Карты («подкидной дурак»)
Также абсолютно новые, созданные по идеям, которыми я поделился с «четвёркой», выверив своё послезнание на «то, что делать сейчас» и «то, что оставить на позже»:
13) «Цветные линии» (Color Lines),
14) «Танки» — знаменитые и фантастически играбельные «танчики» времён NES.
15) Breakout, он же Arkanoid.
16) Pacman
Воссозданные единолично мной:
17) «Принц Персии» (Prince of Persia)
18) «Убийцы Вампиров» (Vampire Killer (название Castlevania тут не было оглашено)) — он вышел чуть позже, поздней осенью 1955, после разогрева интереса к нему демо-версией, которую мы с Марго презентовали за океаном летом того года в «Midnight Computer Club» Юджина Харриса.