Фундамент виртуального безумия. Статья №11. Советы по созданию редакторов к играм

Фундамент виртуального безумия. Статья №11. Советы по созданию редакторов к играм

Самопал — Фундамент виртуального безумия. Статья №11. Советы по созданию редакторов к играм
Есть только два варианта решения данной проблемы. Первый вариант: приспособить чужой редактор карт для своих нужд. Зарубежным коллегам такой метод показался бы дикостью, но у нас это суровая правда жизни... Второй вариант: самому создать редактор карт. Им
Игроманияhttps://www.igromania.ru/
Самопал
Фундамент виртуального безумия. Статья №11. Советы по созданию редакторов к играм
   Путь к сердцу игры лежит через редактор карт...
   В "Игромании" регулярно публикуются статьи по редакторам к тем или иным играм. Редактор карт — вещь очень полезная. А для самого разработчика — обязательная и незаменимая. Ведь как без него сделать уровень или миссию для игры? Хорошо им, гигантам индустрии. У них за создание пакета редакторов отвечают отдельные команды программистов. А как быть нам, творцам-любителям?
    
   Только два

   Есть только два варианта решения данной проблемы. Первый вариант:
120 Kb
приспособить чужой редактор карт для своих нужд. Зарубежным коллегам такой метод показался бы дикостью, но у нас это суровая правда жизни. Суть этого метода состоит в том, что мы берем готовый редактор карт от какой-нибудь игры, выясняем формат файлов этого редактора, пишем сами или достаем где-нибудь алгоритм загрузки и использования этого типа файлов с картами и в конце концов пытаемся приспособить возможности редактора к возможностям своей игры. Этот метод имеет несколько минусов. Во-первых, очень сомнительно, чтобы вы смогли достать формат хранения файлов с картами (разве что халф-лайфовский map-формат). Во-вторых, игровые возможности придется подстраивать под возможности редактора (на этом этапе порушится не одна ваша светлая мечта). И наконец, самое главное: после выхода вашей игры на вас сразу же подадут в суд создатели редактора, возможно, даже неоднократно. Неофициальный продукт — чисто теоретически — выпустить можно. Можно даже попытаться его распространять. Но... это все теория. Вывод: лучше перейти ко второму варианту.
   Он очевиден. Надо самому создать редактор карт. Именно так я советую вам поступить. Результат окупит вложенные силы, время и нервы. Вы получите мощный инструмент, созданный специально и только для вас. Творить миры будет удобнее и интереснее.
    
   Типы редакторов

   Давайте разберемся, какие вообще бывают
107 Kb
редакторы карт. В общем случае для вашей игры потребуется целый пакет редакторов ресурсов. Часть из них вы возьмете со стороны (графические, музыкальные, 3D-редакторы), а часть предстоит, собравшись с духом, сделать самому. Сюда входят: редактор карт (миссий, уровней — суть одно и то же), редактор скриптов (если он нужен), редактор диалогов (для РПГ), редактор кампаний (для стратегий).
   Неужели нужно делать целый набор
отдельных программ? Как правило, нет. Все эти компоненты лучше совместить в одной программе. Центральной частью такого комплексного редактора должен быть именно редактор карт. Почему? Это, возможно, самый громоздкий и сложный редактор. Он занимает большую активную площадь экрана и самую твердую смысловую позицию. Наконец, просто удобно все остальные редакторы сделать логическими примочками к основному модулю. Эти дополнительные модули можно вызывать специальными командами в меню программы.
   Редакторы карт для разных жанров игр не слишком различаются. В общем случае, в редакторе мы расставляем объекты (спрайты, елки-березки, пехотинцев, танки, крыс и тонущие корабли), назначаем им свойства (количество жизней/брони, отношение к главному герою, содержимое инвентаря и т.д.) и действия (патрулирование, беспорядочную стрельбу, бегство, бесполезное хождение по кругу...), назначаем маршруты активных объектов, линкуем дополнительные файлы (с моделями, музыкой, анимацией и т.д.). Отдельными опциями стоят редакторы диалогов/скриптов и прочие плагины. Сильно различаются только двухмерные и трехмерные редакторы. Иногда, — правда, редко — чтобы упростить себе жизнь, разработчики делают двухмерный редактор для трехмерной игры; очень не советую так делать — потом боком выйдет.
    
   Быстро и с комфортом...

   Делаем мы редактор для себя, следовательно, он должен быть удобным и
