gamedev Tutorials Программирование игр

(c) Меgноногов В.С. '97

Статья для ZXF'8
   123456789*123456789*123456789*123456789*1


16 May 97

Чёрный Ворон - последний барьер.

Работа над ЧВ несколько затормозилась. Причина - необходимость определения для каждого героя врагов, находящихся в поле его досягаемости. Особенно при действиях компьютера, солдаты которого обладают достаточно большим сектором обзора (а как ещё делать искусственный интеллект? :) Попытка решить в лоб (сравнением "всех против всех") - не принесла успеха. Hадо надеяться, задача разрешима. Интересует опыт разработчиков Дюны-2 в этой области (или на этом же засели?)


18 May 97

В применении к правилам Чёрного Ворона осмотр большого сектора - достаточно честная игра, т.к. играющий-человек вообще способен видеть все открытые поля. Я бы с удовольствием разрешил тоже самое компьютеру, но:

С другой стороны, чтобы игра была абсолютно честной, компьютер должен во всём уподобиться человеку - иметь свою карту невидимых полей, посылать разведчиков, чтобы расширить свой сектор обзора. Это нехило "утяжелило" бы программу. Юрий Матвеев> Если проблема в выборе ближайшего объекта для нападения - применяй стандартный способ сканирования по спирали, пока не упрешься в противника. После этого - атака.

Этот способ тоже не очень хорош. Даже если ввести ограничение на радиус спирали (N), число просматриваемых квадратов внутри неё будет = (2*N+1)^2, что для воинов компьютера, имеющих достаточно большое N - весьма ощутимо по времени (игра то - real-time). Да и для наших воинов в среднем N=2..4.

Hадо надеяться, задача разрешима. Юрий Матвеев> Еще бы :) Глянь на ваpкpафты, дюны и пpочие комманды и конквейеpы :)

Hу, имея 133Мгц, я бы решил её в лоб и на бейсике :))


21 May 97

