воскресенье, 4 сентября 2011 г.

Nano Stream (2009)


История

     При разработке игры наступает такой момент, когда игра почти готова, и уже можно играть. Главное не обмануться этой мыслью, ведь основная часть айсберга всегда скрыта под водой. Я пока не довёл ни одной игры до состояния истинной готовности, но есть три игры, которые я довёл до состояния видимой готовности.
     Первой моей недовершённой игрой был тетрис, который я написал почти на спор, на Blitz3D. Спор заключался в том, чтобы написать тетрис и уложиться в 20 строк по 80 символов (точно не помню сколько), написал я его за вечер, потому не включаю  в счёт серьёзных проектов.
      Второй недовершённой игрой был Tower Defense  Nano Stream”, которому и посвящена данная статья.
     Первого декабря 2009г на сайте blitzmax.ru стартовал конкурс игр на тему Tower Defense. Я не стал участвовать, т.к. в моём понимании было, что Tower Defense  - это нечто жестокое, когда куча пушек палит в живых существ, от которых во все стороны разлетается кровь. Я не мог представить не жестокий TD. Точнее мог, но он казался мне невообразимо скучным. Я писал: ”Пример по конвейеру едут ёлки и нужно успевать наряжать их игрушками. Или по проводу текут частицы и надо гасить их анти частицами. Даже если игроку этот сюжет покажется интересным, то мне как девелоперу неинтересно работать с этим. Я не люблю такую натянутость“.  В итоге развязалась дискуссия на тему, возможно ли создать интересный не жестокий TD, благодаря которой присоединился к конкурсу с проектом с глупым названием Nano Stream. Целью данного проекта было доказать всем и самому себе, что невозможно создать интересный не жестокий Tower Defense с глупым сеттингом. А сеттинг был такой: по прозрачной трубе двигаются цветные наночастицы (шарики), задача игрока строить турели которые бы нейтрализовывали наночастицы до того как частицы доберутся до другого конца трубы.
     Конкурс проходил во время зимней сессии, точно также как “Конкурс №1” на сайте GameDev.by в котором я участвовал год спустя с проектом Ice&Flora. Если вы будете организовывать конкурс, то советую не делать этого во время сессии.
     На GameDev.by до финиша дошло только трое из 25-ти участников. Стоит ли говорить, что на blitzmax.ru я единственный из конкурсантов, кто представил работу для подведения итогов. Впрочем, я так и не смог закончить этот проект потому, что случайно удалил исходники, когда форматировал диск. 


     Я считаю, проект удался на славу, и из него есть что подчерпнуть. Далее подробнее о тонкостях игры:

Движение шариков

     Шарики движутся по трубе, которая диаметром чуть больше чем диаметр шарика. При этом шарики разных цветов движутся с разной скоростью. Одна из ключевых идей игры в том, как шарики обгоняют друг друга.
     Когда один шарик догоняет другой, то задний шарик упирается в передний и снижает скорость до скорости переднего. Далее они так и едут вместе паровозиком. Но реальная скорость заднего шарика выше. Разница скоростей способствует накоплению виртуального пути пройденного задним быстрым шариком.  Когда накопленная разница в пути достаточно большая для того чтобы обогнать  передний шарик и держаться впереди него то они быстро обмениваются местами проходя сквозь друг друга.
     Во-первых нужно заметить, что передний шарик также может иметь накопленный путь, возможно, он также упёрся в более медленный шарик. Этот момент учтён при проверке возможности обгона. Во-вторых, во время обгона шарик, перемещающийся назад, теряет пройденный путь, т.е. ему после этого справедливости ради нужно присвоить виртуальный пройденный путь.
     Когда случается так, что виртуальный путь накоплен, а обгонять некого (например, когда шарик, которого пытались обогнать был нейтрализован) то накопленный путь расходуется в виде небольшой временной прибавки к скорости шарика. 
     Получается очень справедливо и красиво.

Трёхмерность

     Честно, я никогда не видел трёхмерный Tower Defense. Особо не искал, но всё же. Не так-то просто придумать стратегию в 3D. Nano Stream - относится как раз к таким редким стратегиям, где действительно используются все три измерения, хоть и не очень эффективно.
     Трёхмерность заключается, конечно, не в графике, а в игровой механике: Труба изгибается во всех направлениях; турели имеют трёхмерную область действия, и даже слепые пятна сверху и снизу; За деньги у турели можно улучшить угол поворота по вертикали тем самым уменьшив слепые зоны; За деньги можно увеличить высоту турели тем самым немного сместив область действия; и наконец, турели можно строить не только на земле, но и на стенах и на потолках (цена строительства турели на стене на 10% выше, а на потолке на 50% выше).
     Создать именно трёхмерный TD было одним из моих челенджей на тот момент.
