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

Our March “Ask Epic” is almost upon us, and this time our team of experts will be answering your questions about Verse. A lot of news came out of the State of Unreal at GDC 2024 and we’ll be taking your questions about Verse Persistence, Scene Graph (which will enable you to dynamically manipulate almost every object in your game, alongside a new prefab system) and more.

Team members will be joining us live on the forums on 2024-03-28T07:00:00Z to answer your questions.

Submit your Verse questions directly to the expert members of our team. Ask about feature insights, development guidance, career advice for coders, industry questions, and of course, what you’re wondering specifically about Verse!

Make sure to check out the backgrounds and expertise of our special guests featured below. :point_down:

Do you have a question for us? Ask away by replying to this post! Please see the rules below for posting your questions.

MEET THE TEAM

Kurtis Schmidt / Technical Director, Framework
Kurtis Schmidt is the Framework Technical Director on the Unreal Engine at Epic Games. He’s been working on game engine technology for the last 13 years. Since joining Epic two years ago he has been working on the creation of Unreal Editor for Fortnite, the Verse programming language APIs, and leading the creation of the new UEFN scene graph. Previously, Kurtis was the Director of Technical Product for the Frostbite Core Engine group at Electronic Arts, where he led the visual scripting, entity component system, 3D scene editor, networking, and low-level subsystem teams.

Neil Henning / Principal Language Programmer
Neil Henning is a Principal Language Programmer on the Verse team at Epic Games. He’s been working on compilers for 15 years, and since joining Epic two years ago, he has been working on the transactional memory system that underpins Verse.

Andy Sonnenburg / Principal Language Programmer
Andy Sonnenburg is a Principal Language Programmer on the Verse team at Epic Games. He’s been working on compilers for 10 years, and since joining Epic two years ago, he has worked on many parts of the BetaVerse compiler, including parametric polymorphism, constructor functions, named parameters, and lately persistence, as well as the reference implementation for MaxVerse.

AMA GUIDELINES:

  • Use the Reply button at the bottom. Please read through the questions to see if your question has already been asked, before posting your own.
  • Please do not reply to anyone else’s post—replies should only come from Epic. If you’d like to discuss a related topic in more detail, create a new topic.
  • Keep in mind that this is not a support session. Questions that are specific to your islands, account, or troubleshooting will be removed.
  • Don’t forget to have fun!
  • Posts not following these guidelines may be removed by moderators to keep the AMA flowing smoothly.

Thank you!

Flak

4 Likes

I normally use FNC and am slowly moving my way to UEFN. The problem is, I can’t find any beginner tutorials for Verse (pretty much essential for everything I do in UEFN as far as I know) that aren’t super complicated.
The only beginner tutorials I can find are how to print Log messages, which will do absolutely nothing in my journey to UEFN coding.

So, here’s my question: Where do I find Verse tutorials that are both easy and useful?

Why are basic UI things still not available in Verse UI?

  • font_size
  • size_box
  • scroll_box
  • opacity for texture_block
  • button and button_slot do not work for gamepad users

Is there any effort to make all the basic UMG features available in Verse?

Also, why can’t we cancel tasks in Verse?

5 Likes

Are there any UI-related updates in the works?
It’s been a year since UEFN released and Verse UI seems to have been neglected…

  • no materials on verse widgets
  • no customisation options for buttons
  • some UMG visibility options not present on widget_visibility verse enum
  • missing text_block settings (font, scale, justification, wrapping, etc.)
  • no control over widget transforms (ie. skew, scale, rotation, etc.)
  • no widget animations (or at least being able to ‘bind’ margins, offsets, to variables in order to move widgets around on a canvas)
  • controller input rarely works with Verse widgets
  • other UMG elements missing

Any reason we haven’t seen these features yet? And if they’re not entirely off the table, when should we expect to receive them?

Will there be any means of tying Fortnite experiences to real world time via Verse?
ie. Seasonal events, item shops, that sort of stuff.

Though there is a Real Time Clock device, it is not that great to use. No simple way of checking if the current date is within a certain timeframe.

Maybe something along the lines of GetDay() or GetMonth() to check if it is March 28th & grant everyone playing an item based on that.

7 Likes

There is a couple things ive been wondering about verse, mostly UI related things.

