[< Prev (SE Object Manager User Guide)] | [Up (SE Object Manager)] | [Next >]
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 >]