Matt 的个人资料Megabits and Megabytes照片日志网络 工具 帮助

日志


2月11日

Trainz

I've been playing a bit with Trainz recently, I installed it because I figured Cameron might get more out of it given the opening doors, passengers and very simple DCC-style controls. I was right, he loves it. I bought him the Modula City add-on for it and that was worn out within a few days but since then he's tried all sorts of other things and has gone back to MSTS several times too - each one has something that he looks for, though in most cases it's the stock I think.
Trainz
Trams in Modula City
Intercity 125 from Railwaves
Class 357 C2C from Railwaves (he rides this when we go to Lakeside Thurrock in real life)
Train Sim
District Underground stock (wibbly windows...)
Eurostar (Christrains, on Dorset Coast)
One-fast train (he rides this to go to his nanny and grand-dads, class 90 + dvt + mk3 in "One" livery)
Wibbly windows, as it turns out (took me a while to decipher), is when you're in the passenger view at one end of the carriage looking directly through the window in to the other carriage, as the train moves along and around corners you can see the windows "wibbling"...
I think if someone did Underground Ernie for a train sim i'd never see my computer ever again.
Anyway, I digress.
Since it was there for him I thought i'd see what was up in the world of Trainz these days, I've bought some payware and downloaded plenty of the freeware from the Auran Download Station. I have to say, there's a good selection of it out there to be had now, some really nice routes (though sadly most of the good ones are purely fictional) and some stunning stock like a Rebuilt Merchant Navy, and a Class 31 that i'm rather taken with.
It does highlight though, that between where things stand with MSTS now (particularly with MSTSbin on the scene) and Trainz, that the bar for a new entrant is actually relatively high, sure there's the whole graphics thing that any half decent games developer these days could outshine with one hand tied behind their back (let's face it, MSTS is pretty old technology, and there's still that something wrong with Trainz that makes it look, well, wrong) but I fear that the one place developers might come a cropper is in the simulation part, it's what happened with Trainz.
Time will tell, but there are some seriously advanced features in Trainz and a sensible implementation of them (the Trainz guys were very innovative technically but their UI skills, well, sucked) in a new simulator would be very cool.

Where I think Trainz got it wrong was the lack of interest/focus on the simple stuff - the basic driving experience for example, as a driver I shouldn't have to concern myself with changing points while i'm blasting along at 90mph, I want the computer to do all that for me.  This was one area that MSTS really got right.

In Trainz you can hop around between items of stock, which is very neat and can be very creatively used in a complex scenario / activity, indeed I noticed that the same idea is indeed incorporated in to the new FSX scripting system and is used in at least one of the included missions that i've done so far (Tokyo Executive Transport) where you change from a Bell chopper to a Learjet when you get to Narita airport.

However, while MSTS got the basics right, what they got wrong was that they didn't go any further! Trainz, ironically went completely all-out - totally confused half their users but actually provided a tool of significant power.  By creating their own object oriented programming language (stroke of genius using OO rather than trying to make it all fit in a traditional system IMHO) Trainz enabled significant access to just about all areas of Trainz to software developers... sadly not many railway enthusiasts are also software developers...  I managed to make that thing get up and do song and dances all over the place, it was very impressive.  I was able to create a primitive-backed version of the collection classes that are present in Java and C# such as ArrayList, Vector, Iterator, HashMap and so forth - and then this enabled some quite neat high level stuff to be created relatively easily.  One of the things I experimented with was an automated signalbox to look after the "approach control" for a large station.  Each entry route to a station was marked with a trigger and a signal somewhere strategic.  When any train hit the trigger the code would leap in to action - using an internal route database from each trigger to each allowable set of platforms (not all entry paths can get to all platforms of course) it would first find an available platform, lock the platform and then set the route for the train to come in.  If the route couldn't be set (something else has locked a point) then it would release the platform and hold the train on a red until it could find a way to make it all happen a few seconds/minutes later, all automatically.  It worked a treat, a superb degree of randomisation based on the fact that you came in early or late, you may get a different platform - rather than being held up in front of a largely empty station just because there's a train in the one you were originally mapped to.

Later with TRS2004 Auran came up with their Sessions system, by using a series of icons to represent actions you could set up command lists for the train to follow... so, go here, unload, load, go there, repeat - etc.  This worked quite nicely, it had a few issues and largely it only works for small scripts, it gets extremely complex to manage once you're on your third screens width of commands, and even more so when you're trying to make different services interact for visual effect etc.  That said, if you were willing to persevere, there was a lot possible.  In TRS2006 Auran really brought it home for the sessions capability, while it had all the same disadvantages, they added a whole lot of new actions that you could assign and this really blossomed the power of what was capable.  As an example, I spent a few days creating a series of command lists in a session that resulted in the following:

You're driving a 4F just south of Hawes Junction, heading for the Settle and Carlisle mainline.  You start a handful of train lengths away from Hawes so you cruise in and stop in the platform.  Your train is 5 Vent vans followed by 5 empty coal wagons followed by a brake.  As you come to a halt at Hawes, a 4F sitting in the sidings pipes up and runs to the back of the yard and out behind you, gently couples up and brings the brake + 5 empty coal wagons to one of the empty sidings in the yard.  Uncoupling the brake it takes the brake over to five full coal wagons and then brings those back to your train.  You now have 5 vent, 5 full coal and your same brake van on the back.  After uncoupling it blows it's whistle to give you the all clear and then heads back to its engine shed.  You now proceed up the branch to the mainline.  Once you reach the main line you pass another engine shed with another 4F in it (limited appropriate stock :) ).  A little way up the main line you are signalled off to the loop so you come to a halt once on the loop completely.  An express passenger blasts past you, and then the point behind you changes and that 4F from the station behind you comes trundling up and buffers up to you.  You now run with your banker up to the next loop, again you're signalled in to the loop but this time you don't stop, you've got a green, you slow down to 15mph and as soon as you're in the loop the banker slows to a stop leaving you to go on your own.

It was fantastic to drive, the sequence with the wagon shunting at the beginning is just sitting there watching the shunting all happen under AI control for about 20-25 minutes, there were some other AI trains coming down the branch while you were waiting too.

This degree of interactivity is, in my opinion, essential.  It makes you feel like you're truly a part of a bigger busy railway rather than - as things currently are with MSTS - a lone driver, even if there are other AI services, the only time that you interact with them is when the activity writer has taken the trouble to cause them to hold you up and give you some yellows and reds... and by far, those are the activities that people will keep coming back to.

The above Trainz scenario was monstrous to put together, no way would your average person be able to piece together a hundred or so actions between the various trains and get it working - it takes someone that already thinks like a developer (IMHO) to do it, even though it's in a pretty UI.  I might have done the above, but it was after lots of cussing and giving up three or four times.

What's needed is a way to achieve this level of interactivity and power but in a way that everyone can do it.  The vast proliferation of activities for MSTS is, in my opinion, one of the core reasons for its success - there are thousands and thousands of them just for UK routes, let alone the rest world wide.  Conversely there are only a handful, maybe low hundreds - if that, TOTAL, of sessions for Trainz, and I think that's one of the reasons that novices and non-techies just might well not get in to the driving side of Trainz.

Jeez I can waffle.



Matt.