Find User here you can look for a user

Taking a Stab at Long Mobile Load Times

2mo
#1
It's no secret that My Colony 2 takes a while to start up on some Android and iOS devices. What is the deal?

The primary reason for the long load times is that My Colony 2 has to load all of the game data objects into memory, and as of v0.20.0 there are now over 200 of them. What makes it slow and take a long time is that each game data object has it's own *.vpp (voxel paint) file embedded in it.

This was not a big deal at first, but once I introduced precompiled .vpp files in order to speed up load times, the size of the data objects really exploded, and so did the loading times. It's now getting to a point where it is becoming difficult to add new content to the game, because the load times are already beyond what I would consider to be acceptable.

With the forthcoming v0.21.0 update, I am making an attempt to address this issue.

I have added support for removing the .vpp data from pre-packaged MC2 data files, and then lazy loading the .vpp models once they are actually needed during gameplay. This in theory should dramatically speed up the time it takes for My Colony 2 to initially start (if I go through and do it to all of the objects in the game), but there are some drawbacks.

Firstly, if I do this change to the entire game, the size of the Android .apk download will probably increase by 8x or more. This is because MC2 data files are compressed, whereas Voxel Paint files are not. You could just say "why not compress all of the voxel paint files," but that would defeat the entire purpose of this change, because now you will have the extra loading time of decompressing all of these individual files.

Now maybe this isn't a big deal? Do people care how big an .apk is when they are getting a new app? I don't know the answer to that, but it's an issue.

Secondly, it will probably introduce a slight delay in the time it takes for a structure to appear once built, since the model will not be already loaded into memory as it is now. Testing will need to be done on real-world devices to see how much of an issue this is.

Lastly, mods will not be able to take advantage of the separated system, as a modder obviously can't inject .vpp models into the core MC2 package.

So anyway, in the v0.21.0 update, I will be testing this change on the three largest data objects in the game, the Galactic Stock Exchange, the Tree Farm and the Uranium Enrichment Facility, and we will evaluate how it goes from there!
Owner of Ape Apps, LLC
1mo
#2
Good idea and nice way to do it. I don't really think the size of the app would matter, or perhaps you could not include the .vpp models in the .apk, and instead require a download of all these files on first startup.

As for the slight delay after construction, just load the model when the construction starts, not when it ends, and if it's too quick to build then account for the model loading in the building time... Like have a lower limit on the time it takes to build a building, limit which is actually the average model loading time with margin. Or maybe extract a silhouette from the .vpp model to include in the building data, silhouette which would be way lighter.
Creator of Coloniae
Admin of the MC2 translation project
Welcome
Ape Apps, LLC is an independent software development company founded in 2010 by Brandon Stecklein. Over the years, Ape Apps has published over 400 apps and games across various platforms. You can get in touch with Brandon on Twitter or by leaving a post on his wall @bastecklein
App of the Day