Trainz/Content Creators Guide
The Content Creator’s Guides (CCG) in whatever format and era, are designed to assist 3rd party content creators design and create functional content for the Trainz Railroad Simulator of the day. Since the advent of TS2009, the CCG's role as official reference document has been chaotically replaced by the generally incomplete[note 1] and overall geek-language of the various TrainzOnline Wiki's distributed reference pages.
The purpose of today's Trainz Wiki is that of the several seminal CCG documents — to detail the way in which all content should be designed and built to be compatible with Trainz's[note 2] Graphics User Interfaces--the run time modules generating a virtual world and interactivity within. From late 2014 the TrainzOnline web pages began to be altered to describe the use of the various new functions in its Trainz: A New Era, and by early 2018 updates were to new standards expected in the forthcoming TRS19, released in late 2018.
The point is these specifications, capability changes and evolving reference pages are actually dependent upon the Trainz Community's wishlist this particular go, in a product which spawns a new generation about every third year. The software implementing new user-asked-for-features forces any new necessary data definitions that were incorporated into the new release. Since new capabilities are what sells new versions (at least to current customers) new capabilities are actually dependent upon the new definitions now incorporated into the data model itself.[note 3]
And the Trainz Community, and its various subcommunities aren't shy and retiring, they make their voices heard and ultimately, SOME OF the data model therefore always changes somewhat with most major version releases. So the coding of routines in the major modules has also been moving targets, especially with each version since TRS2006 incorporating more and more up front error checking—which is to say, check assets for compliance with those pre-published standards. The rare and unusual characteristic of Trainz models is their near total lack of incompatible older data. That's not to say an item off the DLS will automatically work, but that with some work, we humans can update them so they'll work with the new release. This is nearly as good, and far more educational.
It is also why the new user will need to familiarize themselves with the older formats and practices as well as newer generation forms of the same data, what has been added so things have to be moved into a container with which newer tags you'll need to specify. This will require accessing the CCG online at the least, and making comparisons to the TrainzWiki's newer, later standards, to see the 'best fix'. It also means one needs to be familiar with looking at the history tab of any Wiki like this page or the TrainzOnline Wiki to see when the page changed because the one detailing the latest greatest … may not be the standards you should be evolving your upgraded asset to achieve. That is to say if your goal is to get something working you likely want to target upgrading to an mid-grade but advanced data model and its matching TBV; for as discussed below the two are in lock step. This means understanding the major differences each step took will help fixing assets up to get that route working the way you want. With everything working, you can work on debugging that killer session while going back and upgrading the look and texturing effects you might adjust.
Why a New User Consults CCG[edit | edit source]
Most assets can be upgraded relatively easily, and while an original Trainz asset won't have the slick look and feel of something developed with a 64 bit version of Trainz, most will generally function handily with a dollop of TLC, and many work fine as is without modifications. While the data configuration's details required by an asset of type X of KIND Y have evolved from the initial Trainz 0.9 Beta release; those original data enumerations have been remarkably stable and consistent, albeit repackaged a bit from time to time into new containers after such and such a build.
Other changes sometimes obsoleting a former legal keyword and related group of related values, sometimes replacing them requiring a translation step or substitution, and other times generalizing a data type into a main Kind or bundled into a Containers and modified and enhanced to provide alternative new mode by the addition other control keywords allowing something simple and limited to morph into wider variations taking on a suite of attributes.
This is in fact the general case for spline objects, of which their was once five separate KIND classifications (types), which are now since TS09 all defined to be kind track of one degree or another, whilst with TS10 & TS12, kind track itself was given enhanced graphic capabilities, morphed into a Stitched spline technology incorporating LOD meshes. LOD techniques previously had only been implemented for traincars, locomotives, and fixed scenery assets. Achievable Simulation complexity and speed both benefit from LOD.
If the Trainz Wiki provides specs for today's data model, when the asset has a venerable history coming into being in the misty pre-history of Trainz, one finds the new day model is filled with containers and may require a different KIND and category-class than the thing you download from the DLS which looks only vaguely like today's standard, but only because there are a handful of key words that match up. Well you can't call Ghost Busters', so what're you gonna do? The answer is go back and see how such an asset was configured in the earlier day, and what is said about its parameters. Then you go to the Trainz Wiki article page, but don't look at the current page like before (you had a look earlier, or you wouldn't have found it so different!), but goto the history and load up the very first page. You should see a spec more similar to the DLS download with it's 'faults'. Then examine the next changes after known release dates. TS09 began the Wiki era CCG replacement, so will be the earliest standards. It is also the most compatible to the TRS2006 family of releases (Up through TC3. The next key dates will be in 2011 (post-TS10 updates) and 2012 or 2013, etc.
The Content Manager (CM) module manages content on your computer, communicates with the Download Station and uploads or downloads content. TS09 introduced greatly improved sorting and classification filtering, further refined in TS12, making searching and problem identification far more easily than in previous versions of Trainz. TANE on the other hand, benefiting from greatly enhanced architecture optimizing use of multiple core 64 bit native processing power actually reduced searching and sorting ease because of an absurdly bad user interface design that is effectively hostile to users. Further the design triggers a sort immediately with a change of a single specification's change of state (e.g. one letter in a name parameter, in a mix of 5-6 criteria.)
Beginning with the TRS2006 Content Creator Plus module, CMs since incorporate error checking that assists in creating model assets that are compatible with the Download Station requirements[note 4], and in the creation of successful route and session run-time assets which are not crashed by bad digital models. Something which was all too common well into the late TRS2006 era, but not as bad as the crashes to the blue screen of death that occurred in the earliest Trainz.
This document provides the standards and procedures for a content creator to enter data for the model asset, using Content Creator Plus. It also provides advice on the creation of the model mesh using 3dsmax, and the creation of correct texture files for the model.
Scripting is an integral part of model creation, however details on script code and usage are included in a separate document. Only brief references to Scripting are made in this document, as far as they effect the creation requirements.
New content creation features added to TC include:
- ability to vary track sounds on track for tunnels and bridges and for bogeys (tracksounds)
- basic animated turnouts
- ability to create backdrop objects
- control of invisible track display (visible in minimap)
- third-party configuration tags, in an extensions container
- use of asset thumbnails, replacing art files and other picture files
- new coupler performance tags and wheelslip functions
- a new kind steam engine and kind texture group.
List of published CCG versions[edit | edit source]
CCG's were issued contemporaneously[note 5] with the major retail releases in the Trainz evolved software system. The below are listed most recent to oldest.
Auran's Trainz Classics Content Creation Guide in PDF format, the last official CCG was put up by the user community on the Trainz Wiki, where it is still answering questions left murkey in the Trainz Wiki official reference pages. Here on the Trainz Wikibook, we hope to fill in such knowledge gaps.
- Downloadable PDF copy page
download TRS2006 CCG
- Trainz UTC
UTC_CCP_COMPLETE.zip — UTC in French UTC_french_creation.zip
- Trainz 1.3 — like several of the links documented above the earliest Trainz CCG published as HTM files were seen to become disconnected links during the Summer-Fall of 2014 as Auran and N3V reconfigured it's websites and brought new servers online in preparation of the release of TANE (T:ANE). A complaint and service ticket including a direct appeal to Tony Hilliam was made.
See Also: — Trainz Wiki Modeling guidelines
Notes and references[edit | edit source]
- ↑ N3V programmer's have generally discouraged community assistance in upgrading the TrainzWiki content reference pages. They also, at least in the past--though the rumor is they've been improving, often forgot to document a keyword or new container until questions arise in the community forum pages. When that happens, it is virtually always after the version has begun out a while and had sufficient teething pains to have a couple of hotfixes. The same rumor says they've actually been documenting things in advance of pending releases, sometimes even before code development just like a professional software design, or at least during Beta Testing with the select development group that tests versions in advance of scheduling a release date. This is a welcome increase in maturity and professionalism!
- ↑ that is, it's current matching Trainz release version, for each different CCG was the bible reference benchmarking new technologies that might be coded into a Config.txt file of compliant assets, while conversely also defining which practices would be illegal.
- ↑ The old Trainz development team, Auran feeding off successes in other games genre, had about 35 employees, split amongst technical writers, graphics developers, graphics artists, business and programming staffs. N3V in contrast now hires a third party software house, manages the technical developments to morph the GUIs to the new specs, and totals a staff of a half-dozen or so, each wearing many hats.
- ↑ Concurrent with increased fault checking in validating assets in CCP and CM, standards for uploading data to the Download station were increased as well with a required minimum Template:TBV ratcheting up to the last software upgrade TBV. This means content creators, even those just submitting a reskin asset had to submit assets using all the newest Trainz data model elements, not skate by with an older TBV — no matter how valid and acceptable in its day. Fortunately tuning up an asset for local enjoyment rarely requires a full set of upgrades, which can be made to work many times with a partial upgrade. This is really not astonishing, Trainz essentially incorporates software to provide defaults for new data elements in assets in the same class as those with enhancements in the same area. Simply, the new model has to replicate the old system, or older models wouldn't and couldn't function. Trainz has never deliberately abandoned the principle that backward compatibility was a prime directive.
- ↑ in actuality, often prepared for release ahead of actual software coding as being definitions, both users and software must needs either provide or interpret the data as the model allows
|This reference page is adapted from the TrainzOnline Wiki under the CC-BY-SA 3.0 License. This page will likely include more textual explanations, exposition, history, and/or examples than the source page on the same topic.
The TrainzOnline Wiki is for the most part maintained by the programmers or knowledgeable content creators and may have newer more up-to-date information on the current trainz-build code standards, which have some tendency to change as features are added to the software.