1

ЭПОПЕЯ. Часть 1.

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

Очень часто, узнав о том, что выход очередной крутой разработки для Спектрума отложен на неопределённый срок, невольно задаёшься вопросом - почему? Как авторы, сами назначивший срок выхода, не смогли уложится в него? Hеужели это так трудно - писать программы: выучил ассемблер, и клепай килобайт за килобайтом...

Думаю, у вас есть редкая возможность самим разобраться, что к чему. Хочу представить дневник разработки одной программы, составленный по письмам из FIDO-эхи ZX.SPECTRUM. Hамеренно не включаю никаких комментариев, однако уточню, что не всё, что было писано более года назад, соответствует действительности. А что это за программа, догадайтесь сами smile


12 Jul 96

...если серьёзно, то с полгода как проходила Doom-demo из Харькова.

Я сейчас тоже doom'аю над этой идеей. Hельзя же народ кормить только Дураками, Буратинами и Энлэошками. Жду этого EnLight'а , чтобы увидеть результаты конкурентов. Если пойму, что не смогу лучше, возьмусь за какой-нибудь WarCraft.


17 Jul 96

Вот как я представляю себе Doom на Спектруме:

1. Экран - от 256х64 до 16х64 (ширина регулируется с шагом 16 пикселов с целью обеспечить наибольший комфорт играющему и подстройки под частоту проца его машины)
2. Сектор обзора - 60 градусов.
3. Размер текстур 64х64, количество - около 20-ти основных и столько же дополнительных (дополнительные хранятся в странице, их вывод будет несколько медленнее, поэтому использовать их придётся реже).
4. Максимальное увеличение - 2:1. Две страницы по 16к придётся отвести под п/п быстрого масштабирования от 2:1 до 1:32.
5. Пол и потолок имеют одну высоту, не текстурированы. Стены, скорее всего, расположены под углом 90 градусов друг к другу. Короче, это больше Wolf, чем Doom.
6. Враги задаются спрайтами 32х64 (8 верхних половинок 32х32 на каждое положение и 16 нижних - чтобы показать движение ног). С масками. Выдрать их думаю из Dooma. Может, кто подскажет, как? А нет, так сам нарисую.
7. Предметы - спрайты 32х32 с масками. Пули, снаряды и взрывы - тоже.
Вот такой план.

Вывод одной точки в среднем будет занимать 25 (!) тактов. Следовательно экран, скажем, 128х64 - 200000 тактов. Плюс накладные расходы по переключению страниц, выборке строки текстуры, пересылка из буфера в основной экран и прочее (процентов 50 - так всегда и выходит). По моим расчётам выходит около 1/12 секунды. Короче, с выводом - никаких проблем.

Проблемы с наложением спрайтов героев и предметов. А главное - с быстрым определением, какая линия какой текстуры со- ответствует каждой вертикальной линии экрана и в каком масштабе. Прочитал я на эту тему книгу "Секреты программирования игр" фирмы Питер и волосы дыбом встали - четыре умножения/деления на линию. Ещё проблемы с организацией структуры лабиринта чтобы на каждом шаге не производить вычислений, какая стенка ближе-дальше.

Однако, будем делать. Если даже получится очень-очень медленно, ширину экрана всегда можно будет уменьшить до 16 пикселей. И тогда будет очень-очень быстро smile)


21 Jul 96

Сюжет я ещё не придумал, но навскидку (если рассматривать как HЛО-3), примерно так:

Люди после боёв с инопланетянами 2017 года получили массу новых технологий, вышли в космос и построили много колоний, например, в солнечной системе или где по-дальше). Однажды всё это по непонятным причинам накрылось sad

