Preloading missions in the background?
by Richard Preziosi · in Torque Game Engine · 11/29/2009 (1:11 pm) · 6 replies
Is it possible, or has anyone accomplished this. Basically I have about 50 rooms in my game, and it's set up like the newer Castlevanias. Where it loads each room (mission) as you continue on. It's currently taking about 10 seconds at most to load a mission. However, that's going to be annoying after a while for players, I hated the load times in Dragon Age, as do most people I talk to.
Basically what I'm wondering, is if it's possible to have the engine preload the next level while you are currently playing the current level.
It's a single player game, so nothing really changes, save ammo count, etc. Where the real time consumption seems to come in is loading the datablocks, I guess the easier method would be to make it not clear and reload the datablocks, but I could be wrong, anyone have any insight on this?
Basically what I'm wondering, is if it's possible to have the engine preload the next level while you are currently playing the current level.
It's a single player game, so nothing really changes, save ammo count, etc. Where the real time consumption seems to come in is loading the datablocks, I guess the easier method would be to make it not clear and reload the datablocks, but I could be wrong, anyone have any insight on this?
#2
11/29/2009 (2:13 pm)
the way i have mine set up is to preload the datablocks at the very start of the game, then after its done show the splash screen and start up as normal. search for datablock preload in the resources.
#3
Planning on porting to T3D so building my rooms out of dts models at the moment. The reasoning for seperate missions, is to not worry about LoD and be as graphically intense as I can be.
@Scooby
Thanks, gonna look up that resource.
11/29/2009 (4:33 pm)
@StevePlanning on porting to T3D so building my rooms out of dts models at the moment. The reasoning for seperate missions, is to not worry about LoD and be as graphically intense as I can be.
@Scooby
Thanks, gonna look up that resource.
#4
Gonna mess around over the next few days and find a way to not delete commonly used objects, or not reload them, see if I can't get my load times down to about 2 seconds.
Here's the resource I used if anyone else is interested.
www.garagegames.com/community/resources/view/15427
Through following some links in that resource I found out the the engine changes needed for it to work are already incorporated into T3D, so that's useful for anyone wanting to use T3D for a single player game.
Also for singleplayer games, to help out with the speed of client/server connection, since the game is always run in a client/server fashion. In your client/prefs.cs there are three lines:
$pref::Net::PacketRateToClient = "10";
$pref::Net::PacketRateToServer = "32";
$pref::Net::PacketSize = "200";
Those are not the current maximums, and when you're playing locally, you might as well be using the max. The first two lines can be a max of 32, and the PacketSize can be a max of 450. You might not notice much of a difference if your load times aren't astronomical in the first place. I gained about half a second by changing them, but every little bit counts. Also you could go into the C++ and raise those caps, but that is a bit more complicated.
11/29/2009 (5:41 pm)
Awesome, got my load times down to about 4 seconds.Gonna mess around over the next few days and find a way to not delete commonly used objects, or not reload them, see if I can't get my load times down to about 2 seconds.
Here's the resource I used if anyone else is interested.
www.garagegames.com/community/resources/view/15427
Through following some links in that resource I found out the the engine changes needed for it to work are already incorporated into T3D, so that's useful for anyone wanting to use T3D for a single player game.
Also for singleplayer games, to help out with the speed of client/server connection, since the game is always run in a client/server fashion. In your client/prefs.cs there are three lines:
$pref::Net::PacketRateToClient = "10";
$pref::Net::PacketRateToServer = "32";
$pref::Net::PacketSize = "200";
Those are not the current maximums, and when you're playing locally, you might as well be using the max. The first two lines can be a max of 32, and the PacketSize can be a max of 450. You might not notice much of a difference if your load times aren't astronomical in the first place. I gained about half a second by changing them, but every little bit counts. Also you could go into the C++ and raise those caps, but that is a bit more complicated.
#5
11/29/2009 (6:15 pm)
Unfortunately the resource I posted above screws up particle effects, as they are not loaded properly or are skipped entirely. For me some effects are square, like it's not loading the alpha, or do not appear at all.
#6
11/29/2009 (6:26 pm)
@RichQuote:T3D has zones, which do the same as a sealed DIF/BSP hull - can't see in or out of the area, cull all objects depending on which side the camera is on. Thus graphical performance fine.
porting to T3D so building my rooms out of dts
Associate Steve Acaster
[YorkshireRifles.com]