1.4.7399

конец августа — первая серия исправлений

Улучшения C#-скриптинга

Одна из ключевых возможностей EyeAuras — это движок C#-скриптов, который позволяет компилировать, загружать и выполнять ваш код в реальном времени. Он используется в действиях, триггерах и деревьях поведения.

Поскольку в коде для скриптов практически нет ограничений, ошибки встречаются довольно часто: они могут приводить к крашам, дедлокам и другим типичным проблемам программирования. Я уже писал об этом в чейнджлоге 7060.

В этой версии я добавил дополнительный механизм, который будет автоматически расширять и переписывать ваш код, чтобы уменьшить влияние некоторых распространённых ошибок. Например:

  • необработанные исключения в Task
  • использование Thread.Sleep вместо метода Sleep, встроенного в EyeAuras, который намного точнее и поддерживает отмену
  • бесконечные циклы вроде while(true){} вместо while(!cancellationToken.IsCancellationRequested){}

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

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

Если заметите что-то странное — обязательно сообщите!

Исправления и улучшения

  • [Crash] Исправлен краш на Windows 10 Home (и N), связанный с отсутствием библиотек OpenCL
  • [Sublicenses] Сублицензии теперь отображаются в интерфейсе. Пока что вместо имени пака показывается только Id
  • [UI] Окно лицензионного соглашения EyeAuras теперь автоматически активируется при запуске. Это не затронет тех, кто уже когда-либо его принял
  • [UI] Переработан механизм импорта/экспорта — это должно исправить проблемы с заменой деревьев поведения и ещё несколько связанных моментов
  • [BehaviorTrees] Обновлён интерфейс: элементы управления немного перераспределены, изменены стили и т. д. Посмотрим, насколько удобной окажется новая версия
  • [BehaviorTrees] Добавлена визуализация ошибок — если в каком-либо узле возникнет ошибка, она теперь будет отображаться в UI так же, как ошибки в аурах
  • [Scripting] Выпущена новая версия EyeAuras.SDK