โ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 (i.e. the max CCU). These systems include:
Networking - our Morpheus Networking stack allows thousands of players to be networked together in real time
Rendering - Morpheus Rendering allows for thousands of individually animated, fully customised 3D avatars to be rendered on-screen at the same time
Audio - Morpheus Crowd Audio provides a realistic spatial audio experience for all players
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)
Key differences
Developers are restricted to only changing Unreal assets: blueprints, materials, meshes and other binary data
This means you can't add or modify C++ code. However, visual scripting in blueprints provides essentially the same feature set.
This also means that we don't support bespoke precompiled plugins, as we'd need to distribute them to all users
Not all Unreal actors can be networked, and networking works significantly differently (see Introduction to Morpheus Networking)
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