Is there any plans to introduce material_blocks (allow us to have material widgets), More font customization to text_blocks (size adjustments, fonts, Outlines etc) as well as some way to make UI that does not resize with the users hud scale (Interactable Canvases do not scale but i would love if we could toggle on / off for using the users hud scale.

To add on to the material block stuff, Will we ever be able to referance meshes, materials, textures within editables ex: @editable MyTexture : texture = DefaultTexture, This would make it so much easier for people working on ui related tasks and its not always the easiest to manually type the names of the textures within the verse script. One other quick thing i was wondering is if we could possibly get a function like ResetMaterial which would reset the material of a prop to the default one after SetMaterial is used

Thank You :smiley:

5 Likes

When does texture and material @editables become available?

4 Likes

Will we ever be able to override mutables in subclasses?

4 Likes

Scene graph questions, if possible please reply in-line. :slight_smile:

  • :white_check_mark: Is scene graph meant to replace the traditional actors in UEFN and UE long term?

  • :white_check_mark: Is scene graph meant to be a runtime only or will it have procedural editor time creation capabilities such as for PCG editor time generation?

    • Can we build an editor time prefab that replicates instanced meshes along a spline component (this is extremely common in UE)?
  • :white_check_mark: Can we still use actors along side the new entities?

  • :white_check_mark: What type of mesh components will be supported?

    • Static Mesh Component (already known)
    • Spline Mesh Component ? (CRITICAL)
    • (Hierarchical ) Instanced Mesh Component ? (CRITICAL)
  • :white_check_mark: Will there be an easy way to convert actors into entities? (CRITICAL WORKFLOW)

    • It is common that a PCG spawned actor has multiple groups of HISM components with hundreds of meh instances. Converting those manually into scene graph entities and components is not feasible. A conversion from existing actors (not blueprints) to scene graph entities with components is almost a requirement, because copy pasting thousands of transform points and instances manually would become a nightmare otherwise.
    • Migrating existing pre-created and actor only geometry is extremely imported.
  • :white_check_mark: What about animations on scene graph entities and components?

    • Could we possibly animate individual instances of a HISM component?
  • :white_check_mark: How would entities behave in terms of world partition streaming?

    • Current FN devices are mostly fixed and not spatially loaded, therefore they consume an enormous amount of runtime memory. Will that change with scene graph entities and components?
  • :white_check_mark: Will the verse part of screen graph entities and components be eventually unit testable?

  • :white_check_mark: (CRITICAL) Will the scene graph allow for fine-grained runtime control such as:

    • spawning a mesh with or without collision and only make that mesh visible to player A but not B
    • showing a certain texture and or material on a mesh to player A but not player B
    • updating these effects to apply those to all players
    • auto applying effects from current runtime world states to players that joined the experience in-progress
    • general control on what the server replicates to which client would be great, because FN experiences are always online and we cannot have a client side persistent world state or client side non-replicating simulation (if player A sees player B going through a destroyable wall, it is simulated on player A’s client, but from the perspective of player B the wall might already have been destroyed)
  • :white_check_mark: Will scene graph entities support data layers?

  • :white_check_mark: Will entities and individual sub-components have states such as “visible / hidden in-game”?

  • Are there plans to calculate the cost of individual entities and performance impact analysis directly in the editor?

    • runtime memory cost
    • cooked size
    • draw calls?
  • Will the scene graph receive first class debug support?

  • :white_check_mark: Are there plans for editor time scene graph simulation (without a concrete running client)?

  • Why is the existing static mesh component limited to 0 to 1 material slots instead of 0 to N?

    static_mesh_component<native><epic_internal> := class(mesh_component):
      @replicated("RepNotify")
      # The path to the material asset of a static mesh
      var Material<native><public>:?material = external {}
    

    Meshes can have multiple material slots. This is either WIP, an oversight or a downgrade. :thinking:

3 Likes

Heyo!

Are there any plans to integrate HTTP into Verse for use with requests to APIs outside of Fortnite? I think it would be really cool if user data could be synced with services outside of Fortnite and such. If so, what would the moderation process look like for this, and what measures would be put in place to ensure of no bad actors? Would there be some sort of identity token process involved, similar to OpenID tokens?

3 Likes

How close are we to Verse being experimental in UE?
When will Verse be closer to what Simon Peyton Jones has shown?

3 Likes

Are there any plans to enable the buying and selling of user-created Verse devices on the Fab Store, while keeping the internal device code private?

2 Likes

There are many competitive maps that would benefit from a skill-based matchmaking system to make them more fair and enjoyable for both beginner and advanced players.

Are there plans to implement SBMM or any type of custom matchmaking that could be handled by the creator throughout the year?

2 Likes
  • Are there any plans, and if so what are they, to make Verse available to Unreal Engine developers?
  • (just a curiosity on the reasons behind this decision) Why was Verse first introduced in UEFN instead of Unreal Engine, where most developers expected to see it first?

Thanks.

Are there any plans to allow us to create raycasts through Verse? Possibly with the ability to choose collision layers? ie: terrain, player builds, players, props, etc.

1 Like

1. When can we expect some kind of global data persistence system?

With this we could build:

  • Leaderboards
  • Ranking systems
  • Marketplaces
  • Economies
  • Guilds / clans

2. What does the MaxVerse version of persistence look like?

3. What procedural generation features will the Scene Graph support, if any?

3 Likes

Can you make it so that Verse scripts can also be run while in creative edit mode? Pretty pretty please :pray:t2:

My question is:

¿With the weapon/item custom device, we will have full power to create anything we want? Like for example, i want to create a futuristic weapon, can i make the models, sounds, animations, stadistics, etc?

Can we the console builder get a option to disable the consoles on screen keyboard when using keyboard and mouse?
It makes the fps drop a lot and can really slow down map development
Also there are a lot of collisions issues between object and players that have been occuring for almost a year now

Why are there no basic array sorting methods?

1 Like