Ask Epic: Verse - March 28 @ 10:00 AM ET

I found the Verse tab!
Thank you for answering my question.

hello there, thanks very much for everything!

  1. Since last update, custom npcs are not able to reference devices, was this intentional or a bug? If it was intentional, it will make things a lot harder to control everything from an outside manager, for example simulating melee damage without a damage device attached to the npc… etc(please check the thread below)

  2. Its all clear that the most wanted thing for now is debug support, so as a low hanging fruit, maybe you could output the memory dump and stack trace on the console when you have an error that you can reproduce on editor.

Thanks again, good luck on the talk and thanks for that!

Why is adding/updating a map a failable expression? Under what circumstances can this fail and how am I supposed to deal/handle the failure case?

Hey folks, we’ll be starting in about 10 minutes!

1 Like

This is a current shortcoming of the compiler. A complete assignment of the value at a particular key in a map will always succeed, and the possible failure can be ignored via if {...}.

No, largely due to types in MaxVerse not being distinguishable from partial identity functions. Making types comparable would requiring deciding the equivalence of e.g. int and a lambda that evaluates int on its argument at runtime, which is in general undecidable.

Yes, the scene graph constructs are intended become the foundational building block of Unreal Engine content at some point in the future.

2 Likes

We’ve just been prioritizing other things (see the content packed GDC sessions of what we’ve been up to). But I’ll bring this up with the relevant team!

Honestly we’ve just been prioritizing other things in the meantime (you’ll be able to see our packed GDC sessions of what we’ve been up to). But I’ll be sure to bring this request up with the teams that own this slice of UEFN.

Yes. For that matter, the type system that Verse is currently based off of, MLsub, supports these without issue. However, the concern is that MLsub here may not match MaxVerse.

1 Like

I don’t know the ins and outs of this personally, but I can see why they’d be useful APIs to have. I’ll chase up the team involved.

The scene graph is meant to be a new foundation for UEFN, so its been designed to run in all the contexts we need it to run in. The first two cases being setting up content statically through UEFN and manipulating (create/remove/modify) through the runtime. We haven’t started designing any procedural elements for it yet, such as how it will look when exposed to PCG, but we are thinking about it.

1 Like

Yes, you will be able to use actors alongside entities. We’re also working on some bridging mechanisms to make working with mixed scenes containing both actors and entities simpler. In the long run we’ll also develop tooling to aid with transitioning actor based content to scene graph based content, which we’ll also use internally as we transition Fortnite to the scene graph.

1 Like

Discriminated unions are currently being designed, but there is no timeframe I can give.

1 Like

Testing in Verse is something I’m passionate about. No concrete plans yet on when/what/how but I am in active discussions about how we can make more Verse more testable.

1 Like

Yes, we’re working on it and it should release soon.

1 Like

No plans no. We see Verse as the language to power the Open Metaverse, and as such it will grow to allow the Verse code of many developers to interact in a safe manner. So I’m not saying we’ll never allow this, but there is a huge requirement that we make this safe and secure for our Fortnite gamers and beyond.

2 Likes

We hope to generalize extension methods to extension fields, though they would be constrained to not have side-effects (no transacts, suspends, etc.).

1 Like

The agent parameter is used (and sometimes required) in a few common ways behind the scenes, though at times it might not be obvious enough just from the name of the functions or comments.

  1. If the device has per-player state then the agent version is letting you control just the state for that player
  2. If the device has per-team or per-class control then the agent parameter is being used to figure out which team/class the function is working against.
  3. In some cases the device keeps the agent being passed in so that it can pass it along during an event later, such as alerting which player turned on a timer.
1 Like

The best answer I can give is it is on our minds.