Book of Verse
13 points by manuel
13 points by manuel
Tim Sweeney hates Linux, so unless you aim to be a Fortnite metaverse developer, I wouldn't invest too much time into reading about the language.
Well, you can read about and learn from a language you'll never use. Verse has some really interesting design, for example around fallibility, structured concurrency, guards (see "live variables"), and effect markers.
I agree, I read all the docs and like the language design. But I don't know if I'll go looking up Verse design patterns, any ecosystem it might have etc.
Sweeney doesn't hate Linux. He just thinks it wrongly cares about abstract freedom principles over pragmatic user experience.
Linux doesn't allow as strong anti cheat protections as Windows, and this is (to Sweeney) a deal breaker for modern multiplayer games. He stridently criticises the attitude of Linux devs/users who don't want Linux to support Windows-strength anti cheat.
Unreal Tournament was one of the game series that had Linux builds, I don't think this is quite true.
After taking a look I'm left wondering where "choices" went. Choices are the concept of all expressions denoting a sequence of zero or more values and program execution branching from that point onwards, see page 13 on this presentation. From reading the papers and watching the presentations SPJ and Tim Sweeney gave in the past, I was under the impression that they were one of Verse's core features, but they're not mentioned anywhere in this book.
A.k.a. ambig from SICP.
I don't see choices in the docs, though the section on failure is essentially the ability of an expression to produce 0 or 1 values. I just don't see a way to do 2 or more. https://verselang.github.io/book/08_failure/
This feature (choice/ambig) has been known about for a long time, but never put in any major language that I'm aware of (though sort of Prolog if you squint I guess). I wonder if it's not very practical for some reason. Could just be how easy it makes it to introduce exponential run time.
Ah, so that's what amb/ambig was! I remember running across it many years ago when I was dabbling with Scheme but I never understood it.
Could just be how easy it makes it to introduce exponential run time.
That might be it. Maybe the working group just decided that it would be too confusing.
Choice is missing from the book because it hasn't shipped yet in the Unreal Engine implementation. It's still how the language plans to do iteration. You can see hints of it in the for loop syntax, which is supposed to generalize consume choice, but is currently limited to built-in stuff like arrays.
(The other language that shipped choice was Icon, and to some degree other parts of the SNOBOL line. The Verse ICFP paper mentions this one.)
QuakeC has sure come a long way!
Trolling aside, I'm pretty excited about Verse. Not planning to really program in it myself but I'm eagerly waiting to see how for example its transactional memory works out in practice. Also the "first class failure" system is interesting (error cases produce no value at all) but I'm having a hard time understanding it's implications. Is it really that different from booleans and short-circuiting evaluation?
I'm a bit bummed to see very LLMish salesman language like "This function doesn't just check conditions - it embodies them." But I also understand that a machine-edited book is probably better than an unedited one.
Is this a design for a proposed language? I was looking for demos, screenshots etc and found none.
"Verse is a multi-paradigm programming language developed by Epic Games for creating gameplay in Unreal Editor for Fortnite and building experiences in the metaverse."
metaverse
It’s sad that Epic are still touting the metaverse as a thing. It was a Zuckerberg idea that Facebook fumbled so badly all that remains is a stupid company rename. It was clearly doomed to be worse than even Second Life when they revealed the legless avatars four years ago. I wonder why Epic Verse is being tied to another company’s dead project.
I don't think Zuckerberg deserves credit for the word "metaverse" or the idea behind it. People have been talking about it and building metaverse implementations for decades.
The term "metaverse" was invented by Neal Stephenson in 1992, and went viral due to the popularity of his novel "Snow Crash". Second Life was an early implementation of the metaverse concept. Here's a 2007 citation for this:
Around the same time, Neal Stephenson's science-fiction classic Snow Crash swept through the tech community. The novel takes place across two worlds: the real world, and the global, highly realistic online space called the Metaverse. Rosedale's wife bought him the book, and he was inspired.
"I concluded the Metaverse was going to happen but not yet, not at the time," he says. The Internet wasn't robust enough, connections were still mostly dial-up, and PCs didn't have sophisticated 3D graphics. "I told friends I would work on something else and wait."
There was also a project, libopenmetaverse, for interacting with Second Life servers. Now defunct.
https://web.archive.org/web/20090406085259/http://lib.openmetaverse.org/wiki/Main_Page
So Zuck didn't invent the word or the idea.
Fortnite is a newer, much more successful metaverse, and Verse is the Fortnite scripting language.
I think Epic's plan for Fortnite is to turn it into something similar to Roblox, so by metaverse they probably mean a platform user-generated games.
According to https://en.wikipedia.org/wiki/Metaverse the term dates to 1992, i.e. long before Facebook.
I think Sweeney uses it as a general term for a large-scale simulated environment.
looks like the repo dates back to 2 weeks ago, I wonder if this is a sign it might actually be available for more general use soon?