Яндекс.Метрика

    Песочница

    История создания сетевой игры на ZX Spectrum


    Quake на эмуляторе без второго подключенного ZX Spectrum

    Первая полноценная сетевая игра на ZX Spectrum. Работает она на двух любых клонах speccy 48kb памяти и более, с наличием сопроцессора AY-3-8910 или YM2149F. Поскольку мало кто знает, что на speccy можно было делать такие вещи немного приоткрою тайну создания этой игры.
    В 2003 году летним днем, разгребая свежую папку скаченного. Наткнулся на новый номер AlcoNews #17, там находилась интересная статья про соединение двух Спектрумов через AY-3-8910 что самое главное была она очень простая 3 проводка и два Спектрума. В то время Bugsy как раз занимался modding`ом speccy. По такому стечению обстоятельств мы сразу решили сделать эту доработку на своих zs scorpion 256kb.

    Как приложение в AlcoNews была программа демонстрирующая работу этой сети, но, к сожалению, она была не работоспособна (оказалось, что был битый архив). Я сразу же начал пробовать искать проблему в железе тестировать порты, но оказалось, что они полностью рабочие и тогда следующем шагом сделал простую передачу битов с отключенным прерыванием.

    Затем было изучение особенностей работы этих портов в разных состояниях компьютера. С помощью них удалось узнавать состояния компьютера: включен, выключен, неожиданный разрыв связи, прекращение передачи.

    Был написан драйвер, который мог сам определять, кем он является Master`ом или Slave`ом на котором запущенна передача, также была сделана полная синхронизация и передачи байтов. Причем можно было включать на одном компьютере turbo режим, а на втором нет. Передача проходила все равно успешно. Вызов драйвера был сделан очень просто. Тот же ldir только в место него вызов функции драйвера. Тогда же я попробовал передавать блоки памяти, Спектрумовский экран передавался быстрее, чем на магнитофоне.

    Наигравшись с передачей данных, написал простейший чат. Можно было вводить текст и пересылать другому компьютеру. В последствие я его доработал, добавил туда раскраску текста и переключение раскладки языка. Вставил его в игру как отдельную опцию (почему то тогда не пришло в голову вставить его в игровой процесс)

    Сначала была попытка сделать игру лабиринт, где надо было добежать до выхода быстрее соперника. Но мне показалось, что это будет слишком просто. Как раз в это же время я играл Quake 3 arena. И идея пришла сама собой, почему бы не сделать Quake в 2D (Сейчас эта идея крайне популярна, делать популярные игры в 2D на мобильные устройства). В игре оказались почти все интересные фичи настоящего Quake выбор skin`ов, карты, а также лимитов раунда. В игре, кстати сказать, передаться все время по 3 байта на каждый компьютер: X,Y и действие игрока.

    Тогда хотелось, чтобы игру увидели как можно больше народу, поэтому системные требование были самые минимальные ZX Spectrum 48kb и AY-3-8910 сопроцессор. Но, к сожалению, на реальных Спектрумах ее так ни кто и не видел, а в эмуляторе естественно такое не поддерживалось.