Game Development Reference
In-Depth Information
assets have been downloaded, the asset manager should be constantly downloading.
While passive requests are not controlled by game code, giving designers the ability
to control the order in which passive requests are made can lead to a significant
improvement in player experience.
Some considerations to keep in mind when building your asset manager is to
determine whether you can pause active downloads. There are times where requests
with lower priority (e.g., passive or queued) need to be overridden by higher-priority
requests (e.g., active or blocking requests). Bandwidth is limited, so it may not
make sense for a lower-priority request to continue. In those cases, you would
either want to pause an active download or cancel it altogether and resume it at a
later time.
2.2 Integrating Streaming from Day One
Download time is one of the most critical aspects to player experience in a streamed
game, and therefore asset streaming is one of the first areas that should be ap-
proached in the development of a game. The developers need to have an envi-
ronment in which they can experience download times and visualize what is going
on in the asset manager. If the engine allows for play-testing inside the editor,
then the download simulation can be done inside the editor. Otherwise, the final
game should have an option to simulate a download when pulling assets from the
hard drive. During the simulation process, a visual display of what the asset man-
ager is currently doing should be displayed on screen so that trouble areas with
asset downloads can be isolated and fixed. A simple display of progress bars with
an asset's name, size, and request type is often su cient to show developers all
the information necessary to assess the current state of a level's asset streaming.
Additionally, you might also want to write a log with this information.
In order for developers to be able to get up and running quickly, the bundle pro-
cess needs to be set up so that the download simulation is pulling from real-world
data: actual asset bundles, as opposed to the original source assets. The simplest
way to get the bundling process up and running is to use the directory structure
of the project source to generate bundles. Bundle creation is then the process of
packaging all files under each source directory excluding its subdirectories. This
automatically enforces that each asset exists in only one bundle. It also allows you
to organize your asset bundles in a logical structure: placing the base assets for
a character inside a directory named bundles/characters and placing that char-
acter's animations inside the directory bundles/characters/animations .This
structure groups the files logically but still generates two asset bundles that can
be downloaded separately. While managing a bundle creation with the directory
structure is easy for artists and game designers to use, it can have usability issues
when working with very large numbers of assets. If you are expecting to have a
large number of assets that would make directory traversal slow, then you might
Search WWH ::




Custom Search