Шарики
     Всего в игре семь цветов шариков, они обладают разными свойствами: иммунитетами к отдельным видам турелей,  разная скорость, разное “здоровье”. Жёлтый шарик обладает особым свойством увеличивать скорость по мере того как остаётся мало здоровья.
     К тому же шарики бывают полупрозрачные (т.е. те же самые шарики могут быть обычными, а могут быть полупрозрачными). Полупрозрачные шарики называются невидимыми. Чтобы стрелять по ним нужно за деньги покупать для турелей специальную способность “Super Vision”.

Турели и абсорберы

     В игре 4 вида турелей и 4 вида абсорберов.
     Обычная турель – плазменная, поджигающая турель – термальная (подожжённые шарики постепенно нейтрализуются) , замораживающая турель – криогенная (замороженные шарики движутся медленнее), и лазерная - L.A.S.E.R. set.
     L.A.S.E.R. set – это огромная турель которая при стрельбе следит за шаром постоянно выжигая его лазерным лучом. Причём лазер разогревается медленно, т.е. чем дольше лазерный луч выжигает шарик, тем сильнее он его нейтрализует, когда лазерный луч погасает, турель быстро остывает. Угловая скорость турели медленная, поэтому он может терять быстрые цели, что плохо т.к. для полной отдачи лазер должен как можно дольше выжигать цель. Но за деньги можно улучшить угловую скорость, к тому же можно использовать лазерную турель совместно с замораживающей.

     Абсорберы (поглотители) – особый вид строений. – Это такие колодцы, которые вытягивают шарик из трубы и проглатывают (поглощают) его целиком, несмотря на то, сколько у него было “здоровья”. Абсорберы очень долго перезаряжаются и поглощают только шары определённого цвета. Собственно 4 вида абсорберов означают абсорберы 4х ключевых цветов: красный, тёмно синий, фиолетовый, жёлтый. Абсорберу можно купить способность Utilization, которая даёт один дополнительный нанобакс за каждый поглощённый шар.

Экономика

     Когда-то давно играл в игру Rise of Legends и подцепил оттуда одну интересную идею. Делать каждый следующий юнит данного вида дороже. Т.е.  каждая следующая термальная турель стоит дороже, поэтому как бы игрок не старался ему придётся строить и другие турели т.к. термальные станут слишком дорогими, если он начнёт строить криогенные то и с ними произойдёт тоже, ему придётся перейти на плазменные и т.д. Таким образом, у нас, разработчиков, меньше проблем с балансом.

Тактика

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

     Выписка из руководства:

     Существует 4 основных критерия, по которым турель выбирает себе цель среди шаров.
     1) На первом месте соблюдается приоритет по цвету. При помощи специальных кнопок можно выставить приоритет по цвету для любой турели кроме поглотителей.
     2) Во вторых соблюдается приоритет по видимости. При помощи специальных кнопок можно установить какого типа видимости шары будут приоритетно выбираться в качестве цели. (Видимые, Без разницы, Невидимые)
     3) Третий критерий — это эффект. Огненная пушка накладывает на шары эффект поджигания, а ледяная эффект заморозки. Если на шаре уже есть эффект то на него нельзя подействовать эффектом другого типа(но можно подействовать эффектом того-же типа тем самым усилив эффект и/или добавив времени) Поэтому существует приоритет на эффект.
     Данная опция для ледяной пушка означает что пушка будет стараться заморозить как можно больше шаров. т.е. будет стараться не стрелять по уже замороженным шарам, подожжённым шарам (ведь их не заморозить) и синим шарам(у них иммунитет к заморозке). Однако эту опцию можно и отключить.
     Для огненной пушки данная опция означает что пушка будет стараться поджечь как можно больше т.е. она будет стараться не стрелять по уже подожжённым шарам, по замороженным шарам (ведь их не поджечь) а также по жёлтым шарам(иммунитет). Эту опцию можно отключить.
     Для Лазерной турели и бластера тоже есть специальная тактика на эффекты: Эта опция означает, что турель будет стараться не стрелять по подожжённым шарам и позволят им спокойно догорать. Для чего это нужно думайте сами.
     4) Четвёртый критерий — это положение. Этот критерий гласит, что при прочих равных условиях выбирается шар, идущий впереди других (впереди) Эту тактику настраивать нельзя (пока) она едина для всех.
     Все эти опции не запрещают стрельбу по тем или иным шарам, а лишь расставляют приоритеты.

Попробуйте сами

     Вы можете свободно скачать и сыграть в эту игру. Правда кроме прочих недостатков в игре имеется недостаток баланса. На уровне сложности 2 игра непроходима, а на уровне сложности 1 – слишком лёгкая. Я рекомендую вам зайти в настройки и заменить уровень сложности на 1. К тому же я рекомендую прочитать файл Help.pdf перед игрой.




Комментариев нет:

Отправить комментарий