• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Как делается Tower Defense (TD)

Красная Королева

Путник
Модератор
Сообщения
468
Розыгрыши
0
Репутация
141
Реакции
29
Баллы
0
Tower Defense Tutorial By SD_Ryoko
Перевод - Array

1. Введение

Что такое tower defense?
TD расшифровывается как "защита башнями". Это жанр игр для Warcraft III.
Жанр TD был впервые представлен такими играми, как "TD" и "TD Arkguil".
Цель TD это строительство башен для убийства крипов, чтобы те не дошли до конца.
TD, как правило, состоят из множества "уровней" , которые постепенно становятся всё труднее.

2. Для новичков

Как сделать свою TD оригинальной:
Возможно, самым важным, что нужно учитывать при создании TD, это как она будет отличаться от всех предыдущих ТД. Для этого нужно сделать гораздо больше, чем просто изменить модели и рельеф чужих TD.
Продумайте, о чем будут думать игроки во время игры в вашу TD.
Есть много вещей, которые вы можете сделать, чтобы предложить уникальную TD для игроков.

Как сделать свою TD веселой:
Другим важным моментом является то, что даже если ваша TD очень оригинальна, то это не означает, что игрокам она понравится.
В общем, не делайте TD настолько трудной, чтобы невозможно было выиграть.
Продолжительность игры должна быть ограничена от 30 минут до 1 часа.
Ваша карта должна быть по-возможности без ошибок - особенно подсказки на башнях, горячие клавиши для строительства башен, описания башен, работников и т.д.
Кроме того, никто не хочет ждать пока один глупый крип застрял и стоит.
Придумайте "эвенты" , которые нужно делать используя "если / то /иначе" , чтобы проверить когда их пора запускать.


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

Карта:
Во-первых, необходимо продумать расположение крипов и игроков.
Чаще всего, это пути, по которым ходят крипы, и места, где игроки строят башни, чтобы их убивать.
Будьте особо внимательны при создании карты, чтобы она была симметрична для каждого игрока.

Расы:
Многие TD имеют различные расы, и каждая раса может строить различные башни.
Расы должны быть оригинальными и отличатся друг от друга.
Типы башен и способности должны отличатся у одной расы от другой.

Башни:
Вам нужно будет создать башни для каждой расы.
Башни должны быть размером 2x2 - размер хуман гварда.
Пусть вначале башни строятся простые и дешевые, постепенно становясь все лучше и дороже.
Башни также могут иметь различные типы атаки для различных видов брони\крипов.

Крипы:
Самый простой способ создания различных крипов, это скопировать готовых и изменять их.
Иметь простую формулу для хп крипов, их брони, и скорости - это лучший способ для создания сбалансированной карты.
Статы крипов должны вначале быть очень низкими и увеличиваться по ходу игры.
Все крипы должны иметь низкий pathing value (0.30) для предотвращения застреваний.
За всех крипов должна даваться награда - золото\лес\итп.
Игроки могут выбирать различные расы.....................Карта должна быть симметрична.


Как устроена TD:
Все эти компоненты должны быть объединены, чтобы создать хорошую карту.
Каждая TD работает по-разному, но основные принципы те же.
Ниже приводится основная структура для TD.

Кроме всего уже перечисленного:

Начало первого уровня:
Таймер обратного отсчета, по которому стартует первый уровень.
Он дает игрокам время выбрать расу и построить несколько башен.
Как правило, игроки должны видеть таймер и знать, сколько времени осталось до начала игры.

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

Конец уровня:
Уровень завершается, когда заканчиваются крипы.
Триггером отслеживают, когда это случается, и по скриптам сценария уровень завершается.

Потеря жизни:
Триггер отслеживает когда крип доходит до конца и уменьшает жизни игрока(ов).
Крипы могут "забирать" разное количество жизней.


Существует три типа TD:

Team Play:
Командная игра где группа игроков строится вместе, чтобы выиграть игру.
Или может быть две команды, каждая из которых будет сама по себе.

Survival:
Один из типов TD, где есть несколько путей для крипов, по одному для каждого игрока.

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


3. Для Любителей

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