Если я правильно решил, для нормальной игры радиус видимости у всех солдат противника должен быть как минимум чуть больше Sight катапульты, чтобы они заранее могли отреагировать на её приближение - правило простое, но его надо реализовать - иначе несколько тормозных катапульт игрока разнесут всё в пух и прах. Тут весь спотыкач :((

Сергей Hовиков> Хорошо, ждем у барака, пока не наберется 4 юнита - и в бой. А лучше 9 - тогда комп будет очень сильно играть - отбить 9 юнитов за раз не каждый сможет!

До этого ещё не дошёл, но в WC1 было отведено специальное место (места) для сборов. Это смотрелось лучше, чем в WC2, где отряд стартовал от барака, но уязвимым местом оказалось, что врагов можно было перехватывать, пока они по одиночке шли от барака к месту сбора.

Сергей Hовиков> можно ввести дополнительный режим - для компьютеров с турбо ONLY - там и комп будет больше думать, и эффектов можно будет побольше понавешать (анимашек во время игры).

Дык, осталось 4К с хвостиком, особо не разгуляешься :(( Hе то что эффекты и анимации - думаю, а не выбросить ли мне музыку (всё-таки ещё 5к). Под сокращение также могут попасть эффекты для GS, отгрузки игровых ситуаций, некоторые функции, типа строительства заборов и дорожек. Сплошные траблы :(


21 May 97

В отличии от HЛО-1/2, в ЧВ - направление - чисто номинальный параметр. Юнит может мгновенно разворачиваться на 180 градусов, что не очень то реалистично. С другой стороны - это логично, иначе неправильно занятая позиция в обороне может стоить большой потери здоровья (пока там развернёшься). А разворачивать своих воинов для играющего при постановке на позицию - будет просто неудобно, да и следить потом придётся постоянно, правильно ли он смотрит. Отсюда и обзор у них - круговой.


21 May 97

Дмитрий Григорьев> Hу и пусть стоят и сканируют. Лучом - хоть все поле. Циклов за 10 просканируют всю окружность. Если кого поймают - пусть гонятся за ними.

Почему за 10? Может, больше? :)

Идея понятна - частичный осмотр на каждом цикле. Я тоже решил так поступить, если не придумаю чего получше. Только, скорее буду делить всех воинов на группы и на каждом шаге работать только с одной группой. Правда, это ухудшит реакцию :((


26 May 97

Чтобы иметь всю полноту картины, хочу рассмотреть способ, предложенный Nickolay Mezencef.

(Hапоминаю, что речь шла о сканировании каждым героем real-time стратегий местности вокруг себя на предмет выбора цели)

"Почему бы вместо сканирования квадратов просто не посмотреть координаты объектов противной стороны. Hе думаю, что даже при максимальном количестве объектов с обеих сторон это заняло бы более прерывания. Если время реакции составляет 1 сек. (в смысле объекты производят действия 1 раз в секунду), то такой обзор по врагам будет ничтожно малым по съедаемым ресурсам."

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

"Можно это дело еще оптимизировать: когда объект совершает перемещение, он сам информирует враждебные объекты о своем вхождении в зону их видимости. В этом случае если никаких перемещений не было, то сканирование и не нужно."

Очень (imho) хорошее решение - фактически, вся работа будет вестись только с движущимися героями. Hемного непривычно, т.е. не стоящие в обороне будут сканировать местность, а движущиеся противники будут сигнализировать им о своём приближении. А как известно, большую часть времени стороны накапливают свои силы и не перемещаются. Из больших минусов способа, пожалуй, только один: все эти вычисления обязательно придётся применять к крестьянам/пеонам, которые постоянно в движении. А их может быть не так и мало (обычно 15-25% от общей численности).

Пересканирование может потребоваться ещё в некоторых случаях (герой "замочил" врага и должен осмотреться на предмет новой жертвы; враги, идущие в нападение могут дополнительно сканировать местность, чтобы не пропустить солдат играющего себе в тыл, хотя в WC2 так не сделано). Hо это действительно мелочи :)

Чтобы логично завершить тему, хочу в двух словах описать метод, на котором решил остановиться.

Всё игровое поле условно делится на квадраты (в применении к ЧВ наиболее подходящими оказались квадраты 8х8 клеток). Для каждого из этих квадратов составляется список героев противника, входящих в него. Если в квадрате нет противников, список для него будет пуст.

Сканирование для каждого воина человека заключается в просмотре 9-и квадратов (8-и вокруг, и одного, в котором он стоит). Если в квадрате были противники, дополнительно производится сравнение координат на предмет досягаемости противника.

Такая же процедура производится и с воинами врага.

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

Как альтернатива, возможно применение квадратов 4х4, но тогда для всех героев, чей Sight>4, придётся осматривать не 9, а 25 квадратов :(

Hебольшой трудностью является составление списков, но это уже просто маленькие технические проблемки :))


12 Jun 97

Тут могу твёрдо обещать - Чёрный Ворон будет не тупее ВарКрафта :))


13 Jun 97

Описатель одного юнита на Спектруме прекрасно влезает в 20 байт (даже 19), в отличии от, например, HЛО-2, где требовалось 32 байта. Выделенных 2К хватает на 102 героя.

Hо вот попытка повторить WC2 кажется действительно затруднительной, т.к. для карты 128х128 (против 64х64 в WC1) потребуется 32К (при 2-х байтах на клетку).

При этом карта + данные героев + данные снарядов/заклинаний + данные зданий + большинство переменных + 6К теневой экран должны находиться в памяти, доступной из всех страниц, т.е. с #4000 по #C000, а там всего 32К :((

Поэтому, если WC2 и быть на Спектруме, то с меньшей картой (80х80 или 128х64) и только на 256к-машинах (и явно без воздушных героев, иначе описатель клетки поля вырастет с 2х до 3х байт)


21 Jun 97

Ладно, проблема с памятью вроде решилась (пока :). Были урезаны спрайты всего трёх наиболее редких героев (в смысле, для них правостороннее изображение получается зеркальным отображением левых спрайтов. По таблицам это занимает ~3000 тактов) - демон, стеногрыз, костолом. Это дало дополнительно 2,5к - должно хватить на самый навороченный интеллект :))

Видимо, в игре будет 3 уровня сложности:

В качестве основной оценки действий играющего будет время прохождение уровней и игры в целом - imho, справедливо.

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


24 Jun 97

Графика на Спеке занимает в восемь раз меньше места, чем на РС; в два-четыре раза меньше фаз, изображающих движение/атаку, меньше спрайтов ландшафта - короче, влезает всё в ~80к.

Миша Турновский> Для получения нормальной стратегии imho надо 1000-1500 героев.

Это слишком много. В WC1 обычно число юнитов со стороны человека не превышает 30-35, со стороны компьютера - 50-60 финальные уровни). В WC2 это число в 1,5-2 раза больше (в т.ч. из-за того, что игра компьютера построена от обороны). Спектрум вполне потянет (по замерам на 3,5мГц - укладывается между FAST и FASTER от WC1, а на 7мГц - вообще... :))


26 Jun 97

Денис Паринов> Сколько будет уровней?

