I’m working on a game that will take place in a very detailed mansion. I’m worried about load times. This is my first game, but all of the game logic I will be using for a while has already been set up, so that’s not the issue. I’m pretty experienced at blender (~1.5 years now) and I’ve finished the first room. Took me a week or so, which is pretty good on our schedule.
I can’t really discuss the details of the game right now, as everything is being kept very secret. I will say that it takes place in a mansion with dozens of explorable rooms. Now this is my first game project in blender, so I’m sure there’s things I haven’t thought of yet. Now, right now all it has is 1 room and a splash screen. All of that takes 13 seconds to load and 128 MB of RAM. To me, that seemed a bit much.
This mansion will have at least a dozen rooms (plus halls) on each floor and at least 3 floors. Right now, we’re assuming on having each floor load separately. If things work linearly (I don’t know for sure) That would mean almost 2 GB of RAM, and taking nearly 3 minutes to load. I suppose I could add a whole “This will take a few minutes due to high detail” or whatever, or possibly load each wing of each floor separately (definitely a last resort)
Is there any way to speed up loading? Any way to preload other scenes in the background? Any way to have a progress bar while loading a scene? Or any other tips you could give me also. Thanks
AMD Phenom Quad Core 2.4 GHz
4 GB DDR2 RAM
GeForce 7950 GT 512 MB Video Card
Yes, we’re also testing it on a AMD Athlon X2 Dual Core (don’t know GHz) with a Geforce MX 5500 and 2 GB RAM.
It takes 20 seconds to load on that machine, and I haven’t heard him complain about gameplay speed either.
Is there any specific way to find system requirements for a game? Or is it just try it with different PCs?
I’d rather not have this game needing crysis level requirements, but if it’s an issue of quality vs speed, I’ll stick with quality. Perhaps I can make 2 directories, 1 with hi-res textures and 1 with lo-res and the create a front-end gui that asks the user which version to run.
My guess is that you load times are directly related to polygon count and texture size. Scenes with tens of thousands of polygons just take a while to load. How many polygons are in your scene, and what are the sizes of your textures?
Also, keep in mind when you are talking about quality vs. speed that using a ton of polygons is not quality in the game industry. It is generally considered sloppy. Quality is figuring out how to make a model look the most like what it is supposed to be with the least number of polygons. This often means using shaders and textures to add finer details and baking light and shadows wherever possible (dynamic lighting will make your game slow in a hurry).
Absolutely, I made sure everything was low-poly, at the smallest it could possibly be. There were a couple objects that I had no choice but to make them higher poly, otherwise they wouldn’t look right.
In this one room, the total poly count is 6296, and when I remove those couple high-poly objects it goes down to 1064. Most textures are 512x512. while some are 1024x1024 or 256x256. Textures folder is 72 files, 21.4 MB. All lighting is baked into the textures, no real time lighting at all.
It sounds like you’re doing rather well with your polygons. From what you’ve said, I would attribute the load times to the 21 MB of textures. You could test this out by untexturing your level and loading it that way.
Currently there is no method of making a progress bar that I am aware of. Keep in mind, though, that commercial games often have long load times for levels, and some do not show progress bars (I’m thinking of Half Life 2 when I say this).
It’s not necessarily the progress bar that I’m worried about, it’s having just a still picture might make some people think it’s frozen if it takes a while.
One trick around this is to have a scene overlay with a simple texture telling the user the game is loading. When while the scene is over-layed, switch to the next level. Hopefully that was clear… here is an example of a simple (crappy) texture that you could overlay on the screen before you load your scene: Picture.
Yeah I have something like that. I’m just worried that if load times are high, people might think the game is frozen when it’s not. I guess I can put a message like “This could take a few minutes depending on your computer” or something like that.