Inferno #08
30 ноября 2005
  Игры  

Gamedev - История создания игры Pang.

          Pang 16C
                    1.
 

   Когда  начинался  2005 год, я не думал,
что  в этом году допишу какую-либо игру. Я 
планировал только продвинуть вперёд состо─ 
яние  некоторых моих старых игровых проек─ 
тов (между  делом  был  начат новый, очень 
крупный). Но поездка в Москву к Чунину ос─ 
тавила свои впечатления - я увидел игры на 
ATM и "Спринтере", оценил их плюсы и мину─ 
сы, понял также пользу самого режима "цвет 
на точку" и решил собрать себе такой же. О 
том, как  он  собирается  (а собирается он 
очень  просто), смотрите отдельную статью. 
Надо сказать,что сначала мне в голову при─ 
шла  другая организация цветового выхода - 
через лишний буфер и лишние резисторы,- но 
я внимательнее посмотрел на описание АТМ и 
позаимствовал  оттуда  куда  более простой 
способ. 

   Почему  мне в голову раньше не приходил
16-цветный режим? Не  знаю. Была  какая-то
блокировка  в голове, связанная с "мульти─
колор - рулез". Как  вы помните по IG#5, я
даже  написал  одну (и по сей день единст─
венную на ZX) игру в мультиколоре.Эта игра
могла  настраиваться на аппаратный мульти─
колор, но  работает  и  без  примочки. Эта
игра оказалась единственной программой во─
обще, которая поддерживает примочку "аппа─
ратный  мультиколор" (#eff7 bit 0). Ни до,
ни после  никто под эту примочку ничего не
написал. Оказалось, что  она бесполезна. И
это, в принципе,закономерно,только я понял
 это слишком поздно.
  1. Сколько  я ни дорабатывал  конвертор,
мультиколорные картинки получаются полоса─ 
тые. С этим ничего не сделать. А чтобы ри─ 
совать мультиколорные картинки вручную,ну─ 
 жно быть маньяком. 
  2. В играх цветные спрайты не могут дви─
гаться по горизонтали попиксельно. Точнее, 
для этого придётся нарисовать и независимо 
раскрасить  8 вариантов  одного  и того же 
спрайта.Такая перспектива,естественно,мало 
кого улыбает.Ведь даже один спрайт раскра─ 
 сить в мультиколоре непросто. 
  3. Демки  не дают представления о реаль─
ных  скоростях аппаратного мультиколора. В 
демках (и в редакторе 8col) знакоместа,как 
правило, имеют высоту больше одного пиксе─ 
ла. Обычно высота - четыре пиксела.Что это 
значит? Значит это то, что демка обрабаты─ 
вает не 6144 байт атрибутов, а всего 1536. 
Выигрыш в скорости - существенный. В аппа─ 
ратном мультиколоре этих байт всегда 6144, 
как  ни крути. То есть, если редактор 8col 
переделать под аппаратный мультиколор,этот 
редактор  станет нефреймовым. То же с пра─ 
ктически любым мультиколорным эффектом. 
   По  уму  схема аппаратного мультиколора
должна бы была управляться не одним сигна─
 лом, а ПЯТЬЮ:
   1. Разрешение коммутации адреса A8V.
   2. Разрешение коммутации адреса A9V.
   3. Разрешение коммутации адреса A10V.
  4. Разрешение адресации атрибутов анало─
 гично маске. 
  5. Раздельный Bright для INK и PAPER.
   Если бы аппаратный мультиколор действи─
тельно  обладал  всеми  этими управляющими
разрядами,то под него,вероятно,даже писали
бы демки. Ведь только с помощью раздельных
коммутаций  адресов  можно  изобразить все
режимы  Eye Ache 2  и  Stellar Contour  со
скоростью обработки не ниже,чем в оригина─
ле. Не  имея  пункта 4, нельзя с удобством
выделить память под экран 4x4 (мультиколо─
рные чанки).С помощью пункта 5 мы расшири─
ли бы палитру вдвое.
   Но ничего из этого не было сделано; был
