UDN
Search public documentation:

PerfDebug_ContentComparisonCommandlet
日本語訳
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Commandlets > Content Comparison Commandlet
UE3 Home > Performance, Profiling, and Optimization > Content Profiling and Optimization > Content Comparison Commandlet

Content Comparison Commandlet

Purpose One Liner

Looks at all content and allows you to see the relative costs between assets.

Detailed Motivation

When you have lots of content you can often have vastly different memory costs for objects that are used in the game. Often these massive differences are a side effect of having multiple people create assets. Or from having something change from a "Boss Encounter" to just being a mini-boss encounter. Over time things change. If you don't have a way to track and compare assets to each other then you will end up mis-using resources.

Basically, we want a have Weapons of the same type cost about the same. Characters of the same type cost about the same. Doing so allows us to more easily plan out levels that will work without special casing everything.

Operation


To run this commandlet, from a command prompt window, navigate to the UnrealEngine3\Binaries directory.

Syntax

The syntax is as follows:

[GameName].exe ContentComparisonCommandlet

How to use / turn on

NOTE: You probably want to run this nightly

This will break down the asset's total memory into a number of "key" categories for better comparison.

Those are currently located in the BaseEngine.ini and are the following:

[ContentComparisonReferenceTypes]
+Class=AnimSet
+Class=SkeletalMesh
+Class=SoundCue
+Class=StaticMesh
+Class=Texture2D

We are using these attributes as they usually represent the majority of memory usage and are also the easiest to compare across assets.

For example, if you have N weapons. You can probably break them up into: Small, Medium, and Large weapons. In general we don't want to have small weapons cost more than Large weapon. So being able to visualize how much each weapon cost is a great way to make certain our costs are in line.

More generally, we want to have a really low standard deviation across our asset types. Example: If we have N similiar characters, we don't want one character to cost 1.5 to 2.0 times more than all the other characters in terms of SkeletalMesh.

There are lots of reasons why a character could end up costing more than others. And some of those reasons are just ignorance. The idea with this commandlet is to list out the costs and then make certain they fall in line with our expectations. This also provides a nice way to investigate outliers.

To set up which classes the ContentComparisionCommandlet looks at modify DefaultEditor.ini ContentComparisonClassesToCompare

Detailed Example(s)