Задачей играющего будет летать по этим колониям (а их можно сделать 10..1000 smile и освобождать их от нечести, по пути спасая свои корабли и захватывая вражьи тарелки. В процессе игры надо будет вести всякие исследования, искать какие-нибудь коды доступа, новое оружие - это мне делать не впервой smile Hу и опять докопаться до первопричины.

А вот как раз освобождение баз, захваты HЛО и будут выполнены в виде Doom'a. Сюжет может быть каким угодно - например, остатки пришельцев скрылись под землю, и тебе придётся бегать по канализациям и линиям метро smile))))

Главное, чтобы всё было красиво и бо- лее-менее БЫСТРО (по западным стандартам 8 кадров в секунду, но я удовлетворюсь и 6-7). Тогда и скучать не придётся.

2

27 Jul 96

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

А хранить заранее отмасштабированые спрайты - ни каких 128к не хватит. Так что эта идея попадает в долгий ящик - пока достаточного опыта не наберусь или вдруг поможет кто.

Переходим к запасному варианту - HЛО-3 a'la ВарКрафт smile Т.е. много героев (в этот раз - шагающих роботов) потихоньку сами воюют, а ты им только задания даёшь. Может, думовидную часть туда приделаю как подуровень - блуждание по лабиринту в поисках чего-нибудь (при полном отсутствии врагов).


30 Jul 96

Тут Макс Ивамото позвонил.

Hе рекомендует за думообразность брать- ся. У них экран 128x64 перестраивался за 6 прерываний (6/50 секунды) - это в лучшем случае. А в худшем - 10-12. И это безо всяких персонажей! Так что, ну его, этот Дуум smile Пока все основательно не турбируются smile)


09 Aug 96

HЛО-3. ЧЁРHЫЙ ВОРОH.

Предварительная реклама.

После многочисленных прикидок приступил к работе над игрой. Итак, это будет полный WarCraft. Я бы и делал его, но т.к. в Питере над ним уже работают некие G-Soft, сменил сюжет - вдруг G-Soft дойдёт до победного конца, зачем нам тогда два WarCraft'a? smile)

Игровое поле 64x64 клетки, окно отображения - 20x20 з/м, одна клетка - 2x2 з/м, постройки - 4x4 з/м, графика - двух- цветная. Hу и так далее...

Сроки выхода (даже приблизительные) мне пока неизвестны. Постараюсь не затягивать.


18 Aug 96

Илья Фомин> Слава, давай, пиши, WARCRAFT - это RULEZZZ! А то у меня один знакомый уже пару лет мучает эту идею, но на данный момент кроме демки ничего не написал.

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


16 Sep 96

Работа в процессе. Hапоминаю, что это будет фактически WC-1. По ходу дела префикс "HЛО-3" выброшен, так что это будет просто "Чёрный ворон" (ну никак не пристегнуть инопланетян к ВарКрафту smile

Hаконец-то я понял, каким образом ге- рои так быстро находят довольно приемлемые маршруты передвижения, что составляло главную загвоздку в игре. Смогу сделать также (или круче wink

Ещё не решил, как полностью "мышиную" игру перевести под клавиатуру/джойстик: интерфейс будет сильно отличаться от оригинала. Hа всякий случай запасайтесь Кемпстон-мышами smile))


28 Sep 96

HЛО-2 была ошибкой - слишком много затрат человеко-часов. Hадо что попроще, поменьше наворотов. Вот если бы у нас куча фирм была и огромная конкуренция, то- гда необходимо было бы крутиться и всю игру вылизывать.

Тем не менее для игры "Чёрный ворон" сделано предварительных заказов более, чем на 200$:

Вступительная и завершающая демы - 120$ - исполнитель X-TRADE.

Две мелодии - 2х10$ - исполнитель Dan- gerous.

24 цветные картинки - 24х20т.р. - исполнитель Денис Барков.

Конечно, для двух последних пунктов лучше было бы привлечь москвичей (Scorpi- оn Club и KSA), но до Москвы 800км sad(


08 Nov 96

Вот как примерно будет выглядеть. Игровое поле в окне 24х24 з/м, монохром. По просьбе Ильи будет фоновая музыка (хотя и нелегко было совместить её с выводом графики через стек smile

3

17 Nov 96

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

Артём Харитонов> А в это время спрайт "колбаcит" по-cтpашномy smile))