В World Editore, вы можете нажать на Вид - Обработка путей (земля) и проверить пути на вашей карте. Области, где крипы не смогут ходить будут показаны фиолетовым цветом. Области, где нельзя строить будут показаны синим цветом. На первой картинке, стрелками указаны возможные пути для крипов. Если они не смогут идти по левой полосе, то они пойдут прямо. Блокировка правой стороны заставит их двигаться вперед. На второй картинке, игрок не может строить в синей области. Это позволит крипам ходить вокруг башен. Мы должны установить большие блокаторы пути, чтобы предотвратить ходьбу крипов в этих местах. Крипы не могут ходить по розовым областям.......................Большие блокаторы путей. Если путь заблокирован, крип найдет другой путь. [b]Спавн крипов:[/b] Наиболее удобный способ спавнить крипов это поместить их в регион. Если создавать крипов одним гигантским триггером, то карта может повиснуть. Из-за спавна всех крипов на карту одновременно также может сильно залагать и карта повиснет. Лучше создавать крипов для каждого игрока отдельно. Ещё один недостаток создания крипов слишком большими группами это то, что они появятся большой кучей и смогут застрять. Постепенный спавн крипов - залог успеха и "легкой" карты. Помните, что если ваши игроки смогут застроить путь для крипов, то крипы порушат все башни ,которые им мешают. Каково это будет? Код:[CODE]Create Units 1 Events Time - Every 45.00 seconds of game time Conditions Actions Unit - Create 3 Footman for Player 1 (Red) at (Center of SPAWN1 ) facing 0.00 degrees Unit - Create 2 Rifleman for Player 1 (Red) at (Center of SPAWN1 ) facing 0.00 degrees Move1 Events Unit - A unit enters SPAWN1 Conditions Actions Unit - Order (Entering unit) to Move To (Center of SPAWN2 ) Move2 Events Unit - A unit enters SPAWN2 Conditions Actions Unit - Order (Entering unit) to Move To (Center of SPAWN3 ) Move3 Events Unit - A unit enters SPAWN3 Conditions Actions Unit - Order (Entering unit) to Move To (Center of SPAWN3 )[/CODE] Крипы ходят от пункта к пункту, до конца. Места недоступные для постройки. [b]Крипы всё равно нападают?[/b] Обработка путей не может быть идеальной, и крипы иногда застревают в лабиринтах. Придется это контролировать. Вот,что нужно сделать: Мы экспериментировали со многими размерами, и пришли к выводу, что размер должен быть ОДИН. Нужно чтобы крипы нападали только если игрок заблокировал их путь. После атаки крипы должны продолжить свой путь. Крипы не продолжат двигаться сами по себе. Вам понадобится несколько триггеров, если у вас несколько пунктов. Вот пример: Код:[CODE]Control Creeps Red Events Unit - A unit owned by Player 1 (Red) Is attacked Conditions (Owner of (Attacking unit)) Equal to Player 11 (Dark Green) ((Attacked unit) is A structure) Equal to True Actions Wait 1.00 seconds Unit - Order (Attacking unit) to Move To (Center of Point 4 )[/CODE]Еще одна причина по которой крипы будут нападать это скилы. Например такие, как bash, stun, и Splash Damage. Если вы хотите использовать эти скилы в вашей TD, вам придется разработать обходные пути. [b]Башни со Скилами:[/b] Вот некоторые скилы, которые могут иметь башни: Critical Strike Poison Attack Frost Attack Slow Multiple Shot Splash Damage Bash Используя различные скилы вы сделаете ваши башни разнообразнее. Если у вас несколько рас, то вам нужно больше скилов. Пример: Код:[CODE]A unit owned by player 5 (creeps) is attacked Attacking unit is (lightning tower) Order (attacking unit) to cast (chain lightning) on (attacked unit)[/CODE][b]Лист игроков:[/b] Лист игроков удобен для отображения названия вашей карты, жизней игроков, и уровня. Обычно он появляется через пять секунд после инициализации карты. [b]Статы крипов:[/b] Один из самых простых способов выбрать крипов это создать их в World Editore.
Просмотрев 50-100 юнитов и их сопоставив, вам придет идея какими должны быть "ваши" крипы.
Затем распределите крипов по группам.
Таким же способом можно придумывать и башни.

На каждом уровне у крипов должны быть разные HP, защита, тип защиты, скилы.
Делать для каждой волны крипов свои скилы конечно не обязательно, но это опять же разнообразило бы игру.

С каждым уровнем убивать крипов должно быть всё труднее и труднее:
Код:
Код:
Adding extra defense to a set of creeps. levels 01-10: 3 def levels 11-20: 5 def levels 21-30: 7 def levels 31-40: 9 def levels 41-50: 12 def levels 51-60: 15 def levels 61-70: 18 def levels 71-80: 20 def
Боссы:
Боссы должны иметь очень много брони и HP, по сравнению с обычными крипами.

Летающие:
Если вы добавили летающих крипов, то вы можете сделать башни, которые бьют только по воздуху, только по земле, и по тому и по тому, итд.

