It can help to remember a number of considerations while authoring projects in UEFN and to have a bit of a peek of the Epic development process and how we handle bugs and enhancements.
UEFN has a number of constraints that both Epic and UEFN authors have to keep in mind:
-
projects run inside the Fortnite application - on cloud servers - so UEFN projects can only be made up of commands and assets that can be changed dynamically (you can’t compile C++ code such as with a Unreal Engine project for example)
-
some features have client-side aspects which generally must run on all platforms: consoles, mobile, desktop
-
most updates to UEFN require updates to Fortnite (both the Fortnite servers and the Fortnite clients) and often updates to UEFN itself (the editor app for authoring) and sometimes plugins for VS Code such as the Verse extension and often assets used by such updates
-
Security and privacy are critical - fixes or new features in these areas have a lot of additional scrutiny and legal oversight
-
many of the systems and assets in Fortnite were expected to always be on and in memory when they were originally designed - the process of making them optional or dynamic is very tricky and there are often performance costs when doing so
-
UEFN projects are a stepping stone towards a big ecosystem of experiences in a metaverse (all projects living together with shared users, features and content) - which has a bunch of unique considerations that an Unreal project (as an example) might not need to worry about
-
UEFN and its ecosystem is still new - we’ve only scratched the surface of what we hope to provide and everything is still evolving
Many features already exist from Unreal, Fortnite or Blueprints though none of those systems had these constraints and considerations in mind when they were created. Sometimes we can adapt - like programmer archaeologists - though often they need to be reworked for the UEFN ecosystem. This is one of the key reasons that we can’t just use Blueprints within UEFN - it breaks too many of the considerations above.
Growing pains and bugs
There are a crazy number of systems that interact in basically infinite ways - which is cool when authoring, though a nightmare when trying to find if different features negatively interact with each other. We also have different timeframes for testing features - sometimes we test a feature and it is great at the time but conflicts etc. arise over time. This was especially the case with the first few updates of the UEFN Beta - some of the features were written years before and had become stale by the release.
The only way that Epic can get as much out the door as we do is by doing things in parallel. We have many teams with different systems, features and priorities. Many teams and even people on the same teams are spread out across multiple time zones. It is literally impossible for any one person - or team for that matter - to know all the bits of UEFN at once.
We do unit and regression testing, though some things are missed - especially knowing which combination of tests are needed. A, B, X, Y all work fine on their own - A and B are tested together and X and Y are tested together though we don’t realize that A needs to be tested with system Rutabaga and X needs to be tested with system Hyper Intelligent Shade of Blue. We are working hard at creating more tests and more test systems and more combinations of tests for every change. It is a ridiculously complicated problem - though we are chipping away at it and it will continually get better.
Getting bugs fixed
Bug fixes tend to be prioritized over new features - it might just not appear that way. It can be horrible to make features on top of bugs - better to get them fixed as soon as possible - not to mention that users want working and not buggy features.
Features and fixes are usually made long before any update / release is made available to the public. If we are made aware of a bug, fix it, test it, retest it (again and again), then submit it for a future update - the actual update where the public can see it can be a fair time in the future (months). I say tend to be prioritized because some bugs are hard to reproduce, some we just don’t know an easy fix and some are on top of tech that is in the process of being significantly reworked - so it makes sense to fix the bug after the rework sometimes.
Feedback - bug discovery and evolution
The UEFN community letting us know about bugs - and areas of friction, pain and needs too - are critical to making UEFN better. Sometimes a user will just use a feature that hadn’t been used for a while or do some combination that just perfectly sets off an explosion that Epic isn’t aware about. Sometimes we know very well that something is broken though hearing people raise it as an issue helps us know to prioritize fixing or making something better over some other thing that we are doing.
At Epic we do UEFN game jams and have started a few internal projects that are entirely within UEFN as a means to discover friction / pain points and a way to test features and discover bits that are missing. Fortnite and Unreal share ever more aspects and systems with UEFN.
We are often frustrated that some of the features and systems take longer than we would like to get out the door. And similarly as we use the tools and APIs ourselves we also feel the odd bits of friction and pain points. We want awesome tools too.
We are trying to get more and more Epic developers engaging here in the forums - like me. It can be hard since most of us are heads down and working away on this crazy stuff. Likewise we are working on yet more documentation and videos.
The content that the community is making - projects, guides, forum interaction, example content, videos, etc. - is awesome!
Rewards
UEFN authoring can be challenging with these initial growing pains though there are very real benefits even today - here are two key ones:
-
Creator Economy 2.0 - 40% of net revenue from Fortnite is spread out amongst projects based on player engagement - https://create.fortnite.com/news/fortnite-engagement-payout-update
-
publishing projects directly and simultaneously to Windows PC, Sony PlayStation 4&5, Microsoft Xbox One / Series X|S, Nintendo Switch, Android and Cloud streaming. Try to do that quickly or easily with Unreal or other game authoring systems.
Epic has a philosophy of empowering people to make their own amazing ideas and I think that philosophy is shared by the people working here. Just speaking for myself - I wanted to make games, saw how terrible the tools were and started to make better tools - and I just never stopped.
If we keep the criticisms constructive and specific we can use that info to make things for UEFN / Creative 2.0 better and better.
We’ve been blown away with the projects that we’ve seen so far!