функциональным.
83 Kb
Вот три важнейших аспекта удобства работы: разумная организация интерфейса, удобная навигация по карте и логичная объектная иерархия. И если первые два пункта более или менее понятны, то третий наверняка вызовет недоумение у многих читателей.
   Представьте себе такую ситуацию: вы делаете сложную и навороченную РПГ. На карту можно поместить около тысячи объектов (совершенно разных), несколько видов триггеров, сотни NPC, тысячи объектов ландшафта и еще кучу всего хорошего. А теперь представьте, что все это богатство свалено в кучу и помещено в один список. В итоге для поиска нужного объекта потребуется пролистнуть списочек из нескольких тысяч пунктов. Работа с таким редактором превратится в сущее мучение. Придется затратить много времени и нервов, чтобы создать даже простейшую карту. Вот для того, чтобы быстро и легко ориентироваться в многообразии возможностей, и надо ввести иерархичную структуру объектов. И речь здесь идет не только о простом рассовывании объектов по пунктам и подпунктам многоступенчатого меню. Это не сильно спасет ситуацию. Надо ОРГАНИЗОВАТЬ объекты в иерархической системе. Внутри самой программы это можно реализовать иерархичным деревом классов объектов. Вот пример участка иерархической системы объектов для типовой РПГ.
   Что нам дает использование иерархической системы? У этого подхода много достоинств. Например, можно легко и быстро добавить новые объекты, типы объектов, переназначить свойства, организовать непосредственное взаимодействие
116 Kb
скриптов с деревом объектов на программном уровне и т.п.
    
   Навигация

   Средства навигации должны включать
возможность легкой манипуляции объектами (иногда не только изменение координат/углов, но и непосредственное редактирование "на месте") и камерами (для 2D — прокрутка карты), а также помещения новых объектов. Для сложных игр рекомендую добавить поддержку групп объектов и управление отображаемыми/скрытыми объектами. Я перевидал на своем веку много редакторов, а также сам создавал редакторы карт для трех игр. Поэтому, основываясь на собственном опыте, могу дать не только общие, но и конкретные рекомендации по системам навигации. Вот наиболее удобные, с моей точки зрения, решения.
   2D

   Выделение осуществляется непосредственным кликом по объекту.
Выделение группы объектов — растяжением "резиновой" рамки, как в стратегиях. Отмена выделения —
137 Kb
кликом по точке на карте, не содержащей объекты. Базовые операции — перемещение, поворот, масштабирование — осуществляются выбором соответствующего инструмента и протяжкой мыши на выделенном объекте. Вход в окно свойств объекта, если эта возможность нужна, — соответствующей кнопкой, пунктом меню или двойным щелчком по объекту (последнее удобнее, но лучше реализовать все три способа).
   С перемещением по карте ("прокруткой" вида) сложнее. В абсолютном большинстве редакторов перемещаться по
карте можно стандартными вертикальной и горизонтальной полосой прокрутки. Лично мне это кажется очень неудобным. В своих редакторах я делал прокрутку карты протяжкой курсора при нажатой правой кнопке мыши. Советую реализовать оба этих способа. Расстановка путей и маршрутов следования врагов/друзей осуществляется последовательными кликами по узлам пути, при этом узлы помечаются кружками или еще какими-нибудь фишками и соединяются между собой тонкими линиями. Причем узлы путей надо делать логическими объектами. Например, любой узел можно будет впоследствии выделить и перетащить на новое место, как обычный объект. Важное замечание: все невизуальные объекты — триггеры, указатели, места старта и т.д. — лучше реализовать так же, как и визуальные. Только в самой игре они отрисовываться не будут, а в окне редактора будут помечаться понятными пиктограммами.
    
   3D

   В 3D-редакторах, как правило, четыре вида: сверху, сбоку, спереди и перспектива. Границы
138 Kb
между видами должны быть гибкими, чтобы размеры видов можно было бы легко изменить мышкой (элемент splitter). В 2D-видах навигация и манипуляция объектами должна быть такой, как в обычных 2D-редакторах. А с трехмерным видом сложнее.
    Есть несколько устоявшихся методов навигации в 3D. С моей точки зрения, самый удобный — метод Homeworld. Перемещение (трансляция) 3D-вида осуществляется протяжкой курсора при нажатой смысловой клавише (Alt, Ctrl или Shift) и
правой кнопке мыши на месте, где нет объектов. Поворот 3D-вида относительно выделенного объекта — протяжка на месте, где нет объектов, при нажатой правой кнопке мыши (если ни один объект не выделен, то поворот осуществляется относительно визуального центра сцены).
    Масштабирование 3D-вида (приближение/удаление) осуществляется протяжкой курсора при обеих нажатых кнопках мыши. Выделение объекта — клик по нему. Выделение группы объектов — "резиновая" рамка. Отмена выделения — клик по месту, где нет объектов. Перемещение выделенного объекта — протяжка при нажатой левой кнопке мыши. Причем перемещение по оси X-Z осуществляется с клавишей Shift. Поворот объекта — протяжка мыши.
    Для масштабирования объектов следует завести специальную кнопку на панели инструментов. Есть и альтернативный метод навигации (как в 3D Studio MAX). Для каждого действия — перемещение, поворот, масштабирование камеры и объекта — следует также завести "иконку" на инструментальной панельке. Человеку со стороны в таком интерфейсе будет разобраться проще. Однако если вы делаете редактор только для себя, лучше применить первый способ, так как он более быстрый.
    
   Группы объектов

   Если количество объектов на карте очень большое, то работать с ней — сущий ад. Смотреть на мешанину линий и фигур и не понимать, что все это значит, — вот что вас ждет, если вы не введете вспомогательные инструменты, упрощающие создание
