ПРОЕКТ ЗЕРКАЛО-44

Виртуальный мир игры  


 Манифест
 Дизайн -
  документ
 CVS
 Горизонты
 Форум
 Файлы
 Ссылки
 Команда
 История
 Архив



   Пока у проекта нет того, что американы называют story - некий виртуально-фантастический текст, рассказывающий про мир игры. Но зато у меня в голове есть образ этого мира ;) а история придумается потом.

   А недавно придумал затравку стори - земная цивилизация развивалась во вселенной методом форпостов. В удаленные звездные системы посылались механозародыши колоний. На месте они разворачивались в форпосты, могущие добывать ресурсы и производящие роботов для постройки самой колонии. Для адаптивности к окружающей среде программы роботов делали самообучаемыми. И вот (как всегда ;) группа форпостов сначала перестала откликаться на позывные, а потом отту да прилетел механозародыш, раскрылся на Марсе, произвел боевых роботов и стал уничтожать наши селения. Игроку срочно предлагается отбить нападение, а потом лететь на взбунтовавшиеся форпосты наводить порядок. Можно сделать звездную карту с планетами, планета считается захваченной, если на ней не вражеских войск и есть глобальная ПРО, отражающая попытки высадки чужаков (здесь пока узкое место, надо придумывать дальше) Почему проект называется Зеркало? Потому что игрок должен отразить нападение, раз, потому что "кривое зеркало" внешних миров изменило программы поведения роботов, два, потому что в написанных игроком приграммаз поведения роботов отражается создатель - он сам ...

   Каждая планета разделена, естественно, на сектора. Каждый сектор имеет уникальный идентификатор. Карта сектора - псевдо 3D, а ля старкрафт: слой воды, слой земли, слой полета ракет, слой воздуха. Шагающие юниты могут ходить по земле и под водой (?), парящие юниты - по воздуху, ракеты летают в своем слое и детонируют, когда оказываются над/под юнитом.

   Поверхность сектора генерится с помощью идентификатора и генератора псевдослучайных числ. Алгоритм такой: на вход генератора подается идентификатор, далее на основе последовательности псевдослучайных чисел

  •  размер карты
  •  общий рельеф карты - высшие и низшие точки
  •  детальный рельеф с определенным коэффициентом сглаживания
  •  вычисление слоев
  •  определение месторождений руды
  •  определение точек высадки

   Земля имеет коэффициент проходимости: [актуальная скорость] = k * [расчетная скорость]. Например, ровная земля k=1, пашня =0.9, болото =0.5, под водой =0.2

   Ресурсы карты - точечные, точнее связанные области - месторождения, имеющие конечную емкость.

   Пространственная модель - физическая, т.е. координаты юнитов, скорости, величины полей - числа с плавающей запятой. А вот отображение на экан - дискетно, вся поверхность разделена на клетки. Юнит заполняет все клетки, по которым проходит его контур. Минимальный размер робота - заполняющий 2x2 клетки. Размер ракеты - 1 клетка.

   Ограничение юнита по скорости Vmax = полкорпуса за такт. Это нужно для непротиворечивого вычисления столкновений.

   Столкновения юнитов могут привести к их разрушению, все зависит от полей столкнувшихся. Юнит с меньшим полем теряет 70% (50%, 30% - дадим им шанс выжить при столкновении) от ПЕРВОНАЧАЛЬНОЙ величины своего щита, столько же теряет и юнит с большим полем. Если хотя бы один уничтожен, то второй занимает желаемою позицию. Если оба остались живы, то они отталкиваются назад по вектору своего движения на исходную позицию (в предыдущем такте)

   Время дискретно. Полный такт состоит из стадий:

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

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

   29.01.02 Зданий будет 5 видов:

  •  Фабрика механозародышей. Производит механозародыши всех зданий. Механозародыш может сам перемещаться (медленно), имеет накапливающую броню, при постройке здания сам разрушается.
  •  Перерабатывающий завод. В нем перерабатывается в ресурс руда, добытая специальными юнитами. Скорость переработки руды фиксированная (возможен апгрейд) Добытый ресурс просто накапливается, без спец.хранилища (деньги, урановое топливо, т.е. малообъемное (хотя можно сделать и здание-хранилище))
  •  Фабрика юнитов. Производит все возможные юниты. Скорость постройки имеет апгрейд
  •  Исследовательский центр. Производит исследования для апгрейдов. Апгрейд изучается за определенное время и за определенные деньги. После изучения апгрейда зданий их нужно модернизировать (опять же время+деньги) Юниты получают улучшенные показатели только при производстве (т.е. уже произведенные юниты остаются прежними)
  •  Электростанция. Дает энергию для всех зданий, потребляет определенное количество ресурсов.

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

... продолжение следует...



изменено 15.02.06

Hosted by uCoz