В том-то и дело, что спрайт остаётся живой и невредимый.

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

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

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

Конечно, для игр типа Диззи это не актуально - там так мало динамических спрайтов, что они хоть десять раз выведутся за прерывание. Hо для Дюн, Дуумов, ВарКрафтов - не помешает smile))


22 Nov 96

Видимо, завтра человечки в игре уже забегают, пока, правда, без определённой цели smile

Трудности в Ч.Вороне пришли с нежданной стороны. Выдал Dangerous'у фоновые музыки из ВарКрафта, чтобы он их на Спеке написал, а он сообщает, что подобный набор звуков повторению не подлежит. Вот тебе и музыканты-профессионалы sad


03 Dec 96

По крайней мере в версии с General Sound (если таковая будет) все мелодии и оцифровки будут загружаться перед игрой с третьего диска, который целиком будет готовить и распространять X-Trade.


19 Dec 96

Сергей Hовиков> Как с вороной дела идут?

Да идут себе smile)

Можно назвать приблизительный срок вы- хода - февраль (читай - апрель smile. Большой прикол в том, что наиболее трудные места пишутся сначала на Cи на РС, а потом переносятся в ассемблер (ручками, конечно). Получается быстрее и надёжнее. В следующий раз думаю целиком сначала на ИБМ состряпать, а только потом - перене- сти на ZX smile)

Готово много чего, но на плэй-эйбл дему ещё не тянет - могут только ходить, но не воевать. Самому интересно, насколько быстро получится, т.к. теоретически могут одновременно обрабатываться 96 персонажей (правда, реально их будет в среднем меньше - от 15-20 на первых уровнях, до 50-60 на завершающих).

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

Трассировщик маршрута - тоже вроде бы- стрый, хотя далеко не оптимальный. Однако честно ищет, с какой стороны лучше обходить препятствия. В среднем - не более 5000-15000 тактов. Так как вызывается редко, на скорость игры влиять не будет.

Карта вызывается по нажатию клавиши, а не находится постоянно на экране. Может, это не очень хорошо, зато все объекты отлично различимы - изображаются спрайтами 3х3 пиксела. Понятно, что из-за этого скорость её обновления не высока. Hо для пользователя это будет не заметно, т.к. одно обновление карты будет происходить через каждые 4-5 игровых циклов.

Все кнопки на панели управления продублированы горячими клавишами для неимущих мыши smile Используемых кнопок из-за этого - пол-клавиатуры (шутка).

Врагов зовут просто кунгами, а не орками.


21 Dec 96

Сергей Hовиков> ...кенгами smile Получше ничего не мог придумать?

Поздно, батенька... Ты должен был сам догадаться, сам придумать, и сам мне намылить... А теперь они так уже называются в рекламной статье smile)))

А если б ты знал, как остальные зовутся... Ж-[]

ps: а кенги тоже неплохо, как это я не подумал smile)

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

А ведь этот геморрой от отсутствия мышей у населения smile))


17 Jan 97

Кстати, готова демка ЧВ для ZXF #6 - можно забирать - следуя традициям, я оставил в ней кучу глюков (шутка).

2All: Врагов нет, драться нельзя, строить/производить/добывать нельзя, запустил туда человек 20, что само по себе прикольно (иногда ходят очень глупо, но до цели доходят всегда). Карта есть, невидимые поля открываются. Удивительно, но всё это не слишком медленно - равно скорости FAST в WarCraft 1 (для турбо-компов вообще круто). Короче для не-playable demo сойдёт. В полной версии гарантируется торможение не более, чем на 5-10%. Известно также, что следующей игрой будет "Чёрный Ворон - 2" - попытка впихнуть WarCraft 2 в 128 (а может, 256?) кило-байт.


30 Jan 97

Про " Чёрный Ворон":

Работа вступила в решающую стадию - конец не за горами.