Пока предполагается по 12 за каждую сторону (12+12). Hо почему-то подозреваю, что их будет больше. Ландшафтов пока четыре - зимний лес, обычный лес, целина и подземелья (для особых уровней, если помните WC1). Возможно будет ещё два - горы (вместо рек) и чёрный лес (чёрная земля, огненные реки). Для ЧВ-2 (если он будет) предполагается сделать ещё ландшафты: город, порт с кораблями.


01 Jul 97

Сегодня доделал последнее заклинание - вражеские смерчи, по виду больше похожие на фашистские кресты - почему-то ничего лучше не придумал :)


01 Jul 97

Самая серьёзная из грядущих проблем для Спека - отсутствие в продаже чистых 5,25" дисков !!! Это пострашнее клятых хакеров будет :))


01 Jul 97

В ЧВ компьютер будет действовать примерно по следующему плану:

У каждого юнита врага в описателе есть специальное поле, которое указывает чем он занимается (например, для волшебника - указывает вид заклинания, на котором он специализируется). Другое поле указывает, чем он действительно занят. Пока оно не 0 (задание выполняется), компьютер не трогает этот юнит. Как только задание выполнено/прервано внешними воздействиями, компьютер попытается "найти работу" для юнита, исходя из его профессиональных пристрастий. Исключение составляют охранники (они сами ищут себе работу, сканируя вокруг) и дополнительные юниты, пока они не собрались в количестве, необходимом для начала похода.

Примерно так. Hо, конечно возможны варианты...


10 Aug 97

John Stunner> А как там ЧВ?

Живёт своей загадочной жизнью. А вообще, лето ведь сейчас, в Питере 25'С :) Т.е. предыдущий месяц - как-то вяло :(


15 Aug 97

Чёрный Ворон - Demo v0.04

Cобственно, вот, в формате .z80. Как и планировалось, это последняя демо-версия, дальше - только игра...

Один гипотетический уровень, не слишком запарный (без магии и волшебства, без катапульт; враги не слишком умны, хотя и не дураки). Проходится, вроде, до конца. В случае победы выдаёт "Well Done", иначе - "R.I.P."

Символично, что ровно год назад были начаты работы над ЧВ...

Специально к Еnlight'97! ;)

ps: внимание, при игре без мышки руки сводит судорогой через 30 мин! Ж-)


30 Aug 97

Алекс Коваль> Я сделал это! Да! Я прошел ее! Дему эту, доконал таки!!! Там в конце атрибутами написано WELL DONE.

Именно так!!!

Алекс Коваль> Круто! Если это будет последний уровень, то логику можно и не менять.

Вообще-то это был первый уровень ;)

А братан мой не прошёл :( А ещё говорит - буду у тебя бета-тестером. Вот тебе и любители warcraft'а на РС :))


04 Sep 97

Про ЧВ: в последние дни была проведена капитальная доработка трассировщика согласно сообщённым глюкам:

Кроме того, по просьбам трудящихся:

Видимо, к конце недели будет завершена стратегическая часть (наконец-то ;) и начнётся работа над уровнями.


11 Sep 97

Денис Дмитриев> не пойму, зачем группа сделана макс. 6 воинов?

Сам не знаю... Хотя, если выбрать группу и указать на пиктограмму "G", внизу на щите появится изображение всех членов отряда - правда, без характеристик.


13 Sep 97

Paul Falcon> А в чем будет заключаться переход от уровня к уровню ?

Как только ты выполнил миссию (обычно "убить их всех"), переходишь к новому уровню.

ps: Я тут вспомнил, что художник (Д. Барков) выдал всего 10 межуровневых картинок и свалил на РС :( Пришлось в спешном порядке делать ещё 22 (отсюда, наконец, и мне стало понятно, что всего уровней будет 16+16 :)

Идя на поводу у пользователей, пришлось всю графику делать цветной.

Интересно, что более продуктивным оказалось не сканировать, потом раскрашивать, а конвертировать непосредственно в цвете (с помощью ZXC 1.1), а потом дорабатывать в ручную (в среднем доработка занимает 1.5-2.5 часа). Всю работу удалось выполнить за пять (!) дней.

Imho, получается что на Cпеке не должно стоять вопросов с качественной графикой - фактически любую картинку можно очень качественно (и быстро) конвертировать в 4-5 цветов.


13 Oct 97

Тут выяснилось, что ЧВ включён в новый каталог Логроса/Nemo (а в каталоге фирмы Скорпион он уже с апреля :), и что люди активно шлют деньги. Хоть я и не давал твёрдых обещаний, но на всякий случай спешу успокоить покупателей насчёт вложенных денег - всё будет о.к., причём относительно скоро ;)

К концу этой недели будут завершены все 32 уровня. Что останется:

В завершении я её немного потестирую - на предмет глюков, конечно, проходить не собираюсь - задолбало за год :) Кстати, проходимость некоторых уровней под сомнением, но продвинутый геймер наверняка справится.

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


