Skip to content

Optimization for Smartphones

Ultimately, Vket Cloud can build a metaverse accessible for any device (PC, smartphone, tablets, etc.) as long as it meets the Operating Environment requirements.

However, to reduce stress during playing and increase the overall performance, the creator must make effort for optimization as much as possible.
For devices with weaker machine power (e.g. smartphones), optimization is vital to realize the same play experience as PC.

Few points on world optimization for smartphones will be discussed below.

Criteria for Optimization

As an example for a criteria of smartphone optimization, world resources should be fulfilling the specs below on an average.

  • Total Polygon Count: Below 600k triangles
  • Texture capacity: Below 60MB
  • Average draw call: Below 300
  • Maximum draw call: Below 600

The total polygon count will be displayed on build at the Console as NumofPolygon. *If heo files are loaded using HEOObject, the total number will be displayed on field export.

Texture capacity will can be counted by seeing the tex folder's size located under data/Field of the release folder.

As the features below causes heavier processing load, performance testing is recommended on using.

  • Bloom effects
  • Placing multiple particles
  • Wide-range mesh colliders

Specifications on Avatars

On Vket Cloud, the player can choose their avatar from their My Avatar or the world's Preset Avatar.
While this makes diversity in avatar selection, drawing avatars may cost heavier processing on worlds with many players gathering.

As a solution for avatar drawing, the world can set a max polygon limit or disable My Avatars via HEOWorldSetting / MyAvatar.
For instance, on default the max polygon limit is set to 50,000, this can be revised to 20,000 on larger worlds with many players intended to gather.

HEOWorldSetting_MyAvatar_1

The avatars exceeding the polygon limit will be replaced automatically to the world's Dummy Avatar.
The dummy avatar can be set by exporting an heo file and allocating it on Avatar Settings.

Default dummy avatar on the SDK:

SmartphoneOptimization_1

Also, users without an My Avatar / not logged in, or on My Avatar disabled worlds, the 1st avatar on the Preset Avatar list will be allocated automatically on world enter.

SmartphoneOptimization_2

Reducing load time

Generally, the player likes shorter load time, which contributes to waiting shorter on entering the world.
On the SDK, Dynamic Loading is available to split world resources and reducing load time before entrance.

For weaker devices such as smartphones, the world could be split for optimization by Lobby / Hallway / Main Room / etc. to organize the total resources loaded at once.
On browser consoles, the creator can inspect resources loaded during entrance to find out which resource is causing longer load time.

For implementation details, see Dynamic Loading.

Reformatting / Optimizing Textures

For better Vket Cloud world performance on smartphones, reducing / compressing textures are vital to solve load time and drawing bottlenecks.

On the SDK, Export Compressed Texture is provided as a formatting tool.
By using this tool, the non-png / height or width not being a power of 2 texture images will be reformatted according to Vket Cloud Specifications, compressing as much textures as possible is recommended.
During the reformat, the texture resolution can be reduced as well, which reduces load when loading the resources.

ExportCompressedTexture_1

For instructions on texture compression, see Texture Compression or Export Compressed Texture.

Optimizing in-world performance and world flow

By enabling the Debug Mode, the creator can view information such as FPS, draw call, etc.

DebugMode_4

As optimization features in Unity such as Static Baching is not supported on Vket Cloud, draw call will increase when the same mesh / same material object is duplicated.

Therefore, the world creator must explicitly implement optimizations. The process below are considered effective:

  • Deleting objects outside the accessible range
  • Merge mesh and texture using modeling tools or MeshBaker
  • Reduce polygons and merging materials on modeling tools
  • Use billboards for backgrounds

ALso, Dynamic Loading and Occlusion Culling are also effective to reduce loads.

OcclusionCulling_Result