Платформы / жанры PC
Дата выхода: 7 сентября 2017 (Альфа)
Разработчик: Novaquark
Издатель / Издатель в России: Novaquark

УЛУЧШЕНИЯ И ИЗМЕНЕНИЯ В LUA Dual Universe, ЧАСТЬ 1

Admin13-10-2021, 22:25
Категория: Dual Universe новости
Издательский рейтинг
Игромания: 99
Stopgame: 98
Kanobu: 87
Котонавты: 84
Digital Spy: 88
Общий: 91
Мы добавили множество функций в Lua API после добавления щитов и основного боевого воздействия в дополнение к изменениям в стыковке и посадке. Мы учли многие ваши отзывы и предложения и внесли несколько изменений, чтобы улучшить последовательность и реализацию Lua.

Эти изменения незначительны; мы не можем переделать весь API Lua, не сломав большинство ваших скриптов.

Учитывая это, и чтобы завершить реализацию API Lua, связанную со стыковкой и будущими изменениями других механик, мы решили скорректировать несколько частей, которые могут быть важными для создателей Lua, как для добавления новых функций, так и для улучшения и согласованности API в целом.

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

ИЗМЕНЕНИЯ И ДОПОЛНЕНИЯ
Во-первых, мы решили переработать способ управления хранилищами, связанными с конструкциями и элементами.

Ранее некоторые функции, возвращающие информацию о положении или ориентации, ссылались на центр или даже угол конструкции, другие - на положение основного блока в конструкции.

Теперь мы все стандартизировали. Как только эти изменения вступят в силу, все функции будут основываться на системе отсчета конструкции, центром которой является центр зоны построения. Кроме того, чтобы гарантировать функциональность систем полета и защитить гироскоп, мы внедрили более четкий способ представления ориентации.

Блок ориентации - это элемент, который используется для определения ориентации вашей конструкции. В игре есть два блока ориентации: основной блок и блок гироскопа. Поскольку конструкция не может существовать без уникального основного элемента, основной элемент всегда является элементом ориентации по умолчанию. Нажав F на блоке гироскопа, вы можете переключиться на использование гироскопа в качестве текущей единицы ориентации.

Вы можете видеть, что маркер и стрелка, отображаемые при входе в режим сборки, будут указывать на ориентацию, заданную активным блоком ориентации.

Вы можете активировать блок гироскопа, нажав на нем F, и таким образом использовать его ориентацию.

См. ниже:
 

Для этих изменений мы добавили:

<int> core.getOrientationUnitId() : Возвращает UID активного в данный момент блока ориентации (основной блок или блок гироскопа).
Мы также изменили следующие функции:

<vec3> core.getConstructOrientationForward() : Возвращает вектор направления вперед активного блока ориентации в локальных координатах конструкции.
<vec3> core.getConstructOrientationUp() : Возвращает вектор направления вверх активной единицы ориентации в локальных координатах конструкции.
<vec3> core.getConstructOrientationRight() : Возвращает вектор направления вправо активной единицы ориентации в локальных координатах конструкции.
<vec3> core.getConstructWorldOrientationForward() : Возвращает вектор направления вперед активной единицы ориентации в мировых координатах.
<vec3> core.getConstructWorldOrientationUp() : Возвращает вектор направления вверх активной единицы ориентации в мировых координатах.
<vec3> core.getConstructWorldOrientationForward() : Возвращает вектор направления вправо активной единицы ориентации в мировых координатах.
<vec3> core.getConstructWorldPos() : Возвращает положение центра конструкции в мировых координатах (вместо положения единиц ориентации).

УДАЛЕНИЕ КВАТЕРНИОНОВ
Кватернионы - это квантор двух направленных линий в трехмерном пространстве или квантор двух векторов.  Изучая, как игроки используют Lua, и читая их отзывы, мы поняли, что очень немногие игроки знакомы с этим математическим понятием представления вращения.

Поэтому мы решили отказаться от кватернионов в API Lua и вместо них использовать векторы направлений объектов.

Хотя это приводит к добавлению и изменению некоторых функций, устаревшие функции останутся обратно совместимыми и будут отображать сообщение об устаревании в консоли Lua.

<quat> core.getElementRotationById(<int> uid) : DEPRECATED
<vec3> core.getElementPositionById(<int> uid) : Возвращает позицию элемента, идентифицированную его UID в локальных координатах конструкции (вместо угла конструкции).
<vec3> unit.getMasterPlayerRelativePosition() : ОПРЕДЕЛЕНО
<quat> unit.getMasterPlayerRelativeOrientation() : РАЗРЕШЕНО
И мы добавили следующие функции:

<vec3> core.getElementForwardById(<int> uid) : Возвращает вектор направления вперед элемента, идентифицированного его UID, в локальных координатах конструкции.
<vec3> core.getElementUpById(<int> uid) : Возвращает вектор направления вверх элемента, идентифицированного его UID, в локальных координатах конструкции.
<vec3> core.getElementRightById(<int> uid) : Возвращает вектор направления вправо элемента, идентифицированного его UID, в конструктивных локальных координатах.
<vec3> unit.getMasterPlayerPosition() : Возвращает позицию игрока, управляющего блоком управления в данный момент, в локальных координатах конструкции (относительно центра конструкции, а не блока управления).
<vec3> unit.getMasterPlayerWorldPosition() : Возвращает позицию игрока, управляющего блоком управления в данный момент, в мировых координатах.
<vec3> unit.getMasterPlayerForward() : Возвращает вектор направления вперед игрока, управляющего блоком управления, в локальных координатах конструкции.
<vec3> unit.getMasterPlayerUp() : Возвращает вектор направления вверх игрока, управляющего блоком управления в данный момент, в конструктивных локальных координатах.
<vec3> unit.getMasterPlayerRight() : Возвращает вектор направления вправо игрока, управляющего блоком управления в данный момент, в конструктивных локальных координатах.
<vec3> unit.getMasterPlayerWorldForward() : Возвращает вектор направления вперед игрока, управляющего блоком управления в данный момент, в мировых координатах.
<vec3> unit.getMasterPlayerWorldUp() : Возвращает вектор направления вверх игрока, управляющего блоком управления в данный момент, в мировых координатах.
<vec3> unit.getMasterPlayerWorldRight() : Возвращает вектор направления вправо игрока, управляющего блоком управления в данный момент, в мировых координатах.
ДОПОЛНЕНИЯ LUA API, СВЯЗАННЫЕ СО СТЫКОВКОЙ
С новой механикой стыковки мы хотели расширить возможности игроков по управлению отношениями "родитель-ребенок" между конструкциями. 



Некоторые из дополнений были добавлены в обновлении Ares (0.26.12), однако у нас было запланировано еще больше изменений и дополнений, и они будут включены, как только эти изменения появятся в игре.

Мы добавили и изменили следующие функции:

<vec3> core.getVelocity(): Возвращает линейную скорость конструкции относительно ее родителя в локальных координатах конструкции.
<vec3> core.getWorldVelocity(): Возвращает линейную скорость конструкции относительно ее родителя в мировых координатах.
<vec3> core.getAbsoluteVelocity(): Возвращает абсолютную линейную скорость конструкции в локальных координатах конструкции.
<vec3> core.getWorldAbsoluteVelocity(): Возвращает абсолютную линейную скорость конструкции в мировых координатах.
<vec3> core.getParentPosition(): Возвращает позицию родителя конструкции при пристыковке в локальных координатах конструкции.
<vec3> core.getParentWorldPosition(): Возвращает положение родителя конструкции при пристыковке в мировых координатах.
<vec3> core.getParentForward(): Возвращает вектор направления вперед родителя конструкции в локальных координатах конструкции.
<vec3> core.getParentUp(): Возвращает вектор направления вверх родительской конструкции в локальных координатах конструкции.
<vec3> core.getParentRight(): Возвращает вектор направления вправо родительской конструкции в локальных координатах конструкции.
<vec3> core.getParentWorldForward(): Возвращает родительский вектор направления вперед конструкции в мировых координатах.
<vec3> core.getParentWorldUp(): Возвращает вектор направления вверх родительской конструкции в мировых координатах.
<vec3> core.getParentWorldRight(): Возвращает вектор направления вправо родительской конструкции в мировых координатах.



Комментарии: (0)
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Купить Dual Universe
Dual Universe купить игру
В данном разделе можно приобрести/купить игру Dual Universe. Приобретайте...
6-10-2020, 15:30
Dual Universe новости
Обновление "Селен" (0.26.17) В Dual Universe доступно
Сообщество создателей Dual Universe с удовольствием погрузится в последнее...
Вчера, 15:43
Dual Universe новости
УЛУЧШЕНИЯ И ИЗМЕНЕНИЯ LUA в Dual universe ЧАСТЬ 3
Lua - это настоящий язык программирования, который можно использовать в Dual...
16-10-2021, 18:48
Dual Universe новости
УЛУЧШЕНИЯ И ИЗМЕНЕНИЯ LUA в Dual Universe ЧАСТЬ 2
В первой части мы рассмотрели некоторые новые возможности Lua, такие как...
16-10-2021, 18:35
Новостной ресурс "Dual Universe" создан геймерами для геймеров, которые хотят постоянно быть в курсе самых свежих новостей игрового мира. Мы отбираем самые интересные новости об играх и сразу же публикуем их на сайте. Мы пишем новости игровой индустрии, анонсы, публикуем новые трейлеры и видео к предстоящим играм, следим за игровыми выставками и техническими новинками. Помимо информации о консольных играх, мы также пишем новости и статьи мобильных игр и онлайн-проектов. Будьте всегда в курсе последних новостей - следите за играми вместе с игровыми новостями и статьями от "Dual Univers.ru"!
Powered by Dual Universe. Все права защищены.
МЕТРИКА
up