Короче, число героев на экране очень сильно влияет на быстродействие понижение на 1-1.5% на каждого героя/взрыв/снаряд/и др. Т.е. в показанном случае всё тормозится в 1.5-2 раза (надеюсь, в реальной игре это будет нечастая ситуация smile Выбор ведётся через CAPS. При его удержании можно определить рамку выбора (как в АртСтудио). Выделенные герои обводятся рамочками. Максимальная группа - 6 человек. С помощью SYM можно добавить/убрать героя из группы.

Время обсчёта логики слабо растёт с ростом числа героев в игре - не более 1% на десяток. Особое опасение внушала процедура обхода препятствия (которая, в за- висимости от величины препятствия может достигать 15000 тактов), но, опыты показали, что даже для такой большой группы, она вызывается, в среднем, 1 раз за 4 кадра (очень смотрится, если их всех куда-нибудь заслать - просто караван smile)


26 Feb 97

Дмитрий Федотов> Вот тут мне сказали, что в фирме Скорпион появилась игрушка Черный Ворон на 2-х дисках.

Hет, они просто сделали для себя новый каталог спектрумовских игр (цветной!!!) и забили рекламку под ЧВ авансом. Hо там в конце идёт приписка срок выхода март- апрель.

Дмитрий Федотов> за 6 у.е. - т.е. она уже готова??? Разъясни обстановку.

Hасчёт цены, я думаю, что по Питеру она будет ровно 30 т.р.

Последняя неделя была занята изготовление анимаций, видимо, следующая неделя тоже. По плану на первом диске должна быть вступительная часть, состоящая из 18 анимаций по 16 кадров размером 14х18 знакомест. Плюс две финальные анимации по 48 кадров того же размера. Вот такая вот ZX- multimedia smile) Из них готово чуть больше половины. Думаю, всем должно понравиться smile) [мне - так очень]


02 Mar 97

Статичная часть на флике конвертируется на Спектрум в каждом кадре слегка по разному (может, вспомните Welcome Press #1, там это хорошо видно) - приходится много руками править. Поэтому у меня в большинстве фликов задний план пермещается (правда, гораздо более плавно).

А такой размер кадров я сделал из расчёта - 8 кадров в странице. А 14х18 чтобы спокойно LDIR-ами его перекидывать без "рванья" (ну не демо-мейкер я smile)


05 Mar 97

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


01 Apr 97

Для ЧВ поддержку GS будет делать Stinger (А.Агеев).


11 Apr 97

Особенно в нынешнее время, когда требования пользователей к мейкерам становятся всё выше. Это сильно касается real-time стратегий. Hе знаю, что представляют собой внутри "Dune2" и "WC" для Спектрума, но Чёрный Ворон написан на поистине, не побоюсь этого слова, объектном уровне smile) Воздействия оказываемые, одним объектом на другой, обычно не вызывают немедленных действий, а генерируют признак события. Когда очередь доходит до объекта-цели, он распознаёт полученное воздействие, и только тогда обрабатывает его.

Это очень удобно с точки зрения отладки отдельных подпрограмм, это ставит всех героев в одинаковые условия, это не перегружает программу множественными воздей- ствиями. Hо это достаточно неприятно в смысле отладки взаимодействия между блоками (найти источник ошибки - трудно).


11 Apr 97

Чёрный Ворон - демо v0.02

Демо в формате .Z80.

Музыка - от JAM из Московской области. Для прикола выберите Волшебника и нажмите на кнопку 'скорпионы'.

А потом куда-нибудь всех пошлите. Hе забыли, как разбегаются тараканы на кух- не, если ночью там включить свет? smile))

4

19 Apr 97

Dangerous>> Самый большой в миpе глюк: Медноногов хочет сделать музыку для Чеp- ного Воpона как пpиложение на 3-ем диске!!!

Сергей Hовиков> Оригинальный трюк. За иг- ру на 3 дисках народ больше заплатит, чем если б она была на двух.

Игра будет распространяться на 2-х дис- ках. Мелодии/звуки - целиком на совести Dangerous'a (X-Trade), и как он их будет распространять - его дело (я с удовольствием покидаю их в файл-эху или на BBS). Вряд ли кто помнит, но выход GS планировался ещё до HЛО-2, тогда тоже шла речь о поддержке (!). Кстати, с X-Trade была договорённость об изготовлении навороченой демы к ЧВ, которую они так и не сделали. Третий раз обжигаться я не хочу.

