[Asset Store] Panthea VS. Visual Scripting System

Инструменты для разработки

[Asset Store] Panthea VS. Visual Scripting System

Сообщение Ichimitsu 01 ноя 2017, 12:14

Привет всем. Хочу представить вам систему визуального программирования Panthea VS https://www.assetstore.unity3d.com/#!/content/102390
Кто мы такие: http://endemics.org
Сайт где есть уроки и документация http://panthea.endemics.org
На данный момент плагин находится в предрелизной бетаверсии (практически весь функционал доступен, но могут быть баги связанные с взаимодействием разных элементов между собой).

Коротко о том, что это и чем отличается от Playmaker, Bolt и т.п.
- Основное отличие в том, что система построена вокруг ScriptableObject, проще говоря она не использует компонентую систему Unity3d, не надо ничего вешать на объекты в сцене.
Т.е. открыв редактор диаграммы всю логику и все объекты сцены можно напрямую использовать и устанавливать через переменные в ней, никаких других действий не требуется (а те что требуются делаются автоматически).

- Поскольку вся логика находится внутри диаграммы и не привязана напрямую к объектам (через компоненты), в системе Panthea VS возможна загрузка и исполнение диаграмм (и как итог логики) из любого места будь-то ассет (через WWW), файл или через ссылку в процессе работы приложения. При этом, если в диаграмме нет ссылок на объекты сцены, она может быть использована для любой сцены (фактически как некий шаблон). Также исполнение диаграммы возможно как из другой диаграммы так и из внешнего кода.

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

- Что касается фундаментального подхода, в отличии от Bolt и других копий BluePrint систем, который вытаскивают через рефлексию все публичные методы и свойства у классов Unity, которые в свою очередь являются базовым блоком, которым оперирует пользователь (фактически создает цепочки вызовов функций), система Panthea VS строится вокруг элемента, который является не просто некоей функций, а сущностью, которая реализуют любой функционал (по аналогии с Unity3d это скрипт MonoBehaviour). Чтобы было понятно, элемент - это блок, который может содержать любой функционал (от простого сложения чисел, до реализации какой-либо механики) и иметь множественные точки входа в блок и выхода из него. Так, например, у нас есть элементы реализующие DragAndDrop для Unity GUI, Sprite и GameObject, есть элементы управления цветом во времени, изменения видимости объекта, слежение за объектом и т.п.

- Особенно хочется отметить возможность переопределить внешний вид элементов в диаграмме, причем на нескольких уровнях, от полного переопределения, до замены определенных виджетов (заголовка, точек входа и выхода и т.п.), переопределение работает аналогично CustomEditor в юнити. Помимо этого при работе с кодом элемента, возможно использование Custom Property Drawer.

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

- Базовый блок в системе Panthea VS (элемент) может быть конфигурируемым по составу входных и выходных точек, также есть возможность создавать полностью динамические входные точки (включая тип данных, которые они принимают). Например у нас так работает элемент сложения чисел, в параметрах элемента можно задать сколько угодно операндов. Также входные и выходные точки могут инвертироваться, чтобы диаграмма была более компактна, и сам элемент может сворачиваться в минимизированное состояние.

- Элемент в нашей системе поддерживает вызовы методов Start, Update, LateUpdate, FixedUpdate, а также корутины. При этом все эти вызовы делают в одном месте и также можно установить в коде порядок вызова таких методов. Простой пример:
Синтаксис:
Используется csharp
[ElementDefinition(Name = "Start",
                           Path = "Mono",
                           Tooltip = "Call Start Mono method",
                           Color = VSEColor.Green)]
public class StartElement : Element
{
    public OUTPUT_POINT DoStart = new OUTPUT_POINT();

    [ExecuteOrder(Order = 1)]
    void Start()
    {
        DoStart.Execute();
    }
}


- Также у нас очень подробная документация которая включает в себя руководство пользователя по работе с редактором, описание всех элементов, руководство по программированию элементов и документация по API для этого.

О текущем состоянии системы:
- Сейчас в системе свыше 300 элементов, разной сложности, которые в целом позволяют реализовать игру без использования внешнего кода в принципе (в примерах внутри, есть сэмпл игры Карточки).
- Система проверена в работе на платформах Android, iOS, WebGL, PC/MAC
- Система поддерживает все версии Unity (Personal, Plus, Pro)

Что будет в будущем:
- Группировка элементов в диаграмме с возможностью настраивать имя, цвет, а также сворачивать и разворачивать группу.
- Новые базовые элементы (Unity Ads, Unity Analytic, Unity IAP)
- Новые комплексные элементы для механик (Match3 (с ИИ), простые механики (Карточки, Сортировки, Сравнение Картинок, Паззлы), Механики для FPS/TPS шутеров)
- Поддержка и интеграция сторонних плагинов (тут будет смотреть по запросам, как минимум Prime плагины и соц. сети)
- UML аналог для диаграмм, каркасная настройка логики (создание диаграмм, связей между ними, как прямых так и через глобальные события), просмотр в дебаг режиме текущего состояния (нахождения в диаграмме, переход в другое состояние). Фактически это даст возможность создавать стейт машины и переходы между ними, где стейт может быть сколь угодно сложным, сейчас аналог стейтмашины реализуется внутри диаграммы.

Коротко о том, кому пригодится система Panthea VS:
Если вы Гейм-Дизайнер:
- Создание прототипов без участия программистов
- Проверка идей, механик, логики.
- Создание простых игр
- Реализация абстрактных механик (расчеты, поведенческие алгоритмы, ИИ и т.п.), которые затем могут быть использованы программистами в коде путем вызова и исполнения диаграммы в процессе работы приложения

Если вы Художник:
- Возможность создавать цепочки эффектов без участи программистов
- Создание абстрактной логики поведения визуальных эффектов, которые могут быть использованы программистами в коде путем вызова и исполнения диаграммы в процессе работы приложения

Если вы Программист:
- Создание элементов любой сложности и вынос событий требующих визуальных эффектов, с тем чтобы их настройку производили художники или гейм-дизайнеры.
- Создание элементов для поддержки работы художников и гейм-дизайнеров
- Быстрое создание прототипов игры и механик.
- Поддержка изменения поведения логики на лету (через запуск нужных диаграмм)

PS: мы приветствуем стороннюю разработку элементов и их распространение через Asset Store (также можно выкладывать их на нашем форуме, основной язык английский, имейте это ввиду).

Небольшой скриншотик диаграммы:
Изображение
Аватара пользователя
Ichimitsu
UNец
 
Сообщения: 25
Зарегистрирован: 30 ноя 2010, 16:58
  • Сайт

Вернуться в Инструментарий

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1