Translations/Epopee

Материал из SpeccyWiki
Версия от 13:16, 13 ноября 2014; Alone (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Epopee by Vyacheslav Mednonogov (ZX-Format #8[1][2])

Part 1

When we hear sometimes that another cool thing for ZX Spectrum was postponed for unknown time we ask - why? Why authors who've set the launch date themselves couldn't make it in time? It is really so hard to write programs? Just learn assembly language and write one kilobyte after another...

I think now you have rare opportunity to understand this yourself. Here I want to present a diary of making one program, collected from messages to ZX.SPECTRUM conference in FIDO. No comments, in purpose. You should know though that not everything that was said more than year ago is still true. What program is it? Guess yourself :)

Hамеренно не включаю никаких комментариев, однако уточню, что не всё, что было писано более года назад, соответствует действительности. А что это за программа, догадайтесь сами :)

12 Jul 96

...to be serious, half a year ago there was a Doom-demo from Kharkov.

Now I'm thinking about this idea too. You can't feed people with games like Durak, Buratino and UFO forever. Waiting for Enlight'96 to see works from my competitors. If I see that I can't do better, I better start something like Warcraft.

17 Jul 96

That's how I see Doom on Spectrum:

  1. Screen - 256х64 to 16х64 (width can be adjusted by 16 pixels to make the player comfortable enough with his CPU's frequency).
  2. View angle - 60 degrees.
  3. Texture size - 64х64, 20 base textures, 20 additional ones (additional textures to be kept in high memory, so they will be drawn slower and used rarely).
  4. Maximum scale - 2:1. Two 16K pages for fast scale subroutines from 2:1 to 1:32.
  5. Floor and ceiling are at fixed height, not textured. Walls almost certainly should be at 90 degrees to each other. So, it's more Wolf than Doom.
  6. Enemies are 32х64 sprites (8 top halves 32х32 for any position and 16 low halves to show moving legs). Masked. I plan to rip them from Doom. Maybe someone tells how? If not, I'll draw them myself.
  7. Objects are 32х32 sprites, masked. The same for bullets, projectiles, explosions.

So that's the plan.

One pixel will be drawn in 25 (!) t-states in average. This means the screen, say 128х64, will be 200000 t-states. Add extra work to switch pages, select texture line, move buffer to actual screen etc (around 50 percent overhead as always). My calculations give 12 FPS or so. In short, there's no problem with drawing walls.

There is a problem with adding sprites of characters and objects. Especially how to find quickly, what line of what texture is drawn on given screen vertical line and in what scale. I picked a book on this topic, "Secrets of game programming" published by Piter, and my hair stood on end - four multiplications/divisions per line. There is also a problem how to keep the maze in memory to calculate less on each step, which wall is farther or nearer.

I'll begin, however. Even if it will be very-very slow, the screen width can be always decreased to 16 pixels. And then everything will be very-very fast :))

21 Jul 96

I haven't come up with the story yet, but at a wild guess it will look like this (if we see it as UFO-3):

People gained a lot of technologies after 2017 alien war, they made it to space and built a lot of colonies there (in Solar system or elsewhere). And someday all of this went wrong :(

Player will fly around these colonies (may be 10..1000 of them :) and clear them from evil, saving his ships by the way and destroying enemy ships. In the course of the game he must make scientific investigations, find some access codes, new weapons - I'm used to it :) Finally, he must find the prime cause.

And the cleaning of bases and UFOs will be made with Doom engine. There can be any plot - for example, the remaining aliens have dug in, so you must run though sewerage and underground tunnels :)))))

The main thing is to make it all good-looking and somehow FAST (8 FPS by Western standards, but even 6-7 are OK for me). It won't be boring then.

27 Jul 96

I spent some 3 weeks thinking how to make the Doom. I'm stuck at sprites. If we are close enough, their time to draw (scaling in the first time) is comparable to redrawing the full screen.

We can't keep pre-scaled sprites - even 128K is too little for this. So, I dally off this idea until I obtain sufficient experience or someone helps.

Switch to plan B - UFO-3 a-la Warcraft :) I.e. a lot of characters (walking robots this time) fight by themselves, you just give them commands. Maybe I'll add Doom-like part as a sub-level - walking in a maze to find something (without any enemies).

30 Jul 96

Max Iwamoto called me on the phone.

He doesn't recommend start something Doom-like. They drew 128x64 screen for 6 frames (6/50 of a second) - in the best case. 10-12 in the worst. Without any characters! So, down with this Doom :) Until everybody will have turbo mode :))

09 Aug 96

UFO-3. BLACK RAVEN.

Preliminary advertisement.

After many estimates I started making the game. This will be full-scale Warcraft. I'd write the actual Warcraft but, because some G-Soft are making it in St.Petersburg too, I changed the plot. What if G-Soft will finish their version, why we need two Warcrafts? :))

Playfield is 64x64 cells, viewfield is 20x20 CHR$, one cell is 2x2 CHR$, buildings are 4x4 CHR$, the graphics is black and white. And so on...

Launch date unknown (even approximate). I'll try not to lengthen out.

18 Aug 96

Ilya Fomin> Slava, write it, WARCRAFT is RULEZZZ! One of my friends tries this idea for two years but never wrote anything but demo.

There are two big difficulties in the game: ultra-fast (not exactly optimal) routing and computer strategy. Luckily enough, I think myself a big pro in exact two these fields - I know how to deceive people so that everyone will say "how clever is the program" :)

16 Sep 96

Work in progress. Remember, this will be almost WC-1. By the way the "UFO-3" prefix was thrown out, so it will be just "Black Raven" (can't glue aliens to Warcraft :)

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

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

28 Sep 96

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

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

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

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

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

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

08 Nov 96

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

17 Nov 96

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

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

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

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

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

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

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

22 Nov 96

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

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

03 Dec 96

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

19 Dec 96

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

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

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

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

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

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

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

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

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

21 Dec 96

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

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

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

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

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

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

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 раза (надеюсь, в реальной игре это будет нечастая ситуация :) Выбор ведётся через CAPS. При его удержании можно определить рамку выбора (как в АртСтудио). Выделенные герои обводятся рамочками. Максимальная группа - 6 человек. С помощью SYM можно добавить/убрать героя из группы.

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

26 Feb 97

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

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

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

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

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

02 Mar 97

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

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

05 Mar 97

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

01 Apr 97

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

11 Apr 97

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

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

11 Apr 97

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

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

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

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

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 :))

21 Apr 97

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

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

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

21 Apr 97

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

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

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

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

08 May 97

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

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

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

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

Part 2

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 уровня сложности:

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

В качестве основной оценки действий играющего будет время прохождение уровней и игры в целом - 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

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

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

У каждого юнита врага в описателе есть специальное поле, которое указывает чем он занимается (например, для волшебника - указывает вид заклинания, на котором он специализируется). Другое поле указывает, чем он действительно занят. Пока оно не 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

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

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

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

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

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

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 уровня. Что останется:

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

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

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а мой взгляд, трудными являются также:

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

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

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

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

Always yours, Vyacheslav Mednonogov.