Для меня мир игр начался с клонов Space Invaders и Pac-Man на БК-0010 и Galaxian на Yamaha MSX-2. Сейчас мне кажется странным, что можно было массово вовлечь игроков в бесконечный и однообразный процесс.
Для меня мир игр начался с клонов Space Invaders и Pac-Man на БК-0010 и Galaxian на Yamaha MSX-2. Сейчас мне кажется странным, что можно было массово вовлечь игроков в бесконечный и однообразный процесс.

В 1977 году на рынке ПК безраздельно властвовала «большая тройка»: Apple II, Commodore PET и TRS-80. Стоимости их были $1298, $795 и $600 соответственно. И общедоступными для того времени они вовсе не являлись.
В 1979 году появились Texas Instruments TI99/4 и Atari 400 (около 550 долларов). Эти модели были дешевле, а кроме того, предлагали неплохую графику и звук.
Не просто ЭВМ, а то, что давало возможность поиграть.
Но в 1980 вышла странная «поделка» от Science of Cambridge из Великобритании, появление которой привело к значительному снижению цен на домашние ПК.
Это Sinclair ZX80. Его разработка преследовала только одну цель: сделать все как можно дешевле. Читать полностью »

Казалось бы, ещё совсем недавно Space Invaders умещали в 1 килобайт, а теперь смогли уместить в один загрузочный сектор (512 байт). Автор программы — Оскар Толедо, пятикратный победитель IOCCC (International Obfuscated C Code Contest) и регулярный участник JS1K, также известный как создатель шахмат, которые занимают всего 392 байта.
Исходный код игры можно посмотреть в репозитории на Github: github.com/nanochess/Invaders
Для запуска вам потребуется nasm (Netwide Assembler), который можно скачать на официальном сайте. Игру можно собрать, выполнив команду:
nasm -f bin invaders.asm -Dcom_file=1 -o invaders.com
На самом деле, это всё ещё в 4 раза больше, чем весь размер оперативной памяти Atari 2600 — но уже с легкостью поместилось бы на её картридж, который предоставлял 2 килобайта памяти. Также, использование в коде программы инструкций ассемблера PUSHA/POPA требует наличия процессора 80286 и выше.
Читать полностью »

Эта игра, в значительной мере вдохновлённая Space Invaders, написана с нуля для ATtiny2313 и отправлена на недавно прошедший конкурс 1-килобайтных программ на Hackaday.
Непросто поместить такую игру в 1024 байта. Но автор решил получить в результате полнофункциональную игру с подсчётом очков, звуком и VGA-видеовыходом с разрешением в 640х480 и частотой в 60 Гц.
Разумеется, весь код полностью написан на ассемблере, причём для генерации звука и видео запрограммировано получение точных временных интервалов.
Прерывание по таймеру соответствует требованиям к строчной синхронизации VGA, а поскольку кадровая частота получается делением строчной на целое число, оба вида синхронизации можно поместить в одну процедуру обработки прерывания. Для этого в процедуре производится точный подсчёт циклов.
Строчная частота в 31,5 кГц берётся в той же процедуре за основу при получении звуков.
Процедура обработки прерывания отнимает 90% машинного времени, поэтому вся логика игры просчитывается во время обратного хода луча. Несколько конечных автоматов управляют перемещением персонажей, определением положения ракет, и т.п.Читать полностью »

Написанный нами код для эмуляции процессора 8080 достаточно общий и может быть с лёгкостью адаптирован для запуска на любой машине с компилятором C. Но чтобы поиграть в саму игру, нам нужно сделать большее. Придётся эмулировать оборудование всего аркадного автомата и написать код, приклеивающий специфические особенности нашей вычислительной среды к эмулятору.
(Вам может быть интересно посмотреть на принципиальную схему автомата.)
Читать полностью »

