Game is taking up to much memory

Hallo.

I am currently working on virtual exhibition platform, and its a rather heavy game due to the load artist work, and the game is bit lack sometimes.
I am not to good with optimization of my games, would like to know how to avoid this? or this some good ways to optimise the game?

Game;
https://playcanvas.com/project/709054/overview/gallery

Hi @Anders_Juul_Jorgense,

As a first step, check the following manual section it contains a lot of info on how to optimise your game:

https://developer.playcanvas.com/en/user-manual/

For your specific issue, the most effective and actually easiest step is to enable texture compression all of your images in editor. That is available in the Inspector when you select a texture asset:

image

That will reduce a lot the amount of memory your assets require.

Thanks for the quick reply. I have tried to compress some of the textures, but everytime the size of the build gets bigger. Is that good for the game?

Yes, compressed textures require space in your build, because they are being stored together with the source files. And their downloadable size can be bigger as well.

But what’s important is as soon as they are uploaded to the GPU, they occupy far less memory.

Your 3D models are too large for a smooth real time experience. For example, one of the random models I picked has about 150 000 vertices. And you have many models there. There is no easy way around it, you must make a new low polygon re-topology of each model. Your artist can do it or you can try to use automatic way, like a Decimate modifier in Blender.

As @LeXXik mentioned your 3d models have too many vertices that greatly effects the fps of the game.You can try making low poly models which will improve fps as well as memory.

Your textures also are of high quality some in 4k resolution that will take more memory and more time to load and render. You can optimize them by testing which particular texture quality will not be effected on decreasing it’s resolution and then decrease their resolution. For example if one of your texture is of size 4028x4028 and the model on which it’s attached is a bit small enough that if you put 1028x1028 size of texture it would look same than you can downsize its size to 1028x1028. So basically you have to check each texture and try to reduce as much as possible with keeping the quality check too.

I see all the models and textures are preloaded which means they will loaded before the game starts and will take more loading time. Instead of this, you can implement lazy loading technique which is loading required assets at time and when they are of no use just unload them. In this way memory will be free besides the running game and will improve speed and fps.

In relation to bringing down the poly count with decimate, you can actually do that in PlayCanvas with a Chrome extension. Doesn’t give you the fine-tuning that Blender will, but it’s easy to use and quick for a large number of models. With that extension, when you click on a model, you’ll see a new “decimate” option in the inspector on the right.

Chrome extension: https://chrome.google.com/webstore/detail/playcanvas-editor-plus/ebedfcjmndjbaboecddbbjjjoleddfap

Thanks @Chris @saif @Leonidas @LeXXik for the good advise. It helped me a lot.

2 Likes