SimEnhancer.com

[< Prev (SE Object Manager User Guide)] | [Up (SE Object Manager)] | [Next >]

Skip Navigation Links

Note: If you have Sims Unleashed installed then the long load times have been addressed so it does not take substantially longer to load *.iff files when they are not in *.far files anymore. In my opinion the difference is negligible and it is easier to work with *.iff files that are not in *.fars anyway. Most of the information below will still apply to some extent but not nearly as much as it does when Sims Vacation is installed AND Sims Unleashed is NOT installed.

This article is my attempt to pass along to you my various observations regarding the cause of long game load times and the effect of various methods to decrease load times. It is long and will probably bore you. If it does then skip down and just read the conclusion. It is meant to give you a better understanding of why it takes so much time to load the game.

To begin with I will go over observations of what others have reported in various forums. This will take into account the majority and disregard the minority.

  • When using the Vacation Expansion on Windows XP in almost all cases it takes longer to load the game than Windows 9X based systems.
  • It is unclear as to whether or not this is due to the file system used. (Most have not reported this)
  • The more objects files there are the slower it loads. This is true with all operating systems but is amplified on Windows XP with object iff files.
  • Minimizing the game during loading speeds up the load time.
  • Using Far Files speeds up game load times when using the Vacation Expansion. It is unclear as to whether this is true for Windows 9X based systems or not. It is also unclear as to whether it speeds up the load time for previous versions. (There is not enough data to determine this, my observations indicate that this will speed up the load time for both operating systems using any game version though)
  • Changing IFF Files to Read Only speeds up game load times when using the Vacation Expansion. It is unclear as to whether this is true for Windows 9X based systems or not. It is also unclear as to whether it speeds up the load time for previous versions. (There is not enough data to determine this.

Cause:

What causes the above listed items? I do not have all of the answers but I think I have figured out most of it.

  • For this I believe that the file system and extra file security in Windows XP effects the ability of the game to lock the files it needs during loading.
  • In my testing using Fat32 instead of NTFS for the drive where the game directory is has resulted in a decrease of load times. The decrease is still not satisfactory in my opinion.
  • This is pretty obvious. It stands to reason that the more files there are the longer it will take to load them. It is however unclear to me why all of the files are locked and opened when the game loads. Like I said I do not have all the answers though. It seems to me that there should be a way to open only the necessary files when needed.
  • Minimizing the game during load frees up the extra draw on the system resources required to play the music files. Presumably this is because the music has a higher priority to help prevent stuttering.
  • Once I realized what was happening this one became pretty obvious. It was hard to comprehend initially that larger files would actually load faster than small files. In reality the data itself probably loads at about the same speed. This is due to the fact that the game is only using one method for accessing both types of files. The game locks all files from access by any other program and then reads the data. What is taking such a long time is that the files need to be locked. For Windows XP users this takes longer because it needs to check the security on the files before it will allow them to be accessed. So this pretty much explains why iff files take longer to load than far files. Iff files are opened in read/write mode unless they have been set to read only though so that new data can be written back to them. (New thumbnails for instance) Based on this it seems logical that load times can be increased by using far files on both Windows XP and Windows 9X based systems. The decrease in load time may not justify doing so on Windows 9X systems though since it makes object management more difficult. SimEnhancer Object Manager can help with this.
  • Changing the IFF files to Read Only helps speed up game load times since the game will open them in Read Only mode rather than Read/Write mode. The reason the game opens them in Read/Write mode is to enable it to write changes back to the files. For instance it may need to generate thumbnails. For Object IFF files this is usually not necessary. Nevertheless apparently the game treats them the same as neighborhood and character iff files which do need to be opened in read/write mode. Note: Blindly changing all files to read only will actually slow down the load time for the neighborhood and character files since the game will need to change them back to read/write. There is no benefit to changing skin files to read only since the game does not need to save data back to them and does not open them in read/write mode. There also is no adverse effect by doing so either. It may however make managing them more difficult and until the CMX Validation Check and Duplicates Check programs are updated it will effect them since it was not anticipated that people would blindly change the attributes on these files. They are currently being updated to deal with them internally.

Effect:

What can you do to speed up game load times? Here I am including several suggestions. Some of these will work and some will not. A couple of them may work but are foolish. I will explain my reasons for claiming one way or the other as well. (Note: These are just my observations and they could be wrong, It certainly would not be the first time)

All Far files created and used during testing were created using the SE Object Manager. Also in all testing I minimized the game while it was loading. (I would rather play a game of solitaire than watch the screen for 5 or 6 minutes waiting for something to happen)

  • Sort all of your objects to directories. I do not believe this will help. (In my experience this has turned out to be just the opposite) It may be true once you hit a certain point and have more files than the operating system can handle but I do not think the game would handle them either. Why? Because the game still needs to lock and read the data of all of the object files. Moving them to directories will just increase the length of the file name and add more data that needs to be handled. (Longer file names) The files will still be scattered all over the drive in different sectors. (And will still be in the same place they were before) Are you really putting your files into directories? No. You are just changing the file name. You are now going to ask how I can say that. This is because directories are just part of a file name used to help organize files when they are viewed in a list. Here is a little test if you don't believe me. You will need two drives to do this. Take a large file not needed for anything important. Maybe around 100 MB. Now "Move" this file to another drive in your system. Don't copy it since that is faster when going between drives. (After it is copied to the new location it does not need to go back and delete the original) Get out the watch and time it. It will take at least a few seconds and you can sit there watching it. Now take the same file and "Move" it to another folder on the same drive. (Don't copy it because that takes longer when going to another folder on the same drive since it needs to create a new file) You probably will not get to your watch in time. Why? Because the file did not move. The only thing that happened was that the name changed to reflect the directory change. This is documented elsewhere if you wish to look it up. It just goes against our usual way of thinking because we are use to seeing directories with files in them.
  • Adjust your virtual memory. This is partially true and partially false. By optimizing your memory for the game it could result in a slight decrease in load times. This can effect other applications in a negative manner though if not done right and the decrease is probably not substantial enough to justify messing with these settings. If you are sitting there ready to argue about it then you probably know enough to safely make this adjustments. Otherwise I suggest you leave the Operating System alone.
  • Set the game priority higher than normal. (Windows NT based systems) This can make a difference but again can have negative effects elsewhere. (Setting it to a higher priority than hardware drivers can cause hardware crashes) Unless you know what you are doing I suggest leaving it alone.
  • Use 3 or 4 disk drives (not partitions) to store separately SYSTEM Files, GAME Files and SWAP Files. This can help. It really depends on your hardware setup though. Many times a second or third hard drive are purchased because the original has run out of room. Quite often the new drive will be capable of much higher performance than the original one. If so then it can actually slow down the performance if you use the slower drive for anything other than file storage. If you are use to tweaking your system then you are probably already doing this anyway. If not then I advise leaving it alone since you need to know several things before you can determine whether this will actually improve the performance or not.
  • Turn off virus protection. Huh? It might speed up load times but I haven't noticed. This is just plain stupid advice. Anyone that suggests you do so is acting irresponsibly. Maxis are you listening? I guess I have not noticed because I have not tried it. If any game I use ever requires that I do so then I will uninstall the game.
  • Turn off background applications. This will take some load off the system. So will removing any background image on your desktop and turning off web content on your desktop. There are limits to this as well. If you are on a broadband connection you should never turn off your firewall. Your using one right? (I've seen broadband companies tell people to turn off firewalls because they will not provide support if they are being used) Again I consider this irresponsible advice. It ranks right up there with telling someone to turn off their anti virus software. In effect it acts to protect against intrusive worms that can cause just as much damage as a virus. (Worms are commonly known or referred to as viruses even though they are not really the same thing.)
  • Clean out some of the objects you do not need. This has merit but you will probably be disappointed when you threw away that great espresso maker and did not see much improvement. Unless you get rid of a lot of files you will probably only find that it is easier to find things in the game. I clear out objects for other reasons. Wrong angle, poor image quality, bad image when zoomed out, etc. Basically I throw them away if I do not consider the quality acceptable.
  • Defragment your hard drive. This is definitely a good idea. If you recall, above I mentioned the files being scattered around the drive in different sectors. This is because the files are actually stored in several small sectors. The actual number of sectors required will depend on the size of the file. The size of the sectors varies depending on the file system and partition size. These parts of the file do not need to be next to each other since the file allocation tables keep track of them. Defragmenting puts all the little pieces next to each other and will result in less thrashing of the hard drive to get to all of the data. The drive arm goes to one spot and then reads the whole file instead of bouncing around to get to it. This is especially true since the game reads the data directly from the file system. (As opposed to other methods that utilize more ram) This is one area where performance will also be increased in the game.
  • Move your files to a Fat32 drive. In my experience this resulted in a fairly noticeable decrease in load times. I believe this is due to the fact that Fat32 has less security than NTFS to deal with. There are also some issues related to writing last accessed and modified times to the files because they are opened in Read/Write mode. The decrease is still not acceptable to me though by itself. (Combining this with far files resulted in the fastest load times I experienced during testing)
  • Change your files to Read Only. This will help decrease load time significantly if you are using Windows XP and the Vacation Expansion Pack. It is unknown what effect doing this has with Win 9X based systems or earlier expansions. SE Object Manager now includes support for working with and saving Read Only files. In testing the results were acceptable but still 10% to 20% slower than Far files. Many of you will surely prefer to take the difference and use this instead of Far files to make it easier to manage your IFF files.
  • Place your objects into far files. I saved this for last because it resulted in the fastest load times. Some of the above items may help also but they did not result in as much of a decrease in load times as this did. An in depth discussion on this is below which pretty much contains all of the results of my testing regarding FAR files.

Conclusion:

If you noticed above it takes longer to open several small files directly from the file system than it does large ones. Having a lot of small far files will still result in slower load times.

Fixing this is simply a matter of eliminating a few steps. If there are several files in a big far file then the game only needs to lock one instead of several. Since it reads directly from the file system the size of the file only becomes an issue when the file is really huge. (More on this below) In testing I created two far files using the SE Object Manager. (I do not suggest trying this) One that was 2.4 Gigabytes and one that was 1.75 Gigabytes. At 2.4 Gigabytes the game opened but none of the objects were available. At 1.75 Gigabytes the game loaded and the objects were available. Note: I literally created three copies of all of my objects to get to this size of a file. They also used three different paths in the far file to insure the game would read all of the data even if it only used one of the three copies.

Using paths in the far slowed down the game load time in the above test which took about 10 Minutes. This brings me to another point. Adding path information to the files in the far also slows down the load time. It is unclear as to why but it does. I normally have about 1800 objects. I created two far files with these objects using the SE Object Manager. Both were pretty close to 600 MB. The only difference is that I included path information in one and not the other. It took about 5 minutes to load the one with path information. It took right at about a minute to load the one without path information. I went back and tried it again. Same results.

One other thing I noticed was when I tried to find the optimum size for a far file. I originally assumed this would be limited by the amount of ram. I started with several far files with each one between 30 and 130 MB. This was a substantial help by itself. My game was loading in 2 to 3 minutes. I wanted to see if I could find a top limit though so I went all out putting every user created object I had into one far. I was floored when it took less than half the time to load and did not seem to effect game performance at all. I still do not know the optimum size but the game appears to be able to load far files that are up to about 2 Gigs. It seems to be somewhere between 1.75 gig and 2.4 gig and 2 Gig could be a limitation depending on how the file access is coded. Theoretically Fat drives should be able to handle a 4 Gig file.

At this point I got to wondering. Will using one far file have that much effect on a NTFS volume? Almost all previous tests were using a Fat32 volume. The results were not quite as good. It instead took about 1 minute and 45 seconds to load. Still well within an acceptable range for load times. This is actually faster than the game ever loaded for me with Hot Date or House Party. (I do not recall exactly how long the original game or Living Large took but I think it was around 2 or 3 minutes) I did move my game back to the Fat32 drive though since the decrease in load times is substantial.

I now have removed all object iff files from my game. I keep them in a separate location and sort everything there. For iff files that are missing thumbnails I put them into the game and run it to create new thumbnails but then move them back to my sort directory. Each time I make changes I just create a new Far file using the SE Object Manager that contains all of my user created objects. Then I move it to the Gamedata\UserObjects directory and replace the one that is there. It usually takes less than 90 seconds for me to create the far file and the time savings when loading the game more than justifies doing it this way.


[< Prev (SE Object Manager User Guide)] | [Up (SE Object Manager)] | [Next >]