|
![](/i/fill.gif) |
Warp <war### [at] tag povray org> wrote:
> clipka <nomail@nomail> wrote:
> > As the player normally can't move too fast, there's probably plenty of time to
> > "swap in" scenery data by and by.
>
> I wouldn't say there's "plenty of time" because the CPU, the GPU the
> I/O buses and the graphics bus have to do quite a lot of other things
> at the same time, at 60 frames per second preferably.
Let's look at it this way:
Traditionally, games have been organized in individual "maps"; Let's say such a
map would usually load within 30 seconds, and you'd spend at least 5 minutes in
there.
If the game layout was roughly one-dimensional (say, a FPS in the classic
corridor-type setting), a simple approach at hiding the loading times would be
to pre-load the data for the next map. That would gives you 300 seconds to
perform a 30-second loading operation. For two-dimensional games (vast
landscape to travel freely), the task of choosing which "maps" to load would be
less straightforward, but I guess it wouldn't significantly change the amount of
data to be provided, if the algorithm is designed smart enough.
So this takes 10% of your resources, right?
Wrong.
When it comes to moving data, by far the worst bottleneck in your computer
system is the hard disk. In classic games, while loading a new map the
processor is just as bored as the player, waiting for the disk hardware to
retrieve sector by sector. (Don't expect the stuff to be readily available in
the hard disk's tiny internal cache; so this will *not* push SATA to its
limits.)
So it takes 10% of your total *hard disk* bandwidth. Say, when was the last time
you played a computer game and your hard disk was constantly busy?
I guess that leaves us with, say, 1% of CPU and GPU bandwidth to be set aside
for preloading maps - at most. And it's a task that can be easily priorized:
There's no strict deadline to get the job done; for instance, in the heat of
the action it can safely be deferred until after the fight (all the more since
you usually don't move very far during a hot battle).
Post a reply to this message
|
![](/i/fill.gif) |