Стих (язык программирования)
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2024 г. ) |
Парадигма | Объектно-ориентированный |
---|---|
Разработано | Саймон Пейтон Джонс , Тим Суини , Леннарт Аугустссон , Гай Стил , Олин Шиверс, Ранджит Джала, Коэн Классен, Йоахим Брейтнер |
Разработчик | Эпические игры |
Впервые появился | 2023 |
Дисциплина набора текста | Сильный |
Лицензия | Собственный |
Расширения имен файлов | .стих |
Веб-сайт | разработчик |
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 .
Ссылки
[ редактировать ]- ^ «ВерсеМетаВерс/УнреалВерс» . Гитхаб . Проверено 6 июня 2024 г.
- ^ «За пределами функционального программирования: вкус Verse. Саймон Пейтон Джонс и Тим Суини | Lambda Days 2023» . Ютуб . Синхронизация кода. 26 июня 2023 г.
- ^ Перейти обратно: а б ДЖОНС, САЙМОН ПЕЙТОН; СВИНИ, ТИМ; СТИЛ, ГАЙ; ДЖИВЕРС, ОЛИН; ДЖАЛА, РАНДЖИТ; КЛЕССЕН, КОЭН; БРЕЙТНЕР, ИОАХИМ; АУГУСТССОН, ЛЕННАРТ (2023). «Исчисление стихов: основное исчисление для функционального логического программирования» (PDF) .
- ^ «Неофициальный API стихов» . ФНКвики .