|
Welcome to the Trainz Railroad Simulator 2004 - The
Content Creators Guide.
This document is designed to be read by persons intending to create
3rd party content for Trainz Railroad Simulator 2004 (TRS2004)
or those persons who are interested in a ‘behind the scenes’ view of
how content is created.
The purpose of this document is to detail the way in which 3rd party
content should be designed and built to be compatible with TRS2004
and future versions of Trainz. We ask all content
creators to make a concerted effort to follow the procedures in this
document as much as possible. Doing so will reduce the work needed in
the future and will help us make sure that future versions of Trainz
have a much greater chance of working with your content.
Given the importance of creating content that is standardized we feel
that the best way to accomplish this is for all content to be created to
a common set of criteria. We ask that all content creators adopt the
procedures outlined in this document without delay. For its part, Auran
will make every effort to support content that is created to the
procedures outlined in this document in future versions of Trainz.
This document now contains a large section explaining the procedures
Auran has used for the creation of their loco cab interiors.
Please check the Trainz Railroad Simulator website www.virtualtrainz.com
for information on our forthcoming passenger station and car
configuration. |
|
Creating new content for Trainz is a five-step process. Not all steps are required, but a minimum
of 3 are usually required.
- Research (Mandatory)
The research step involves finding out all the relevant information that you can about the item you wish
to create. Research usually covers the accumulation of data about the content in question. It may be
performance figures, taking photos or even a visit in person to see the object you wish to create.
- Create a Mesh (IM file) (Optional)
An IM file is an Indexed Mesh. This file is created by 3D Studio Max or Gmax both
by Discreet using an Auran Jet plug in.
| Note: |
Previous versions of Tranz used a ‘Progressive Mesh’
file ( .PM ). Due to the new mesh reduction in TRS (‘Level
of Detail’ mesh reduction) using .IM files only, progressive
mesh files are slowly becoming obsolete. |
Gmax is a game-specific version of their very
popular 3D Studio Max program. Gmax ships with the retail version of
Trainz and is available for free download from the
Discreet site. In
order to use Gmax with Trainz you will also need to download the
Trainz
Content Creation Pack from the Auran website. This pack installs into Gmax
and will enable you to export content directly into the IM file
format.
So what is Gmax? Gmax is a 3D creation program that enables you
to make things such as locomotives, items of rolling stock or scenery and trackside accessories.
It is quite a complex program, and you can expect quite a steep learning curve should you decide
to dive in and learn it. However, on the plus side, the benefits are well worth it, and if you
take the time to learn it well, you will certainly be able to create some masterpieces.
- Create textures (Optional)
Creating textures for your creations is a very important part of the content creation process.
Making good textures is one of the hardest things to do; but they can be the difference between
a good-looking model and a great looking model.
Textures are created for Trainz using any 3rd party program that supports the creation of 2D art,
like Adobe Photoshop or Jasc Paint Shop Pro. If you're on a budget
I'd suggest Paint Shop Pro. The latest version retails for just US$109 boxed and it
is a great program. Photoshop is arguably a more powerful program, but it's
equally more expensive.
- Create a configuration file (config.TXT) (Mandatory)
Each and every item of content for Trainz has what's called a configuration file
(config.TXT). This file is a human-readable text file that resides in the directory along
with its corresponding item of content. Depending on what the item of content is will determine
the necessary contents of the text file, but it will always contain a description and a KUID
(KUID is an identification serial code defined a little later in this document).
Items of content created for Trainz are always assigned to a group of content called
a KIND. A KIND is a type of content that has particular properties that Trainz
recognizes. For example one type of KIND is a 'track'. Trainz understands that items
of content that belong to a group of this KIND are able to be used to run locomotives and rolling
stock over it. Other KINDs are further listed in this document.
- Upload your new content to the Auran Download Station (Mandatory)
Auran has produced a product called Content Dispatcher
This is a stand alone application that content creators use to package their creations prior to
uploading them to Auran.
Content Dispatcher is a very useful application in that it automatically performs
error checking and simplifies the preparing your content for upload.
Put simply, Content Dispatcher understands the way Trainz works and as
such it is able to watch for a number of common mistakes that you may make in preparing your content
for distribution. It can also spot certain types of errors within the confg.TXT file; and
hence we strongly recommend its use in preparing your content.
Since the Auran Download Station expects the uploads that it receives to have been processed
by the Content Dispatcher, using any other utility may mean that the contents of your
upload pack may be incorrectly identified and processed. The Content Dispatcher program
embeds information into the upload package that is required by the Auran Download Station.
Not
using Content Dispatcher will almost certainly cause this process to fail and your
content will not be easy to locate or may be missing vital parental
information expressed in the obsolete-table of an assets configuration.
The term parental is a general term used to describe the asset's hierarchy - much like a
family tree. See the following example:
 |
Side note: Parental information is a concept new to Trainz
but we're sure you'll see just how useful it can be. As a content creator you may, from time to time,
wish to make changes to content that you've already created and uploaded. Perhaps you made a loco shed
and you've improved its look with a better 3D model and textures. Either way, you want to upload the
new shed to the Auran Download Station. The problem is that hundreds, maybe thousands of people
have already downloaded your older shed and many hundreds of users have made layouts that included your
old shed as well. How then do users know that you have a new shed available and how do users downloading
the layouts using your shed know to get the new shed and not the old one? . . .
The answer lies in Parental information and the obsoletes field in the contents
config.TXT file is the key to this. The obsoletes field is seen by the
Download Station when it receives an upload package from you. When it sees this entry, it causes
your package to be processed in a special way. The obsoletes field tells the Download Station
the 'old' KUID that your 'new' loco shed is replacing. The relevant entries in the confg.TXT
file might look like this.
kuid <KUID:1234:5678>
obsolete-table
{
0 <KUID:1234:5677>
} |
This entry would tell the Download Station that your new loco shed KUID: 1234:5678 replaces
your older shed KUID:1234:5677. Upon seeing this Download Station does the following. It deletes
your old loco shed but retains the index that pointed to it. It then updates that index such that it now points
to your new loco shed. It then files your new shed and creates and index for it. So what has this accomplished?
Well for one, when someone now comes to Download Station and searches for KUID:1234:5677
(Your old shed KUID) Download Station will respond 'KUID:1234:5677 has been superceded by KUID:1234:5678'
and then display the new shed for download. If they search for the new shed directly then it will be displayed.
This parental information can go on indefinitely. In other words you can replace your older items over and over
with new ones; and if you use the obsoletes fields, all will be well.
Perhaps the best example of the use of the obsoletes field is with layouts. Continuing the above
example, a user downloads a MAP in which your old loco shed was used. Because they don't have your old shed they
will receive the 'Update Content' report listing the old shed as missing content and providing a
URL for them to locate it. Of course when they click on the link to search for your shed, Download Station
sees that the old shed has been replaced and promptly displays the new one for download, all without the user
ever knowing anything about your content or how many revisions of it you've made! |
| Side note: |
You may be wondering why it is that you only need to perform
steps 1, 4 and 5 to make a new item of content. Surely you would need to either make a new model
or re-texture an old one, right? Well you can in fact make a new item of content just by creating
a new configuration file and then using a 3D model and a set of textures that have already been
created. An example of this would be making a new locomotive with slightly different performance
characteristics. In this case all that's required is to do the research, make a new configuration
file that references the already created 3D model and textures and then upload it. |
By using the Content Dispatcher you package the content you've created into a parcel and then
uploaded it to Auran' s Download Station. |