Scene Limits and Optimisation
When adding custom built 3D models and environments to your scene, you must adhere to the geometry and scene limitations.
It is likely that this information will be of greater help to more technical developers and modellers, as they can follow the style guide and scene limitations to ensure that your scene is fully optimised for VerseX.
Polycount Limit: Each 10m² plot in VerseX has a maximum polycount limit of 10,000 triangles. This restriction ensures efficient rendering and smooth gameplay.
Bounding Boxes: Models must fit within the plot's limits. If the mesh exceeds the bounding boxes limits, the entire model will be marked as outside the boundaries. To fix this, clean up your 3D models by resetting positions, scale, and rotations to ensure the model aligns in the bounding box.
Geometry Best Practices: Be mindful of the number of faces in your models, as more faces increase rendering demands. Eliminate hidden faces that contribute to the triangle count, use smooth surfaces for rounded shapes, and ensure normals face outward.
Scene Limitations and References
Triangles: 10,000 maximum number of triangles per 10㎡. For example, a 130㎡ plot would have a maximum of 130,000 triangles per plot.
Materials: Maximum number of 20 materials
Textures: Maximum number of 10 textures
Max texture and material size: 1024x1024px is preferred, however, 2048x2048px is the maximum resolution
Height Restriction: 15 metres tall
File Size: 5 MB per 10㎡, 50 MB max file size per parcel (130㎡) Please see supported file formats below.
File Count: 100 files per parcel
Parcel Size: A parcel size in VerseX is 130㎡
Supported file formats:
Models: FBX, OBJ, gITF, and GLB
Textures: JPG, PNG, BMP
Audio: AIF, FLAC, OGG, and WAV
Epic-specific formats: .island, .upack
Additional Formats: CSV, JSON
UE5 Blueprint size: While there is no fixed rule for the number of nodes you should have in your Unreal Blueprint function, it is recommended to set a limit that ensures readability, maintainability, and performance, you could consider limiting functions to a few dozen nodes or grouping related nodes into functions, ensuring they serve a clear purpose.
Other Considerations
Scene Boundaries: Objects outside parcel boundaries are highlighted in red during previews. Large objects' tips outside the boundary are also considered out of bounds. Ensure there are no underground tunnels. A scene cannot have tunnels that go below the default ground height.
Shader Limitations: Use supported shaders and materials for 3D models. When creating materials and shaders for your 3D models, you should stick to the shader options and material setups that are supported within the UE5 ecosystem. This ensures optimal performance and compatibility. UE5 compiles shaders asynchronously, and using supported shaders helps avoid compilation issues and potential performance bottlenecks. Different shaders and materials are optimized for specific purposes, such as real-time rendering or complex visual effects. Sticking to supported options ensures that your models and scenes will function as intended and efficiently within the UE5 environment. Always refer to UE5 documentation and resources for guidelines on using shaders and materials effectively for your specific project needs.
Restricted Execution Complexity: Restrict the use of computationally intensive functions that might strain server resources. This maintains smooth performance for all players. By restricting the use of such functions, the game's performance and responsiveness can be maintained at an optimal level, contributing to a better experience for all players in online or multiplayer environments. Following this principle involves efficient optimisation of code, avoiding excessive loops, complex calculations, or other processes that could negatively impact the server's performance.
Blueprint Node Count Limit: Impose a reasonable limit on the number of nodes in a single Blueprint function. This encourages efficient and organized functions, preventing overwhelming complexity.
Network Interaction Limit: Limit functions that heavily interact with the network to avoid potential latency issues.
Component Interaction: Set a cap on the number of interactive components that can be triggered simultaneously to prevent overloading interactions.
Event Handling Constraint: Place a constraint on frequently triggered event-driven functions to balance responsiveness and performance.
Triangle Count and Rendering Limit: Comply with the limit on the total triangle count rendered in the scene. This ensures optimal rendering for all players.
Resource Management Guidelines: Object pooling and efficient memory management techniques to prevent resource leaks and improve performance. Only do this if you have performance problems and even then, only do it if profiling then shows that you are spending a lot of time in allocation/deallocation.
Code Duplication Restriction: Discourage excessive code duplication by encouraging reuse and modularity.
Periodic Review: Regularly review and adjust limitations based on community feedback, platform updates, and performance testing.
Last updated