Live data from Hacker News

Type system of Fortnite's Verse language

brianmckenna.org

51–60 of 159 posts

Re: Type system of Fortnite's Verse language

#51

Tangential, and because I had to look it up: > Verse has been designed by some people who really know what they’re doing: Lennart Augustsson, Joachim Breitner, Koen Claessen, Ranjit Jhala, Simon Peyton Jones, Olin Shivers, Tim Sweeney The listed people are all luminaries of the functional programming world (and adjacent, like theorem proving and software verification), particularly Haskell. Hell, Simon Peyton Jones i…

Or they might be just creating a Yet Another Language precisely because they are luminaries of functional programming. Those often tend to chase a yet another unattainable dream of "the one true functional language". When you type the words "the really know what they are doing" when talking about a language for game programming , I would expect people who know about game programming first, and about language design s…

C/C++/C# are indeed often used for game programming but when it comes to gameplay logic scripting there's a lot more options. Lua, blueprint, lisp, angelscript, unity's graph language etc..

Re: Type system of Fortnite's Verse language

#52
post #5

Tangential, and because I had to look it up: > Verse has been designed by some people who really know what they’re doing: Lennart Augustsson, Joachim Breitner, Koen Claessen, Ranjit Jhala, Simon Peyton Jones, Olin Shivers, Tim Sweeney The listed people are all luminaries of the functional programming world (and adjacent, like theorem proving and software verification), particularly Haskell. Hell, Simon Peyton Jones i…

At the same time… the language is interesting , and I’m sure it’s technically very well designed, but I’m not sure it’s a good fit for the task they’ve got. The apparent goal is for this to allow anybody to democratically contribute to Fortnite (a game most popular with a fairly young audience), but the language feels very technical and not-beginner-friendly to me. For example, it’s fairly symbol-heavy (making it int…

A lot of this type-system stuff is not really relevant to the Fortnite modder audience. If you look at the kind of code used in more practical examples (https://dev.epicgames.com/documentation/en-us/uefn/learn-cod...) it doesn't do very much of this -- it's basically Python crossed with Java.

Well, they have also inverted the usual capitalization conventions for seemingly no reason. Class names are lowercase_with_underscores and local variable names are UpperCamelCase.

Re: Type system of Fortnite's Verse language

#53
post #31

Earlier quoted context omitted.

The cachet they gain from having those luminaries and keeping them satisfied might outweigh the costs.

Generally speaking that's true. But I'm not entirely sure many luminaries would be satisfied being relegated to being the "Fortnite language". Surely they have larger goals here and it's why Epic is bothering when so much of their ecosystem relies on C++ currently.

I suspect they intend to roll this out the unreal engine some time in the future. Many people have been asking for a text based approach to game scripting (often it's ex-unity people asking for C# support.

Perhaps fortnight is kind of a test.

Re: Type system of Fortnite's Verse language

#54
post #6

Earlier quoted context omitted.

Nevertheless, I've yet to see an explanation of what problem Verse aims to solve that isn't solved by other languages out there. It's still very early (while announced last year, it was only just shown at GDC last week!) so I expect we'll be hearing a lot soon. Obviously, the association with Fortnite won't do it any favors. They claim they want

> Nevertheless, I've yet to see an explanation of what problem Verse aims to solve that isn't solved by other languages out there. You might find the explanation in TFA helpful: > "A battle royale lobby has just 100 players, which fit within a single compute shard. > "But Fortnite is much more than just battle royale. A huge number of Fortnite players are on custom game modes made by people outside of Epic Games. It’…

I was playing with UEFN quite a bit the last week. As far as I can tell there is no way to make the player limit larger than 100 currently. Maybe it's a plan for the future.

Re: Type system of Fortnite's Verse language

#55
post #48

Earlier quoted context omitted.

Why would Epic, owners of the primary reason why C++ is gravitated towards in game programming, spend time and money creating Yet Another Language just to satiate luminaries?

Likely identified one of their few remaining growth bottlenecks to be speed of development.

For further evidence, this similarly dated headline:

"Fortnite Creator Economy 2.0 will share 40% of net revenue"

Re: Type system of Fortnite's Verse language

#56

I'm curious to hear anyone's experience using the language. Or is it brand spanking new and no one has yet?

I've spent about 8 hours with it. It's neat to play with but I'm not yet sure it's the greatest fit for fortnight modding.

Part of the problem is getting used to fortnight's device lexicon. Devices are kind of like code fragments or class instances you place in the world, they have a few events you can hookup and do various things.

It's certainly WAY more restricted than blueprints in terms of what is exposed. In fact the UEFN editor completely disables blueprint scripting. You can only compose blueprint classes. You can't write any blueprint logic.

Re: Type system of Fortnite's Verse language

#58
There's a lot of bummed out comments in here about the syntax, but to me it looks a lot like what someone might see in a reimagined Typescript. Maybe a little Haskell thrown in for good measure. I agree they probably would have been better served just using an existing language with loads of existing tutorials like C# or Python, but if they're going to make something totally from scratch, I think a lot of decisions will actually make the language pretty easy to learn.

Everything being an expression should prevent a big trip hazard for new developers. As someone who teaches programming a lot, expressions vs statements vs special forms really confuses new developers.

In a lot of ways, this seems like a lot of good ideas from Haskell and Typescript, put into a straightforward syntax. I'd bet I wouldn't even think about the syntax after a week of cranking out code.

And the possibly to have dependent types down the road is very exciting! That would make things like STM so much easier, which would help immensely with scaling code.

Re: Type system of Fortnite's Verse language

#59
Has anyone tried Verse in the Fortnite context yet? I haven't used it yet, but I've been reading the documents.

Understand, this is a language for object behaviors. You don't write "a game" in Verse. You write behaviors for each type of object, and they interact to produce behavior. So it's a large number of little programs, reacting to events and talking to each other.

The main kinds of programs seem to be "devices" and "landscapes". Devices are entities within the scene, and "landscapes" are scenes. "Devices" will not usually have huge amounts of code.

Re: Type system of Fortnite's Verse language

#60

I'm curious to hear anyone's experience using the language. Or is it brand spanking new and no one has yet?

It's a bit tedious to even try it in my experience: you have to use Unreal Engine for Fortnite and interact with the code through that (no publicly available compiler/VM afaik). They have some docs at least on setting it up but still depends on having UEFN which is a little unfortunate: https://dev.epicgames.com/documentation/en-us/uefn/verse-api , https://dev.epicgames.com/documentation/en-us/uefn/starting-...

Does UEFN still have the problem where the framerate for rendering all UI halves each time you open a new window?
Post reply on HN