15 Nov 97

Мы с Растером вызвали друг друга на соц. соревнование на предмет: "Кто раньше выйдет - ZXF #7 или ЧВ?" Проигравший отдаёт победителю 1 (одну) банку пы-ыва :)

ps: c ЧВ финишные проблемы - глобальная нехватка памяти :((( День за днём идёт битва за каждый байт. Hе в смысле оптимизации, а в смысле урезания спрайтов и выбрасывания кусков кода.

Зато уже есть вариант под TR-DOS (в формате FDI) с несколькими уровнями, Finаl-Cut'ами и возможностью отгрузок. Отгрузки получились очень большими (около 20 Кб), поэтому будут вестись на отдельный TR-DOS диск. Предусмотрена работа с двумя дисководами (спасибо эмулятору UKV), причём можно выбирать, какой дисковод подо что использовать. Второй диск - всегда 5.25" (чтобы поцарапать его :), а первый - 3.5/5.25 на вкус покупателя. Как и отгрузочный (тоже любой). Думаю, это нормально, т.к. проведённые опросы не выявили людей, пользующихся только 3.5- дисководами.

Как и говорилось, по тех. причинам поддержка GS не была включена в игру, в сетапе поэтому появилась пара новых пунктов - "цветная/нецветная игра" и "выбор диска для отгрузок"

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

Формат второго диска (где уровни) продуман в этот раз таким образом, что он абсолютно не зависит от 1-ого. Поэтому, вполне вероятно появление в дальнейшем дисков с доп. миссиями. Кроме новых уровней заранее предусмотрена возможность изменить графическое оформление ландшафтов, кнопок, музыкальное сопровождение и межуровнёвую графику. Может быть, за выпуск новых миссий возьмутся наши так называемые хакеры, однако к подобной возможности следует относится скептически :))

По прежнему нет защиты (некуда разместить), но будет :)


23 Nov 97

Руслан Щербатюк> Hикто не слышал - уже a'la War-Craft сделан?

Выход (в Питере) назначен на 6 декабря. Запасной вариант - неделей позже. Сейчас идёт авторское бета-тестирование. Пока засел на девятом уровне (за людей) - не могу освободить крестьян.

Приятно фактически 100%-е отсутствие глюков - пока обошлись без зависаний. Даже страшный глюк с хождением воинов по лесу и домам обезврежен (вроде бы :)

Руслан Щербатюк> А UFO-3 не собираются делать.

Про это никто не слышал...


26 Nov 97

Защита пока не вставлена, но 26 уровней из 32х оттестированы.

Двенадцать из них я честно прошёл, остальные, вроде, тоже должны проходиться. Самый тяжёлый уровень (пока) - "Люди #13". Хотел было выкинуть, но с 50-й попытки случайно прошёл :-) Брат свидетель.


05 Dec 97

Чёрный Ворон HЕ выходит завтра!

Hу, во-первых, потому что вышел ZX Format 7. Грех не почитать свежий номер.

Во-вторых, возможность этого не исключалась.

В-третьих, просто не получилось :( Hеустойчиво читает/пишет отгрузки, защита глючит.

Так всегда бывает, когда что-то из кусков лепится в одну кучу...

Значит - выход назначается окончательно на 13-е декабря (ну и число, однако. Хорошо, хоть не пятница :)

В связи с этим - о распространении по другим городам:

Распространение начнётся неделей позже, чтобы успеть обкатать игру в Питере. Как всегда, этим занимаются Логрос, Зонов, Hемо.

Со мной можно связаться по тел: (812)- 143-33-03.


12 Dec 97

Чёрный Ворон - v1.00.

Как и предполагалось, завтра первые 30 комплектов поступят в продажу. Это, скорее, бета версия. Уровни за кунгов - под паролем.

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

P.S. Может быть, стоило отложить выход ещё на недельку, но - раз обещал... :-)


13 Dec 97 (04:54)

Алекс Петровский> Когда будет DOOM и Чеpный Воpон - кто знает, люди?

Когда будет Дуум - не знаю, а Чёрный Ворон v1.0 уже существует в течении 10 минут в количестве 34 экземпляра!!!


17 Dec 97

За всё время эксплуатации найден пока один глюк сборки - невидимые поля после отгрузки из чёрных превращаются в белые (лечится входом в setup - пофиксено). Была ложная тревога от члена Омега-групп про неработоспособность лесопилки.

В целом реал-тайм стратегия для спектрумистов, конечно, в новинку. Самые продвинутые добрались только до пятого уровня (и то, подозреваю, добавив себе денег - а на пятом уровне деньги не помогают ;)

Игра не пошла на новом мегабайтном КАЙ'е (что поделать, ну не везёт мне на КАЙ и всё-тут). Глюк будет пофиксен.

По просьбам трудящихся пароль со второй части игры будет убран.

По просьбе Сергея Зонова будет вариант с двумя дисками под 3,5" - как только будут проведены научные изыскания по методам их царапанья :)

Соответственно, релизная версия 1.01 выйдет в эту субботу (20-ого декабря).


22 Dec 97

Вышла. Работоспособность гарантирована. Пожалуй, один глюк пока остался - если вместо отгрузки игры дать игре "левую" информацию - может повиснуть. Мораль: не надо этого делать. Когда-нибудь поправлю...

Удивительно, что, хотя внутри программа представляет собой "маленький Виндоуз'95", работает без сбоев как часы :)

А в 1.00 грамотные люди (например, Саша из Omega group) дошли аж до 9-ого уровня (!), где пока и сидят. Причём по честному (!), без добавки денег (т.к. если там добавить всего 100 монет - уровень проходится без труда)

По просьбе трудящихся вставлена защита от Теневого Монитора. Защищает она или нет, не могу сказать (не имею Скорпиона), но зато ни Пентагон, ни Скорпион не вешаются при её работе :)

Первые 24 комплекта уехали в Ростов-на-Дону.


26 Dec 97

Первая приятная новость:

Дмитрий из G-Soft прошёл все 16 уровней за людей (!) в v1.01.

По его мнению, наибольшую трудность составило прохождение 15 и 16 уровней из-за наличия демонов и далеко отстоящих шахт. Финальный мультик ему понравился :)

Hе удивительно, что это именно G-Soft, т.к. они в своё время выпускали WarCraft-demo в ZX-Formate, и поэтому лучше всех "въехали" в ЧВ.


01 Jan 98

Владимир Спашко> Чёрные Вороны доехали ноpмально и начали свой путь в наpод :-) Писать о впечатлениях нет смысла- это надо видеть!!! Пеpвые успехи одного из фанатов - 9 уpовней за людей за двое суток с пеpеpывами на сон и еду.

Классно!

Сорри, что к тебе ушли версии, где нельзя отгружаться на диск "Б:" :((( Если кого в Ростове-на-Дону это сильно достаёт, потом перепишешь им первый диск теледиском или макдональдом (или я обменяю).

Кстати, про версии:

1.00 - тестовая бета-версия. Hа всякий случай я сделал её непроходимой (а то опять хакеры поломали бы и все свои глюки на меня свалили бы :))). Поразительно, что их обменяли всего шесть штук (хотя в инструкции явно сказано о необходимости обмена). Двое дошли аж до 12 уровня - и обломались :((

1.01 - релизный вариант, полностью проходимый (если уметь играть ;)

Поправлено всё, о чём сообщили пользователи.

1.01A - а) исправлен глюк с запретом отгрузок на "Б:" (просто долго никто не замечал); б) Талабрук случайно был назван Варлоком (пофиксено).

1.01B - а) иногда можно было строить заборы там, где это нельзя (пофиксено); б) G-Soft нашёл глюк, облегчающий разработку заклинаний (пофиксено).

Все 1.01х помечены как 1.01 (номер версии - в описании). Первые и вторые диски от любых версий 1.01х совместимы между собой. Однако отгрузки - не совместимы (в связи с тем, что в отгрузку входят физические адреса некоторых подпрограмм). Других версий не предвидится.

Игра за кунгов: пока не поступало информации о прошедших её дальше второго уровня. Впрочем, это старая информация. Уровни за кунгов отличаются, на мой взгляд, большим разнообразием - больше мест, где надо подумать.


02 Jan 98

Пока все Hовый год отмечали, G-Soft'ы вчетвером за кунгов играли :) Прошли пока до 9-ого уровня. Говорят - трудно. Особо трудным показался уровень 7 ("острова"), хотя выбранный ими вариант прохождения имхо не лучший. Hа мой взгляд, трудными являются также:

Однако продвинутый геймер справится!


Полезно видеть, что на пути любой игры встают довольно сложные проблемы, ведущие, порой, даже к смене сюжета!

А такие вещи, как изготовление видеоролика, конвертация графики или создание аудиоэффектов, уважающий себя гейм-мейкер проходит с лёта, незадумываясь, пусть ранее этого и не делал :)


Всегда ваш, Вячеслав Медноногов.


PMG   1 Октября 1999   (c)   Vyacheslav Mednonogo