выдуман примитивный рубильник, под которым
можно было только  выводить статичные кар─
тинки.
   Впрочем, и в описанном  выше  идеальном
виде мультиколор ни на что, кроме демок,не
тянул.

   Устройство  "цвет на точку"  собирается
поверх того самого, топорного "аппаратного
мультиколора" (ведь  в схеме  мультиколора
присутствует половина всего, что нужно для
"цвета на точку"!), являясь,таким образом,
новой версией схемы. Соберите, попробуйте.
Сложного ничего нет. Реально сделать прак─
 тически на любой модели ZX 128k.
   Обратите внимание, что в этом режиме не
представляет  никаких проблем прокручивать 
экран  по  2 пиксела! Нет  также проблем с 
тем, чтобы  наложить  спрайт на фон (можно 
даже  накладывать целыми байтами). 8 копий 
спрайта, как вы понимаете, не нужно,доста─ 
точно двух. Или одной. 

   В тот момент,когда была разработана ко─
нцепция 16(15)-цветной примочки, почему-то
одновременно  исчезли  John  и KSA-7G, а я
(ничего  не  могу  с собой поделать) боюсь
один  даже начинать пайку. К счастью, John
через  некоторое  время  всё-таки пришёл и
помог.Но мы проиграли гонку SAM Style - он
на  3 дня раньше  написал первую программу
под свою схему (которая, правда, в отличие
от нашей,не существует в железе - в ней 25
корпусов :)). С другой стороны, наша схема
была опубликована за несколько дней до по─
явления схемы SAM Style. Но из-за задержки
игра  под  этот режим была написана позже,
чем планировалось, а без игры я не мог вы─
пускать  номер (кому  нужно устройство без
софта?).
   Впрочем,о том,как игра писалась,вы про─
читаете в другом разделе журнала, а в этом
разделе я, вообще-то,должен рассказать,как
играть в неё :)

                    2.

   Игра  Pang  представляет  из себя набор
экранов (стран), на  каждом (в  каждой) из
которых вы должны пройти три уровня.В ори─
гинале  уровни отличались геометрией пере─
городок,но я решил обойтись только измене─
нием  количества монстров. Число экранов я
тоже сократил.
   Монстры  в  Pang - это  пузыри, которые
нужно разбивать.С первого раза большой пу─
зырь не лопается,а делится на два средних.
Средний - на два маленьких. При делении из
пузыря  может  вывалиться  приз. За взятие
приза начисляются очки.
    Призы:
  1. Будильник. Замораживает  монстров. Из
 замороженных монстров призы не выпадают. 
  2. Песочные  часы.  Добавляют  некоторое
 количество времени. 
  3. Гарпун. После  взятия этого приза ваш
гарпун получает возможность зацепляться за 
 потолок и висеть там некоторое время. 
  4. Двойной  гарпун. После  взятия  этого
приза  можно бросать гарпун и тогда, когда 
летит пущенный ранее гарпун. Старый гарпун 
вместе  с верёвкой  исчезает  при бросании 
 нового. 
  5. Пулемёт. Позволяет  стрелять  пулями.
Осторожнее  с этим оружием - если вы убили 
всех монстров,время ещё течёт и может кон─ 
 читься, пока летят пули! 
  6. Жизнь. Выпадает  из  лошадки. Лошадка
появляется только в том случае, если у вас 
 ровно одна жизнь. 
  7. Яблоко. Только добавляет очки.
   Один и тот же приз не выпадает два раза
на одном и том же уровне (но, конечно,если
герой умирает,флажки использованности при─
зов обнуляются,и каждый приз сможет появи─
ться снова).
   Цель  игры: заработать  максимум очков.
Очки начисляются не только за призы,но ещё
и за убивание монстров и за время,оставше─
еся  после победы. Я особо не заигрывался,
но,тем не менее, набирал около 5500 очков.
Слабо перебить? :)

   Естественно,в версии для АТМ подразуме─