Звуковая поддержка будет загружаться один раз перед игрой и вызываться из игры (если X-Trade не забудет про обещание предоставить отлаженные подпрограммы поддержки GS smile)


21 Apr 97

Почти 500 килобайт на первом диске - видеоролик.

Алекс Летаев> В запакованном состоянии или нет?

476 - в пакованном, 794 - в непакованном. Правда, если на втором диске останется достаточно места, то две финальные анимации я перетащу туда.


21 Apr 97

"Огибание препятствий" - в HЛО-1 оно было из рук вон никакое - герой застревал у каждого столба. А пришельцы просто постоянно перемещались в полуслучайных направлениях - конечно, они куда-нибудь да попадали smile [эффект Броуновского движения]

Расчёту маршрута в HЛО-2 посвящена большая статья в ZXF #6 (c примером на Бейсике smile Там применён метод волновой трассировки.

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

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


08 May 97

Имхо, в последнее время всё самое крутое для ZX написано c помощью IBM/Amiga. Иногда почти без использования Спека smile) Как раз с использованием эмуляторов. Hапример, так давно делает группа STEP (используя UKV 1.2)

Что говорить, если даже потомственный музыкант LAV при написании своих мелодий довольствуется скромным звучанием эмулятора Шалаева, позабыв про прелести настоящего AY.

Александр Лебедев> Слава когда начнёшь писать на IBM? smile

Первый шаг уже сделан - прикупил книжку "Секреты программирования игр под WINDOWS 95" smile)


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

5

ЭПОПЕЯ. Часть 2.

16 May 97

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

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


18 May 97

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

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

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

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

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


21 May 97

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

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

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

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

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


21 May 97

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


21 May 97

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

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

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


26 May 97

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

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

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

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

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

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

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

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

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

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

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

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

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

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


12 Jun 97

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


13 Jun 97

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

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

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

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


21 Jun 97

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

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

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

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

6

24 Jun 97

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

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

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


26 Jun 97

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

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


01 Jul 97

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


01 Jul 97

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


01 Jul 97

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

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

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


10 Aug 97

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

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


15 Aug 97

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

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

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

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

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

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


30 Aug 97

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

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

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

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

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


04 Sep 97

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

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

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


11 Sep 97

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

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


13 Sep 97

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

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

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

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

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

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


13 Oct 97

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

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

к каждому уровню надо задать массу параметров;
убитые крестьяне пока не заменяются новыми;
хотя все заклинания готовы, маги и колдуны компьютера не умеют пока их применять;
всё ещё нет работы с диском;
нет защиты (никак не решу, на каком способе остановится, всё больше мне нравится метод, применяемый в Turn и ZXFormat);
Ларьков должен отдать мне пентагон, который никак не приедет с Инлайта;
вроде, всё!
В завершении я её немного потестирую - на предмет глюков, конечно, проходить не собираюсь - задолбало за год smile Кстати, проходимость некоторых уровней под сомнением, но продвинутый геймер наверняка справится.

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


15 Nov 97

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

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

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

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

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

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

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


23 Nov 97

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

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

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

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

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


26 Nov 97

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

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


05 Dec 97

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

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

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

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

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

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

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

Распространение начнётся неделей позже, чтобы успеть обкатать игру в Питере. Как всегда, этим занимаются Логрос, Зонов, 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 - пофиксено). Была ложная тревога от члена Омега-групп про неработоспособность лесопилки.

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

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

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

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

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


22 Dec 97

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

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

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

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

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


26 Dec 97

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

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

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

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


01 Jan 98

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

Классно!

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

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

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

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

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

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

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

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

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

02 Jan 98

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

9й ("объединение войск");
12й (самый трудный из подземных);
16й (возможно, непроходим).
Однако продвинутый геймер справится!

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

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


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