When i load my Game it takes just over a minute. The game is about 70 mb in size. I know that has something to do with it and i will make it smaller but still It will take too long. Is this something that can be improved other than making game smaller in size?
Are you using Level Of Detail? Are there any shaders or high res textures? Are you in GLSL? Are there lots of high poly models? Is it one big scene? Are there lots of separate objects?
Everything I mentioned would slow the game down vs other options. My advice is to try and use Level Of Detail or split up your game into many scenes, so your game only loads one scene at a time. Textures can also take up a massive amount of memory. 70mb is quite large, especially for one scene. I hope using LOD or scene splitting can help you.
On my crappy little machine, loading even the simplest games takes forever if they are in GLSL mode. Of course, this happens even when opening a GLSL scene in Blender.
Also, define “load.” Is this loading the game scene in blender, or playing the game itself? Does it lag significantly during gameplay, or is it just a massive hard-drive load before gameplay?
I am using GLSL and hi res textures. Only one scene (Aquarium) The fish are low polys. When the scene is loaded everything works fine.
When i say loading i mean when starting the game from my desktop. I will make the game smaller which will help but even still it will be about a minute or so to load and that is not very good. i have played lots of games that are huge and it does not take a minute to load on my machine. I am guessing the game engine is slow.
I’m not too knowledgeable on this sort of stuff, I think the likes of SolarLune or more advanced users would know about rasterizer - but what’s the percentages on the rasteriser, physics etc. Could you upload a screenshot of what is taking the most costly amount. This can help narrow down the cause. If there are a lot of Models you should consider using LOD, so it’s only loading what is near.
Make a proper loading screen, then loading doesn’t seem to take as long.
If you use overlay scenes and such, then you can use messages to update the screen when something happens (in the break between loading new elements) or loading different blends in libLoad also make good update points.
70mb is a little excessive. If it’s only for one level then consider breaking it up, because as you get more and more levels, this will increase if it is all in one blend file.
My game, DEEP Space, has a 30mb “core” which takes ~15 seconds to load. It includes the player, the menus, and a set of enemies and textures. Then it loads a level from a separate blend file, which, depending on the size and complexity of the level (and any user-defined textures and enemies) can take anywhere between >1 second to ~30 seconds. During this time the user is told when the game loads the different elements.
There is little that can be done to reduce loading times, but you can make it a nicer experience.
@rossblendart
In this case most time is taken reading data from the hard-drive into the disc, and deciding what to do with the data. This shows up as “logic” in the profiler.
LOD will in fact increase loading time, as it has to load both high and low res versions of the models, it only helps with frame-rate.
Thanks for the insight sdfgeoff, I’m a little bit out of my comfort zone when commenting on things like this.
I’m not too knowledgeable on this sort of stuff
So thank you.
Someone on this forum gave me the advice you gave too a while ago, but it doesn’t actually change the time. When you click Start Game it takes you to a Loading scene that has an always - set scene (Game). Even though there is an always sensor, the Game scene won’t start until it’s loaded so you can view the loading screen. I used this in my first game, Grid.
Like you said;
There is little that can be done to reduce loading times, but you can make it a nicer experience
Is there more detailed info on how to break it up?. That might be worth a try. My scene is only about 3000 polys and of I can change the scene adding coral but still very low polys, even with 20 fish (fish are about 110 polys each), Still very little it should not take that long.
If I recall, a large portion of time loading is spent by Blender resizing textures if they’re not sized to power-of-2 ratios. Make sure that your textures aren’t sized oddly, like 1024x768 or anything. Make sure they’re power-of-2 sized ratios (256x256, 512x512, 1024x1024, etc). Oddly sized power-of-2 ratios would also probably work (256x1024, 2048x1024, etc.).
Building physics meshes can also take a large amount of time. The default physics shape is Triangle Mesh bounds, so go through your objects (especially the higher poly ones) and see if you can use a simple physics shape (like capsule, sphere or box) or try and create a simpler proxy object for physics.
Hmm, with only 3000 polys and only the coral and fish you probably don’t need to break it up at all. Breaking up is just useful if you have lots and lots of simple-ish objects. If you want more detail anyway I’m happy to give it to you, but investigate solarlune and Moguri’s options first, as they seem better suited to your application.
Yeah, I have very odd sizes, I took anything i could find. I have some like 600x544 and other odd sizes like that. That might be worth a try though it will be a pain to make all of my textures 2 sized ratios. I think the main problem is my memory I have on my atsk bar a little icon that shows memory as it is used up When I start my Sim you can see it going down until it hits 0 then fluctuates from 0 to 3 then 4 or slightly more.Once sim is loaded after about a few minutes the memory moves almost to where it was before i load the sim, so loading seems to take up lots of memory at least temporarily.
When i tried my sim on another computer (laptop Not sure of the memory size, it was a library computer) it loads much faster though i did not time it
Scenes with very little load fast, you could use a scene like this to try and preload a scene as an underlay scene; then remove it. Scenes that have been loaded once tend to load faster the next time they are loaded. I am considering just having a scene for my maps and another for the towns; then preloading the menu. I wish there was a way to get objects from inactive scenes, then you could load the scene and then populate it with the objects you need.
That is the best thing I have read today; to Google!
edit:
Might not be what I am looking for; because I will have the groups linked, I just wanted to grabs objects from another scene to make loading faster. This loads from another file, I will test it though, and see if it loads the children of objects as well. I might be able to load the objects and skins faster with this.