Добавлен , опубликован
Приветствую вас на странице данного проекта!
Этот проект - о редакторе для Unity. Не про игру и не про мод, вот такая скукотища.
Очень часто, по мере создания наших игр нам предстоит вводить какие-то уникальные сценарии. Самые начинающие пишут для этого отдельные скрипты (которые распространяются на весь проект, а не на частную ситуацию), чуть более продвинутые - пишут универсальные инструменты, позволяющие сделать какой-то стандарт действий. Ну а самые прожаренные используют редакторы наподобие вот такого.
Редактор во время разработки имеет тенденцию постоянно переписываться. Причин для переписывания много, но как видно это откладывает релиз постоянно. Засим прошу простить.
Итак, краткая история:
Попытка 0
Здесь где-то была попытка. Однако я ничего о ней не помню, кроме того что она была. Скринов той работы не сохранилось.
Попытка первая
Редактор планировалось сделать приблизительно похожим на варкрафтовский, но с некоторыми изменениями "по ситуации". В основу концепции вкладывалось сделать "иерархический редактор", с триггерами и базовыми функциями программирования. В остальном все точно так же, как и сейчас.
"Чудо" оказалось слишком уродливым и неоптимизированным. На тесте вышло, что некоторые алгоритмы во времени работали неверно из-за фундаментальных ошибок в архитектуре. С этим, кстати было еще много проблем.
Попытка вторая
Редактор был улучшен визуально, интерфейс был заметно улучшен. Код так же был переписан на "чистовик". В основе концепции хотелось сделать "рантайм" проверку изменений, что однако не вышло совершенно. Плюсом иерархия оказалась слишком тяжелой для поддержки. Несмотря на хорошее начинание заканчивать это не было никакого желания, хотя многие наработки оттуда еще буду долго использовать в других проектах. В общем плюс в разработке был, но снова провал.
Здесь был важный плюс, что в отличие от нулевой версии не происходило бешеного спавна окошек без надобности.
Финальной проблемой стало то, что я осознал,насколько медленно.
Попытка третья
В основе этой концепции лежало то, что объекты должны быть максимально компактными и должно быть удобно редактировать любую часть, неважно насколько глубоко она лежит. В общем и целом эта концепция мне нравится. Так же здесь были добавлены некоторые фичи в духе привидения типов друг к другу. Основной критерий - компактность и доступность выражений, так как ее отсутствие сильно мешало в предыдущем случае.
Попытка четвертая
А херня. Скрины как раз от этой попытки.
Попытка пятая
Снова пробуем-с
Когда у меня возникла необходимость использовать подобный редактор, я был очень возмущен тем, что не смог найти ничего столь же удобного и привычного как некогда видел в WarCraft III. Фактически, это и явилось отправной точкой для создания редактора.

Отличия от редактора триггеров WarCraft III

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

Расширяемость

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

Создавайте свои сущности из уже имеющихся

Пользовательские сущности - формируют новые сущности из нескольких уже готовых, но действуют только в рамках текущей карты/сцены. Вы сможете создавать:
  • действие из условий и действий
  • условие из нескольких других условий
  • событие из события и условий

Используйте любые функции из кода

Добавление методов в проект - добавление новый условий и действий на основе функций, которые есть в вашем коде.

Создавайте сущности через наследование

Наследование от класса действия - для действий во времени, которые невозможно описать в рамках одного метода доступна возможность реализации отдельным классом

Локальные переменные

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

Несколько способов запуска

Помимо стандартных "триггеров" команды можно прицепить в любое удобное место и они так же будут выполняться (и так же будут иметь доступ к редактированию, хоть из инспектора).

Связанность со сценой

Редактор может брать данные и объекты со сцены (это скорее отличие от других редакторов сценариев в Asset Store)

Минусы - а как же без них?

На текущем этапе разработки у редактора есть ряд минусов, которые немного ставят палки в колеса:
  • Нельзя использовать редактор для разработки мобильных приложений - триггеры используют рефлексию, которая насколько мне известно там не поддерживается. Однако этот минус в принципе устраним, это хорошая новость.
  • Невозможно перевести триггерные сценарии в код и скомпилировать - они используются только для сцены и никак иначе
  • Данный редактор работает существенно медленней чем код, так как вынужден бороться с тонкостями сериализации движка (хранить данные приходится в более тяжелых объектах чем сами данные).

Прогресс

На текущем этапе редактор уже был собран и проверен на работоспособность и сейчас переписывается с целью удобства его использования, удобства кода в принципе (мне же его еще поддерживать!), а так же реализации некоторых дополнительных возможностей, которые при текущей тех части быть не могло.
Очень много внимания уделяется скорости работы самого редактора - на первых этапах у меня это выходило довольно-таки плохо и редактор дико зависал на каждом вздохе. Но большинство таких мест к счастью уже исправлено.
Закончить разработку намереваюсь за это лето, где-то после конкурса.
66% - Очень приблизительный прогресс

Коммерциализация

Данная наработка после релиза будет платной. Однако, в рамках сообщества XGM она будет распространяться путем выдачи ключей, которые позволят использовать плагин во всей красе просто за красивые глаза :)
Я думаю, что данная наработка поможет многим пользователям XGM перейти со StarCraft и WarCraft на Unity, или хотя бы просто порадует глаз разработчика старым добрым интерфейсом..

Скриншоты

Немного скриншотов не помешает. Однако, они быстро устаревают и в переписанном виде вас будет ожидать нечто поудобнее.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
2
10 лет назад
2
Если честно, то не особо понял. Это будет модификатор для редактора warcraft 3? Если да, то можно ли будет его сочетать с JNGP (потому как многие наверняка превысят лимит по декору)?
0
21
10 лет назад
0
risk, это для Unity3D, а не для варкрафта
1
25
10 лет назад
1
Вау, редактор вар3 на юнити? Круто, почему я раньше не видел этого проекта?
0
27
10 лет назад
0
sleep, уже не вар3. Читай ласт стори, я решил его упростить и он теперь выглядит иначе.
4
25
10 лет назад
4
Extravert, жаль, вар3 на юнити был бы успехом :с
2
29
10 лет назад
2
sleep, я думаю, что будет лучше
0
27
10 лет назад
0
Вообще в плане редактирования команд - точно быстрее.
Для наглядности нарисовал скетч гуи для редактирования числа. Такие гуи доступны для всех сериализуемых движком типов + особый тип обработки для действий. Собственно во внутренних прямоугольниках при любой вложенности мы можем редактировать параметры. Сноски справа позволят поменять значения местами или изменить редактирование (значение/метод/переменная) в этом прямоугольнике.
Выглядеть это будет шире, чем старые команды "как в варкрафте", но работать с этим получится быстрее. Кроме того я думаю комбинировать несколько способов вывода, например сворачивать списки если значений много под кнопку. Плюс такие редакторы мы можем вставить куда угодно, под любой тип и в любой ситуации, а не только по схеме "события->условия->действия" и в общем окне, как это делается в варкрафте.
Загруженные файлы
Этот комментарий удален
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.