Dennis, my "Little FWRR" layout uses software and a set of computer interface modules made by CTI Electronics in Baltimore (
http://cti-elctronics.com), which run with Windows computers. The software is a train control language called "TCL", and looks similar to BASIC. Their line of interface modules are specifically designed to control the various aspects of a model train layout. There is a module for direct DC control of a train, which I am using two of at the moment, which means I am limited to running two trains at once. The outputs of these modules (DC) is selectively switched to the various blocks in my small layout by a module with relays. The CTI system can also interface with DCC, which I would like to do in the future. Other modules offer various types of inputs and outputs for controlling turnouts, block lights and other accessories. I use reed switches and magnets to sense train positions, and photo sensors for precise positioning of cars for things like loading and dumping the ore cars. Of course, if I were using DCC, I would have sound modules in the engines, but for now I take advantage of the software's ability to program the running of triggered sound files from the computer, which isn't great since all of the sound comes from one place (unless you want to have multiple audio channels or switched speakers).
Actually, my N scale layout with the Altair was a little harder because we weren't using S/W and H/W that was specially designed for model trains. So more had to be done in the S/W, like writing code to talk directly to the integrated circuits on the I/O boards.
With the CTI software, you can manually run the trains, turnouts, etc. from the GUI on the computer display, or you can program a totally automated layout, which can be interactive based upon events that happen in real time. In other words, you could program a completely scheduled operation, or just let the trains run under a set of programmed rules, that if done properly, would keep them from destroying anything. As you might imagine, it can get pretty involved, but coding and testing is a lot of fun. When you make a mistake in your programming, you get to see the results first hand!
Obviously, one could use this system to control models of many of the Disney ride attractions, not just trains.
I'll be happy to try and answer any other questions.