Jump to content

Стих (язык программирования)

Стих
Парадигма Объектно-ориентированный
Разработано Саймон Пейтон Джонс , Тим Суини , Леннарт Аугустссон , Гай Стил , Олин Шиверс, Ранджит Джала, Коэн Классен, Йоахим Брейтнер
Разработчик Эпические игры
Впервые появился 2023 ; 1 год назад ( 2023 )
Дисциплина набора текста Сильный
Лицензия Собственный
Расширения имен файлов .стих
Веб-сайт разработчик .epicgames /документация /en-нас /уэфн /verse-language-reference

Verse — статически типизированный объектно-ориентированный язык программирования, созданный Epic Games . Он был выпущен вместе с UEFN в марте 2023 года и был написан командой известных программистов во главе с Саймоном Пейтоном Джонсом и генеральным директором Epic Games Тимом Суини . Verse предназначен для взаимодействия с существующей системой устройств Fortnite Creative . По состоянию на июнь 2024 года UEFN остается единственным способом интерпретации, анализа, компиляции или запуска кода Verse; обсуждались планы по внедрению этого языка в версию Unreal Engine 6. [1]

Модули и импорт

[ редактировать ]

Verse поддерживает модульное программирование , позволяя разработчикам импортировать определенные модули, необходимые для их сценариев. Часто используемые модули включают дайджесты API , которые генерируются каждый раз при открытии проекта, содержащего стих. Существует дайджест API для доступа и взаимодействия с объектами Fortnite, объектами Verse и объектами Unreal Engine. Разработчики также могут создавать свои собственные модули и при необходимости импортировать их в скрипты.

Классы и объекты

[ редактировать ]

Verse использует на основе классов модель объектно-ориентированного программирования . Разработчики могут определять классы для представления различных игровых объектов и поведения.

Например:

hello_world_device := class(creative_device):
    OnBegin<override>()<suspends>:void=
        Print("Hello, world!")
        Print("2 + 2 = {2 + 2}")

Приведенный выше код определяет новый класс, унаследованный от «creative_device», и печатает традиционное сообщение « Привет, мир ». Все классы, унаследованные от «creative_device», при компиляции могут быть помещены в пространственную среду движка. Класс «creative_device» необходим для взаимодействия с уже существующим набором инструментов Fortnite Creative.

Функции и методы

[ редактировать ]

Verse позволяет определять функции внутри классов. Они могут выполнять различные операции, такие как математические вычисления, игровая логика и многое другое. В приведенном ниже примере показан метод определения того, смотрит ли персонаж на определенное место.

IsLookingAtLocation(Character:fort_character, LocationToCheck: vector3, Threshold: float):logic

Обработка событий

[ редактировать ]

Язык поддерживает программирование, управляемое событиями, где такие события, как EliminatedEvent и PlayerAddedEvent может запускать определенные функции. На события также можно подписаться и слушать.

Математические и пространственные операции

[ редактировать ]

Verse поддерживает различные математические функции, необходимые для разработки игр, такие как вычисление величин , нормализация векторов и преобразование вращений в векторы направления. Модуль пространственной математики предоставляет классы и функции для векторной и вращательной математики, необходимые для таких задач разработки игр, как позиционирование и движение. Cos, Normalize, Distance , ArcTan, и Lerp Вот несколько функций, доступных для математических операций. [2] [3]

Лямбда-исчисление

[ редактировать ]

Код Verse имеет несколько общих черт с лямбда-исчислением , особенно в том, как он обрабатывает функции и данные. В лямбда-исчислении функции являются гражданами первого класса, то есть их можно передавать в качестве аргументов другим функциям, возвращать как значения из других функций и присваивать переменным; в то время как в Verse функции можно передавать и манипулировать аналогичным образом, демонстрируя парадигму функционального программирования. Примеры включают такие методы, как Normalize(v1:vector3) и DrawDebugLine(LineStart: vector3, LineEnd: vector3). Verse поддерживает лямбда-выражения и анонимные функции, позволяя определять встроенные функции аналогично тому, как лямбда-функции используются в таких языках, как Python или JavaScript . Verse также позволяет создавать функции путем объединения вызовов методов и передачи функций в качестве параметров. Декларативный стиль, используемый в лямбда-исчислении, также является важной особенностью Verse для определения преобразований данных и вычислений, а не императивной модели потока управления. Это видно в таких функциях, как Normalize и DrawDebugLine которые определены декларативно. [4] [3]

Планы на будущее

[ редактировать ]

Epic Games описала Verse как язык программирования метавселенной и учла при своей разработке массовую масштабируемость. До предполагаемой конвергенции с Unreal Engine еще неизвестно, как Verse будет вести себя при взаимодействии с различными системами и процессами за пределами экосистемы Fortnite .

  1. ^ «ВерсеМетаВерс/УнреалВерс» . Гитхаб . Проверено 6 июня 2024 г.
  2. ^ «За пределами функционального программирования: вкус Verse. Саймон Пейтон Джонс и Тим Суини | Lambda Days 2023» . Ютуб . Синхронизация кода. 26 июня 2023 г.
  3. ^ Перейти обратно: а б ДЖОНС, САЙМОН ПЕЙТОН; СВИНИ, ТИМ; СТИЛ, ГАЙ; ДЖИВЕРС, ОЛИН; ДЖАЛА, РАНДЖИТ; КЛЕССЕН, КОЭН; БРЕЙТНЕР, ИОАХИМ; АУГУСТССОН, ЛЕННАРТ (2023). «Исчисление стихов: основное исчисление для функционального логического программирования» (PDF) .
  4. ^ «Неофициальный API стихов» . ФНКвики .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b2cd0a54925c8f805f4ed281ea0230e2__1721220120
URL1:https://arc.ask3.ru/arc/aa/b2/e2/b2cd0a54925c8f805f4ed281ea0230e2.html
Заголовок, (Title) документа по адресу, URL1:
Verse (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)