Первая часть здесь.
Нам понадобится информация об опкодах и соответствующих им командах. Когда вы будете искать информацию в Интернете, то заметите, что есть много перемешанных сведений о 8080 и Z80. Процессор Z80 был последователем 8080 — он выполняет все инструкции 8080 с теми же hex-кодами, но также имеет и дополнительные инструкции. Думаю, пока вам стоит избегать информации о Z80, чтобы не запутаться. Я создал таблицу опкодов для нашей работы, она находится здесь.
У каждого процессора есть написанное изготовителем справочное руководство. Обычно оно называется как-то наподобие «Programmer's Environment Manual». Руководство для 8080 называется «Intel 8080 Microcomputer Systems User's Manual». Его всегда называли «справочником» («data book»), поэтому я тоже буду так его называть. Мне удалось скачать справочник по 8080 с http://www.datasheetarchive.com/. Эта PDF представляет собой некачественный скан, так что если найдёте версию получше, то используйте её.
Читать полностью »

Написание эмулятора аркадного автомата — это замечательный учебный проект, и в этом туториале мы очень подробно рассмотрим весь процесс разработки. Хотите по-настоящему разобраться в работе процессора? Тогда создание эмулятора — наилучший способ его изучения.
Вам потребуется знание C, а также пригодится знание ассемблера. Если вы не знаете язык ассемблера, то написание эмулятора — лучший способ освоить его. Также вам нужно будет освоить шестнадцатеричную математику (также известную как base 16 или просто «hex»). Я расскажу и об этой теме.
Я решил выбрать эмулятор автомата Space Invaders, в котором используется процессор 8080. Эта игра и этот процессор очень популярны, потому в Интернете можно найти о них кучу информации. Для завершения проекта она вам понадобится.
Весь исходный код туториала выложен на github. Если вы не освоили работу с git, то на странице github есть кнопка «Download ZIP», позволяющая скачать архив со всем кодом.
Читать полностью »

Будучи подростком, я почти каждый день по многу часов зависал в зале игровых автоматов в местном торговом центре, находившемся в шаговой доступности от моего дома в городе Сэнфорд, Флорида. Если мне больше нечем было заняться, то именно там я и проводил время. Если у меня появлялись дела – я иногда всё равно играл в игры вместо того, чтобы ими заниматься. Практически всё моё свободное время поглощали игры (и, конечно, Dungeons & Dragons).
А ещё я был депрессивным, скрытым гомосексуалистом, в самый тёмный и жестокий период кризиса СПИД, боявшимся, что если кто-то узнает об этом, то меня изобьют, и что если я поддамся своим порывам, то в итоге заболею и умру.
Читать полностью »

Добрый день! Сегодня будем делать классическую игру Space Invaders на движке Love2d. Для любителей «кода сразу» окончательную версию игры можно посмотреть на гитхабе. Тем же кому интересен процесс разработки, добро пожаловать под кат.
Читать полностью »
Видеоигры на протяжении уже более 30 лет активно развиваются, начиная от геймплея и графических возможностей, вплоть до продвинутых систем искусственного интеллекта и восприятия пользователями подаваемого разработчиками материала. Киберспорт, в свою очередь, является полноценным видом спорта с многомиллионными призами и миллиардными оборотами. А сама индустрия видеоигр неустанно набирает обороты, являясь одной из наиболее кассовых и массовых ответвлений сферы развлечений. А ко всему этому человечество пришло от примитивнейшей реализации «тенниса», запускавшейся на осциллографе.
Я, как первокурсник, решил в рамках изучения базовых консольных возможностей C/C++ возможно запрограммировать "классическую" ASCII-игру, требующую от игрока скорости мышления, непрерывного взаимодействия с игрой, а также обладающую несложной графической частью, которую игрок мог бы интерпретировать в некое подобие трехмерного изображения.
Несмотря на визуальную примитивность подобных решений, они безусловно вызывают у игроков ностальгию по олдскульным играм.Читать полностью »