Агрессивные:
Можно также добавить крипов, которые могут рушить башни, но их будет сложнее контролировать.

Быстрые:
Пусть у вас будут очень быстрые крипы, можно также сделать чтобы они двигались "беспорядочно".
А также пусть будут "Замедляющие" башни.

Невидимые:
Если у вас в TD будут невидимые крипы и вы не предупредите об этом игроков, то это им врядли понравится.
Для невидимых крипов нужно добавить башни, которые будут их обнаруживать.
Лучше не использовать невидимых крипов на начальных уровнях.


Продажа Башен:
В TD должны быть продаваемые башни, и надо чтобы это было нетрудно для игроков их продать.
Как это сделать:
1. Создать новый скил "Продать башню".
2. Измените все значения для вашего нового скила. Скорость каста, продолжительность, кулдаун, все значения..
3. Изменить горячую клавишу для нового скила. Мне нравится использовать 'X'.
4. Изменить все подсказки для нового скила, и иконку. Я люблю использовать сундучок или золотую монетку.
5. Добавить этот скил на все ваши башни.
6. И наконец, создать триггер, который выглядит следующим образом. Каждый раз, когда будет использоваться "Продать башню", триггер будет продавать башню за полцены, показывать красивый спецэффект над ней, и уничтожить её. Обратите внимание, что продавать башню за полцены это мой вариант, а вы поставьте любую цену.

Код:
Код:
Sell Towers Events Unit - A unit Begins casting an ability Conditions (Ability being cast) Equal to Sell Tower Actions Player - Add ((Point-value of (Casting unit)) / 2) to (Owner of (Casting unit)) Current gold Special Effect - Create a special effect at (Position of (Casting unit)) using ... Unit - Remove (Casting unit) from the game
Дизайн карты:
Да, даже TD карта может стать интереснее за счет красивой местности.
Очень трудно заставить карту со стандартными материалами выглядеть естественно.
Смотрите примеры, и выбирайте что-либо интересное для себя.
В warcraft`e есть реки и озера, деревья, и многое другое.
Используйте инструмент для изменения высоты, чтобы ландшафт не был плоским и обычным.
Начало и конец пути крипов будет здорово как-то красиво оформить.


Улучшения башен:
Возможно, вы видели в некоторых TD башни, которые можно улучшать до более сильных.
Здесь я объясню, как создать такие башни.
Сначала вам нужно создать несколько вариантов одной башни.
Добавляйте улучшенной башне урон, скорость стрельбы, и еще что-нибудь.
Тогда взгляните в меню свойств при "модернизации".
Для каждого улучшения нужно будет установить цену и сбалансировать её.

Можно добавить очень дорогие башни, с очень дорогими улучшениями, для игроков у которых будет много золота.
Это очень много, как Warcraft III: нужно замок, прежде чем строить некоторые здания.
Еще можно сделать для некоторых башен улучшения за Лес и дать игрокам возможность добывать его.

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


4. Для "профи"

Защита своей карты:
Это безусловно ваш выбор : защищать карту или нет.
Лучше конечно защищать, т.к. найдутся люди, которые захотят изменить что-либо в вашей карте "под себя" или даже выдать потом эту карту за свою.
И еще совет, при загрузке карты добавить надпись вроде этой: " По поводу найденных багов\ошибок, советов по улучшению писать на мой e-mail".

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

Еще один важный момент - это рассчитать чтобы игрокам после убийства очередной волны давалось ровно столько денег, чтобы улучшить\ построить башню.
Возможно сделать так, чтобы сложность TD менялась сама, в зависимости от того "как её проходят";
т.е если к примеру после 10 волны осталось 10 неубитых, то сложность понизится, а если например 20 волна была убита без проблем, то сложность повысится.
Будет здорово добавить в TD различные моды: на сложность, на кол-во уровней, и т.п.

Разнообразьте ваши карты:
Можно придумать уйму разных модификаций для TD.
Добавить игроку героя, который будет убивать крипов вместе с башнями; или же позволить игрокам посылать ответные волны на крипов( на их базу) . . .еще, еще и еще . . .

Триггер для появления крипов каждую минуту:
Код:
Код:
event: periodic event: every 60 seconds player: select all units owned by player 12 (creeps) and for each picked unit do set variable: creepsalive = (creepsalive +1 ). if creepsalive is equal to 0, set variable numberperspawn = (numberperspawn + 1) if creepsalive is greater than 0, set variable numberperspawn = (originalnumberperspawn)
Всегда тестируйте вашу TD, называйте её Альфа версией и давайте игрокам в неё поиграть.
 

Назад
Сверху Снизу