вается, что  это АТМ turbo 2 (версия 6 или
7), с убранным глюком,который при переклю─
чении видеорежимов  обменивал адреса a5..7
<-> a8..10. На платах, продаваемых NedoPC,
этого глюка нет.Убирается он так (в версии
7.10), цитирую "Turbo 2+ Assembly and Con─
figuration Manual" от 13.04.2005: 
========================================== 
3) Для устранения перепутывания памяти при 
переключении  из  экрана Sinclair в экраны 
CP/M, берем ногу D65.13  и отрезаем от нее 
сигнал  DMX, вместо  него  на эту 13ю ногу 
цепляем  сигнал  CMX  (это инверсный DMX - 
D68.9). 
========================================== 

Alone Coder 

                    3.

   Игра Pang выходила на следующих платфо─
рмах:

        Arcade (игровые автоматы)

Pang (1989) 
Super Pang (1990) 
Pang! 3 (1995) 
Mighty! Pang (2000) 

           Consoles (приставки)

Amstrad GX4000 (1990) 
 Super Nintendo (1992, 
                  "Super Buster Brothers")
Nintendo Game Boy (1993) 
Sony PlayStation (1997, 
                  "Super Pang Collection") 

          Computers (компьютеры)

Amstrad CPC+ (1990) 
Atari ST (1990) 
Commodore Amiga (1990) 
Commodore C64 (1991) 
Sinclair ZX Spectrum (1991) 

        Others (другие устройства)

Mobile phone [Nokia 7650] (2003) 

   Концепция  игры Pang разработана фирмой
Mitchell. 

Программисты: Hospitel Masa, 
              Mamichan Otona
Композитор:   Tamayo Kawamoto 
Дизайнеры:    Hiramattyo, 
              Oyuu
Руководитель: Kihaji Okamoto 

   AY-музыка  в  версии  для  ZX  Spectrum
(1991 года) такая же,как на аркадном авто─
мате, но  переписаная  под AY (в оригинале
там FM-чип YM2413). Кто переделывал - най─
ти не удалось. Есть  вероятность, что Tony
Williams (на это есть намёк в "YM index



Другие статьи номера:

Inferno - Авторы журнала.

Inferno - Вступление от редактора.

Inferno - Ошибки в предыдущих номерах.

Inferno - Об оболочке.

Железо - CD-ROM - устройство и хитрости подключения.

For Coderz - CD video на ZX. Как написать плеер видео с компакт-диска.

Sofтинка - Техническое руководство по дисковой системе DISCiPLE/+D.

For Coderz - Маленькие программерские хитрости.

Математика - История решения теоремы Ферма.

Gameland - Игра Шестнашки.

Sofтинка - Описания и история изменений программы для работы с жестким диском HDDoctor v0.9.

Секреты - Секретные кнопки в разных приложениях: Wolfenstein'2004, IG#5, ACEdit, DNA OS, Wild Disk Copier.

Sofтинка - Улучшения конвертора графики в Gigascreen.

Звук - Ламповые усилители. Стерео лампочник 2х5 Вт из старых телевизоров.

Железо - Обзор кассетных проигрывателей.

Inferno - Письма в редакцию.

Gamedev - История создания игры Pang.

Gamedev - Советы при написании аркадной игры.

Реклама - Реклама от Романа Чунина.

Реклама - Реклама от Алексея Жабина.

Реклама - Реклама от В. Богдановича.

Интервью - Интервью с Николаем Родионовым, автором известных книг для ZX Spectrum

For Coderz - Вычисление тригонометрических и алгебраических функций в языках высокого уровня.

DIY - схема 16-цветного видео-режим v1.1 для пентагона.

Железо - Описание микросхемы К555ТЛ2.

For Coderz - Программирование устройства генерации звука Turbo Sound.

Sofтинка - 384x304 viewer. программа позволяющая просматривать цветные картинки, по размерам превышающие экран.

Sofтинка - Эмулятор ZX Spectrum на ZX Spectrum.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Система - описание редактора и генератора спрайтов SCG.
Мысли - Ересь: Прочитал я Heresy 8, и, к своему удивлению, обнаружил там несколько моментов.
КлинМозгов - "Поднялся я из могилы, досмерти напугав какого-то бомжа"...

В этот день...   17 июля