176 Kb
уровней. В первую очередь нужны визуальные группы (visi groups). Ведь работая с одним участком большой карты, вам совсем не обязательно видеть все остальные. Наоборот, другие участки будут только вносить еще большую сумятицу в изможденный творческим процессом ум. Как же быть? Да очень просто. Почему бы не сделать ненужные объекты невидимыми? Насколько тогда станет удобнее работать! Практически во всех хороших редакторах есть эта возможность.
    Реализовать ее лучше в виде отдельного плавающего окошка со списком и собственной панелью инструментов. Выделив мышью ненужные объекты и нажав на этой панели инструментов кнопку "Скрыть выделенное", вы избавите себя от большой обузы. Выделенные объекты исчезнут с экрана, но в списке появится новая строчка — "визуальная группа такая-то". Можно добавить возможность менять названия визуальных групп, чтобы было понятно, какие объекты в них содержатся. Кликнув по этой строчке списка и нажав кнопку "Показать выделенное", вы выведете на экран все объекты, содержащиеся в данной группе. Эта функция изрядно упростит работу с объектами. Например, у вас есть три комнаты, находящиеся одна над другой. При виде сверху они полностью наложатся друг на друга, и в результате в этой мешанине линий разобраться будет крайне затруднительно. Но если мы объединим все объекты каждой комнаты в отдельную визуальную группу, то сможем работать с каждой комнатой отдельно, не отвлекаясь на остальные. На панель инструментов полезно добавить еще две кнопки — "Скрыть все" и "Показать
все".
    
   Интерфейс

   Хорошо продуманный интерфейс — залог комфортной работы. Если вы собираетесь выводить свой редактор "в
175 Kb
свет", вам придется следовать общепринятым нормам и стандартам. Начнем с заголовка программы — он, помимо названия редактора, должен содержать еще и имя открытого файла. Ниже должна быть полоса главного меню, причем пункты делайте по возможности стандартные — "Файл", "Вид", "Правка", "Объект", "Настройки", "Помощь" и т.д.
    Всю рабочую область должен занимать вид (или виды) карты. Дурным тоном считалось бы привязывание панели инструментов намертво к главному меню — ее следует реализовать в виде отдельного плавающего окна. Вспомогательные утилиты и подпрограммы (палитра объектов, редактор визуальных групп, редактор объектов, редактор текстур, компоновщик файлов и т.д.) удобнее организовать наподобие свитков в Adobe Photoshop — плавающих окон, которые можно как совсем убрать с экрана, так и свернуть, оставив только заголовки. Для вызова всех этих дополнительных утилит следует предусмотреть соответствующие пункты меню. Постарайтесь так продумать конфигурацию интерфейса, чтобы не загромождать рабочую область лишними окнами. Под основную работу надо отвести максимум свободного места.
    Я видел несколько редакторов карт, работающих в полноэкранном режиме и имеющих броский и цветастый интерфейс, как в The Sims. Сразу
скажу — эти редакторы производят отрицательное впечатление. Если вы делаете редактор карт в первую очередь для работы, не стоит следовать этим дурным примерам. Работать с
109 Kb
полноэкранными редакторами с нестандартным интерфейсом очень неудобно. Другое дело, если вы предусмотрите функцию перевода своего редактора в полноэкранный режим (например, как в 3D Studio MAX) — такая возможность только приветствуется.
   Выход в люди

   Если вы намерены "продвигать"
свой редактор (поставлять его вместе с игрой, например), подумайте о том, что вкусы и потребности людей, которые будут с ним работать, очень различны. Одним нравится работать только клавиатурой, а другим — только мышью. Третьи предпочитают пункты меню кнопкам на панели инструментов. Ваш редактор должен учитывать все эти потребности, только тогда он будет иметь успех. Ведь основная концепция интерфейса Windows — если что-то можно сделать, это можно сделать как минимум тремя различными способами.
    Не поленитесь написать подробную и продуманную документацию к программе. Будет лучше, если вы создадите режим обучения (tutorial) и несколько демонстрационных карт разной степени сложности и завершенности. Помните: вы создаете редактор карт не только для себя, подумайте о тех, кто им будет пользоваться. Постарайтесь сделать его удобным и интуитивно понятным. Не ударьте в грязь лицом. И тогда на фэн-сайтах появятся горы самодельных карт, ваша игра будет на вершине чартов и оставит о себе добрую память.
Комментарии
Загрузка комментариев