โ“Differences from Unreal

MSquared uses a customized version of the Unreal Engine that involves changes to standard Unreal workflows.

Why is development different from standard "vanilla" Unreal?

  • We replace the Unreal implementation of a few systems to drastically increase the number of people you can have in your experiences (max CCU) including:

    • Networking - this is now done using our proprietary Networking stack

    • Rendering - we have a system to render background characters at massive scale

    • Audio - we can allow free communication of all people who attend

  • Our game client dynamically loads world content when starting up, which carries benefits for creator velocity

  • Our base platform is consistent, so we can allow objects such as avatars and more to work across worlds (interoperability)

Core differences

  • Replication uses our custom implementation (see Replicated Properties)

  • Developers are restricted to only changing blueprints, materials, meshes (and other binary data)

    • This means you can't add C++ code but visual scripting is possible in blueprints for nearly everything you will need

    • This means we don't support bespoke precompiled plugins as we would need to distribute these to everyone

  • Not all local changes are reflected in launched worlds

    • Some configuration files are not supported. Neither is changing engine content directly. This is because your uploaded plugin content is dynamically loaded into a prebuilt client. For this reason, we hide a lot of the contents of Project Settings and make engine content read-only to prevent users tripping themselves up on this expectation.

  • Size of content will affect load times

    • The content in your plugin is loaded into the client at runtime. This means the larger the size of the content in your plugin, the longer client will initially have to wait before it becomes playable.

  • We have made some changes to the player character, and how it is configured. For more details, see MSquared Character Configuration.

Last updated