Verse (paper/slides, language reference) is the “language for the metaverse” being developed by Epic Games and some very well-known PL researchers.

It has some very ambitious and non-traditional features: first-class types, effects, non-strict evaluation, choice (kind of like non-determinism), and transactional memory. Transactional memory means that a Verse computation (transaction) can be aborted early, and all effects produced by the transaction will be reverted.

Verse also is interoperable with C++, and part of that interop is that C++ functions called in Verse must also have their C++ effects reverted. Furthermore, this is for graphically-intensive realtime games so this rollback implementation must cause as minimal overhead as possible. That’s what this article is about.

There’s already some Verse code running in Fortnite and you can write Fortnite plugins in Verse today, but it’s very WIP.

  • @[email protected]
    link
    fedilink
    English
    3
    edit-2
    3 months ago

    Haven’t read the paper yet, but skimming the front page of the docs, their description makes “choice” sound more like Java/C++ exceptions than Prolog’s choice point system.

    Edit: Yeah. It looks like the if expression takes a fallible expression rather than a Boolean expression. It’s basically a catch in other languages.

    Maybe I’m being a bit too critical. But I’m a fan of choice in logic programming, and this ain’t that.

    • @bitcrafter
      link
      English
      13 months ago

      Huh, the docs are the only place where I see if defined in that way; in the slide decks and the paper the term “choice” means what you would expect in a logic programming context, and they even show concrete examples of unification. Maybe the Unreal Engine is using a subset of the full language for its dialect so that it can be mapped to and from C++?