Misplaced Pages

Verse (programming language)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
The topic of this article may not meet Misplaced Pages's notability guidelines for products and services. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "Verse" programming language – news · newspapers · books · scholar · JSTOR (September 2024) (Learn how and when to remove this message)
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Verse" programming language – news · newspapers · books · scholar · JSTOR (June 2024) (Learn how and when to remove this message)
Verse
ParadigmObject-oriented
Designed bySimon Peyton Jones, Tim Sweeney, Lennart Augustsson, Guy Steele, Olin Shivers, Ranjit Jhala, Koen Claessen, Joachim Breitner
DeveloperEpic Games
First appeared2023; 1 year ago (2023)
Typing disciplineStrong
LicenseProprietary
Filename extensions.verse
Websitedev.epicgames.com/documentation/en-us/uefn/verse-language-reference

Verse is a static typed object-oriented programming language created by Epic Games. It was released alongside UEFN in March 2023 and was authored by a team of well-known programmers led by Simon Peyton Jones, and Epic Games CEO Tim Sweeney. Verse is designed to interact with Fortnite Creative's existing ‍​devices system. As of June 2024, UEFN remains the only way to interpret, parse, compile or run Verse code; plans to implement the language into the release of Unreal Engine 6 have been discussed.

Features

Modules and importing

Verse supports modular programming, allowing developers to import specific modules required for their scripts. Commonly used modules include the API digests that are generated every time a project containing verse is opened. There is an API digest to access and interact with Fortnite objects, Verse objects, and Unreal Engine objects. Developers can also create their own modules and import them into scripts if needed.

Classes and objects

Verse employs a class-based object-oriented programming model. Developers can define classes to represent various game entities and behaviors.

For example:

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

The above code defines a new class inheriting from `creative_device` and prints the traditional "Hello, world" message. All classes inherited from a `creative_device' can be placed into the engine's spatial environment when compiled. The `creative_device` class is necessary to interact with the pre-existing Fortnite Creative toolset.

Functions and methods

Verse allows defining functions within classes. These can perform various operations, such as mathematical calculations, game logic, and more. The example below is a method to determine if a character is looking at a specific location.

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

Event handling

The language supports event-driven programming, where events like EliminatedEvent and PlayerAddedEvent can trigger specified functions. Events can also be subscribed to and listened for.

Mathematical and spatial operations

Verse supports various mathematical functions necessary for game development, such as calculating magnitudes, normalizing vectors, and converting rotations to direction vectors. The spatial math module provides classes and functions for vector and rotational math, essential for game development tasks like positioning and movement.Cos, Normalize, Distance , ArcTan, and Lerp are a few of the functions are available for mathematical operations.

Lambda calculus

Verse code shares several similarities with lambda calculus, particularly in how it handles functions and data. In lambda calculus, functions are first-class citizens, meaning they can be passed as arguments to other functions, returned as values from other functions, and assigned to variables; while in Verse functions can be passed around and manipulated similarly, showcasing the functional programming paradigm. Examples include methods like Normalize(v1:vector3) and DrawDebugLine(LineStart: vector3, LineEnd: vector3). Verse supports lambda expressions and anonymous functions, allowing for inline function definitions, similar to how lambda functions are used in languages like Python or JavaScript. Verse also allows for composing functions by chaining method calls and passing functions as parameters. The declarative style used in lambda calculus is also a prominent feature of Verse for defining data transformations and computations rather than an imperative control flow model. This is seen in functions like Normalize and DrawDebugLine which are defined declaratively.

Future plans

Epic Games has described Verse as the programming language for the metaverse and has factored mass scalability into its development. Until the proposed convergence with Unreal Engine, it is yet to be seen how Verse will behave interacting with various systems and processes outside of the Fortnite ecosystem.

References

  1. "VerseMetaVerse/UnrealVerse". Github. Retrieved 6 June 2024.
  2. "Beyond functional programming: a taste of Verse. Simon Peyton Jones & Tim Sweeney | Lambda Days 2023". YouTube. Code Sync. Jun 26, 2023.
  3. ^ JONES, SIMON PEYTON; SWEENEY, TIM; STEELE, GUY; SHIVERS, OLIN; JHALA, RANJIT; CLAESSEN, KOEN; BREITNER, JOACHIM; AUGUSTSSON, LENNART (2023). "The Verse Calculus A Core Calculus for Functional Logic Programming" (PDF).
  4. "Unofficial Verse API". FNCwiki.

External links

Epic Games
List of games
Games
developed
Jazz Jackrabbit
Unreal
Gears of War
Infinity Blade
Fortnite
Other
Third-party
publishing
Epic
MegaGames
Epic Games
Publishing
Technology
Subsidiaries
Current
Former
People
Current
Former
Related
Category
Programming languages
Categories: