This topic has been on my mind constantly since I invested in Trainz2010. With the number of people who have commented on this most interesting thread, it’s obvious that this topic is pretty hot within the Trainz community. I may be very new to Trainz, but I did spend nearly 20 years working in software design and development, before the advent of the Internet made me obsolete. Thus, I feel that I can add some value to this thread.
When I first discovered the state of the DLS, I was absolutely appalled, so much so, that I spent the first couple of days believing that I had completely wasted my money. I was on the verge of abandoning the whole program, but couldn’t allow myself to throw away $50 that easily. If I had instead bought an earlier version on e-bay for $10 like I considered, it might have been a different story. Anyway, without even consciously working on it, I have a solution already formulated in my mind. I believe that a relatively minor overhaul could fix the problems, alleviating the need for the drastic surgery that some posts in this thread have suggested is necessary.
Those not technically inclined can skip the next few paragraphs. I include them because I’m really hoping that someone from Auran reads this and realizes that the solution is really not all that difficult. Although a full description would be inappropriate for this forum, here are some of the highlights of what I believe is required...
Visually, the object database needs to be in four sections, with objects being assigned to the relevant section by a database management program. Note that this is NOT four separate files, but simply an automatically applied designation of the object type. I’ll give names to the four areas according to the functions they’ll serve.
Assets: complete useable objects ready for surveyor, with all tags filled in, and no errors or missing dependencies (after all, the definition of an asset is something that has value, and an object with errors has no value).
Parts: sub-assemblies that are not useable on their own (things like bogeys, couplings, cab interiors, locomotive sounds, textures, etc).
Junkyard: anything that has errors or missing dependencies (an appropriate real-world parallel as junkyards are full of good stuff that needs work to make it useful).
New: where all new or repaired objects are posted, until the database manager assigns them to one of the other three sections.
The database manager would test everything it finds in the first two sections, reassigning broken objects to the junkyard; and the “new” section, to sort everything according to one of the other three categories. The logistics of when this should run can only be sensibly determined by someone at Auran with full knowledge of user distribution. To the user, it would be invisible. While all areas would be readable by users (think of them as list tags in the CM), creators would only be able to upload to “new”.
The benefits of this reorganization would include the following:
1) Users could search the database with confidence that whatever they find in the assets section will be useful.
2) Content creators would find all the parts they need already grouped for their convenience.
3) Complete tags would allow intelligent, concentrated searches of appropriate material (btw, I hear that the region and era tags are being dropped. This is a BAD idea. If it’s true, we need to lobby Auran to reinstate them NOW, as objects used outside of the correct region or era tend to destroy all pretense of realism).
4) The junkyard would serve as a to-do list. Content creators could fix their own objects, or others with the ability could do it for them. Even if some creators choose not to correct their objects, their presence in the junkyard allows others to use or ignore them as they choose.
Perhaps the biggest advantage of this suggestion, is that the vast majority of the code required already exists in the CM. The CM already has the capability to test dependencies, check for errors, and find tags. What I am proposing simply adds a new control function that calls the existing functions in several slightly different combinations – it doesn’t even need any front-end – just a command to run unattended on a given schedule. Any programmer with knowledge of the CM source code and Auran’s development procedures, ought to be able to produce this in a couple of days – maybe a week with the various database changes necessary.
The other half of what we need, is some way of users being able to organize objects as they choose. The region and era tags are only a start. Even for multiple users activating identical searches, most likely they will all choose different assets to add to their routes. A bridge/building/widget/thingumy that one user considers to be ideal for his purposes, may be deemed unsuitable by another user creating a route based on the same prototype.
A very complex custom created index tree is one way to do this, but there is a far easier way of accomplishing the same results, reusing code that for the most part already exists in the Trainz programs. It needs a second description field that can be set by the user. When objects are first uploaded to the DLS, this field would be left blank for users to add all the keywords they deem relevant. The search window in surveyor would need a flag to choose whether to search the default item description, or the user-customizable description.
Auran please note: for this to be useful, the spinning icon shown in the surveyor object selection window, and the facility to change the user description, must be accessible from the same location. It would probably be simpler to edit the user description in surveyor, than to add the spinning icon to CM.
There has been much discussion on this thread about who is responsible for correcting this problem. Let me present my view on this...
The success of Trainz is largely the result of the additional content produced by users. We all benefit from this. Users have more choice than Auran can reasonably be expected to provide, and Auran’s potential sales are greatly enhanced by user content being able to cater for a far wider range of interests.
The presence of the DLS, and the vast quantity of available objects, is blatantly used as a selling tool by Auran. There is nothing wrong with this, and they would be silly not to do so. The important point however, is how it is used. I recall during my initial research, that I was most impressed about being told of the “more than 100,000 assets available on the DLS”. The implication is of 100,000+ USEABLE assets. Supposing the sales blurb went something like this... “There are over 140,000 items on the DLS, but that number includes 20 or so separate parts necessary for every locomotive, so really there aren’t that many, and everything is so disorganized, with so many missing dependencies, that you’ll be frustrated to the brink of insanity when attempting to download anything useful”. Would anyone buy Trainz? Ok, so this is a slight exaggeration and a rhetorical question, used simply as an illustration. With the user content being actively sold to new prospective customers, ensuring that this content is actually useable, is clearly the responsibility of Auran.
I think that if one were to discount all the broken, obsolete, and duplicate items (yesterday, I ended up using much of my 100MB allotment downloading what turned out to be multiple identical versions of the same bridge), there would be considerably fewer than 100,000 assets remaining on the DLS. This does not matter. Even 30,000 working categorized assets would beat the current mess.
It is my sincere hope that someone from Auran reads this with an open mind and a genuine desire to do something about a deficiency that even the most stubborn proponent of Trainz cannot deny exists.
I will even make the following offer... I will work with Auran's programmer, free of charge, to design and spec the changes necessary, and to test the changes as he goes. All they have to do is pay expenses (if any).
I would like to invite the Auran development team to contact me off-line with a PM to discuss these possibilities. In fact, I’ll be very disappointed if I don’t get a PM, as then I’ll know that they don’t care about the problem.