D-Rose. Dave's Railroad Operations Simulation Environment.


D-Rose Pages
Index Docs FAQ Wish List Screenshots Railroad Knowledge The Distant Past
Downloads Forums Project Page
Developer Info
Design Credits Licensing
Questions or Comments? Advice for me or from me? Please email me.

The History of D-Rose

Way back when, in the dark ages, (circa 1990), there was a program by Microprose called Railroad Tycoon (tm). This was a way-fun program, but it had limitations. The most annoying of these was that it kicked you out after 100 years. Other limitations included the number of junctions and signals that the program would support, not allowing triple-track or more, no time-based scheduling of trains, limited capabilities for train routing, etc. Part of this is certainly understandable, as it was a mass-market game, not a simulation aimed at rail enthusiasts (i.e. geeks such as myself).

Even back then, folks saw that there could be a much more featureful and rail-geek friendly program. People even put together a wish list, with the intention of sending it to MicroProse, and posted it on CompuServe. But being that they/we were all geeks, MicroProse paid no attention, and when RRT2 came out, it lacked many of the requested enhancements. Again, they went for the mass market. (Which is their company mandate, what with them wanting to stay in business and all...)

1992 came around, and I got a particular issue of Trains Magazine (I forget which one). This issue had an article on CSX's centralized dispatch center in Jacksonville, FL. Included in the article were pictures of the computerized displays that the dispatchers use for their work. And I thought, "Hey, computers! And I'm a programmer! I could write that!"

So over the months that followed, I started putting together ideas for what was basically a replacement RRT. And I ran into a substantial problem, which was lack of knowledge for how to solve various problems that needed to be solved for such a program to work. So it got shelved. But over time, it kept niggling its way back into my brain. I continued to be a railfan, chasing trains around GA, PA, AL and FL as I got married and moved around. And along about 1994, I dusted off the ideas I had and started writing some code.

It was in C, specific to Windows, and didn't get very far, but I could lay track and run a train over it. And, nifty thing, it was helping me to be more serious about my profession; I used it as a chance to get more familiar with Windows programming at the same time as I was coding trains. Well, then we moved, and it got shelved again.

The next attempt was in C++, still in Windows, and took place probably in 1996 or so. I ported things over from my old C code, and again used it as a test bed for C++ coding and OOA&D, as well as simply being a rail simulation. This time, I made it through a semi-official analysis phase, but it soon got shelved again as I welcomed a son into our family. If you've had a child, you understand: it changes everything.

The next run at it was around 1998-9, and accompanied a phase where I was trying to learn Lisp/Scheme. I managed to port my existing code over to PLT Scheme, using their provided object system. I wound up learning more about Scheme than accomplishing anything rail-wise, and ended up realizing that while Scheme is fun to code, it's (for me, anyways) a bear to maintain (I never got the hang of grasping the intent of Scheme code, even code that I'd written myself), and it started to languish. That, plus we had a daughter: another couple of years without spare time.

2002 was the Year of the Snake. Python, to be exact. Could this be yet another fad? It's possible, but I ported my Scheme code, minus the GUI, to Python/wxPython. We then moved, which put it aside for a few months, but then it came back out of obscurity and into focus and moving forward.

Some other things have happened recently as well. First, I'm starting to figure out how to deal with my short attention span. Second, I've been putting some effort into figuring out a RAD cycle, at least as it pertains to my own work. How to structure my work so that if I only get a couple of nights a week to work on it, it'll still progress. Third, we're not having any more kids. Fourth, I'm sick of moving, and I'll be hanged if I'll do it again anytime soon. Yeah, as a parent, there's always something coming up, but I'm (naively) putting my foot down and saying that I'm gonna do this. So there. (Hey, wait, that's four things...)

Feel free to slap me around if you see that I've stopped updating these pages for more than a few weeks. I'll deserve it. Otherwise, get ready to start seeing an actual program. It's about darn time.

This project and website are hosted at
SourceForge.net Logo
This file last modified 11/03/05
site design shareright © 2002 Phlash via OSWD