Train-Sim.Com
MSTS Multi-Player Forum

Daydreamer

Notice to all visitors and members of the Train-Sim.Com message forums:
If you plan on using a signature banner in your posts, we would like to remind you that there is a maximum size for banners. That maximum is 450 pixels wide by 120 pixels high, and not to exceed 25k. Your compliance is appreciated. FORUM RULES Problems? There are two common reasons for problems with logging in and posting messages. The first is that you are running a firewall that prevents your messages from being sent to the server. The other is that you have cookies disabled; the DCForum software requires cookies to work properly.

Previous Topic | Next Topic

Printer-friendly copy Email this topic to a friend

Reading Topic #237

Member since Jul-6-04 · 52 posts

Just FYI the idea I had on a the client program that would allow you to see signals is on hold until I can figure out from someone with more advanced experience on how I can build a client/server application so I can link over the interent with each other.With that said I was thinking about my little idea and had some time on my hands and began to explore the what if scenerios for what is and isn't possible for MSTS. A HEX editor is a tool used to see what your memory actually looks like. It can actually be used to reverse engineer a program's code (aka hack in to) to find out how things take place. I have a hex editor, and my sole purpose of getting this editor was to look into the MSTS world and see if I can manipulate things and make a little magic happen.Unfortunately very little information is available or has been released on how we, the people who bought the MSTS product can expand the ability of the so called open ended program and make it do things, not as part of the package. With no v2 the only thing we can do now is switch to another simulator, wait for another simulator, or do whatever we can to make this MSTS worth it's money. Having MSTS combined with teamspeak was a great step in the right direction. I think my contribution of adding a TD3 session in the mix with ghost trains made things more interesting as well. Even a handful of people could be part of a network of 20 trains running at a given time.So now what's next. A point was brought up to me that it would be better instead of buttons to push in a client program (difficult to use if your in full screen MSTS) it would be easier for the client program to report back to the server program where your tail end is. I think this is possible, and with a little exploration through a hex editor it probably isn't too hard to find. Mark that as a possibility.Then we have those signals out there. Wonderful advancements have been made recently with the free add on available from Maple Leaf Tracks you can now see the signals way in the distance like you should in real life. Reminds me of the old RailSim program that I enjoyed to run prior to MSTS. What if you could actually some how tap into memory the signal aspect that should be displayed bypassing, or enhancing what is currently displayed in explore mode. I think this would be tricky, and maybee changing a switch would make this difficult to maintain, but perhaps it's possible.Then we have those switches. The last session I had a paricular train got lost somewhere. Wouldn't it be nice to have the dispatcher remotely control the switches. Of course we konw MSTS uses paths, but maybee somehow through explore mode, this little program might be able to switch certain switches for you so you are on the right route. Even better it might be able to lock you out of switching switches you shouldn't be touching in the first place. A little tougher to imagine, but again who knows right?Last but certainly not least consists. We know that a consist file basically is a table that orders cars you have on your hard drive so that MSTS knows what file to load up and display. We also know that if you have activities that have missing consists or consisists that have missing cars all hell breaks loose. Well there are plenty of programs out there that do a good job of cleaning up that mess for us, but for multi-tasking point to ponder. Let's say a session called well in advance has 20 trains that will run across the territroy in a period of say 3 hours (Sort of like I posted back for the Funnel). With all of these trains however, comes 20 new consists and a readme file explaining where they can all be downloaded. So you go to the download section and search out all the wonderful rolling stock and engines (YES YOU ALL DO THIS Why I'll get to in a sec. So now you have all your cars, and even if you are missing a few that you can't find let's say this said program is smart enough to allow you to replace the car it wants with a suitable replacement already in your roster. You probably already know that your FPS slows a bit, and your disk drive loads something up when your about to see an AI train correct. I'm pretty sure this is simply refering to a consist file you have in your activity that loads up all the car's images so they look nice when your train goes by. You see despite the fact there is a path in an activity what I'm pretty sure there is in memory is a location that continues to update where each AI train is in your MSTS program. As you get within a certain distance of this location that resides in memory it then perhaps pulls up the consist file of the train beside it. From there it loads up the train. What if this was something the said program could actually know where to plug this in to memory, and perhaps MSTS finds the train of a train in a current MP session and loads it. The location of the train is updated via the server program (whoever is the dispatcher) and said train part of a multi-player session appears hutling down the mainline, while you sit in the siding. Pipe dream? Perhaps not.Then your sitting in your siding no hitting a key, the signal didn't turn green right away the instant the last car passed by. You see TD3 sends a request (even if stacked) just like reality. So once TD3 determines all is safe, and provided the dispatch has sent the command, then the signal displays green. In some cases you might see a yellow flicker first as only the first block is cleared. This all happens without anyone on the other train saying a word to dispatch, not hitting any "I've cleared the block key". You simply release the breaks, and go on your way perhaps calling the signal as it drops to red. Your engines pass and the dispatcher's screen indicates you've entered the mainline. The other train takes a rear view look and notices the other train is now moving perhaps. This is as real as it gets!If anyone thinks this is imposible please feel free to reply. If anyone thinks it's possible they can do the same. But I think if it is, we owe it ourselves to seek out whatever we can, and make this happen. I could care less if someone steals my idea, and wants to charge a few bucks for the program. If they can make it happen, so be it. I promise I'll do what I can to make this happen regardless.Sean

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Member since Aug-4-04 · 22 posts

RE: DAYDREAMER

This sounds so awesome! You are very right saying that teamspeak is moving in the right direction. Even if you can only manage to accomplish 1/3 of the things you mentioned above, that would still be leaps and bounds for MP. However, I'm learning in my C++ class that hiding source code is very easy, and very difficult for someone else to read. But, if you can do it, I'd say go for it. Great ideas again.Markb
Blacksburg, VA

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Member since Jul-6-04 · 52 posts

RE: DAYDREAMER

LAST EDITED ON Oct-03-04 AT 08:58 AM (EDT)

I'm not really looking for the source code here, rather something in memory that changes. Like a table of consist file names, locations of those trains as they move etc.If I can find a signals table and manipulate this, then that will be a good 1st step. Locking out, or controling switches I imagine would be a little harder to find, or prevent. As for displaying the consists as they are moving, I may be able to have a consist sitting in a siding, but to fluidly advance might take rapid communication updating the location between the client and server and back out to all clients again. Or the outcome might be you at say 20fps and the other trains showing up at about 1 fps if you know what I mean.Once again the biggest thing for me though is to figure out how I can get these programs to talk to each other at maximum broadband over the internet. I'm going to talk to my programmer were I work and see if he has any ideas. By the way I know a little PowerC but if you learn a way how to communicate over the internet through a client server application let me know.ThanksSean

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Member since Jul-6-04 · 52 posts

Update on TSC (Train Simulator Communicator)

Good news and possible bad newsThe good is I'm getting the newest versions of C/VB and client server code from a programmer at work. So at least that end of things looks possible. This was the one thing that was preventing me from getting the ball rolling in the first place.The bad news is apparently finding things in memory has changed quite a bit from the early PC's and Commodore days. Apparently most programs are protected along with the memory of global variables etc. I'm still going to take a look and see if I can find any tables out there in open memory to be at the very least referenced.
I may even try and get Kuju or Microsoft to assist me in this (Not sure if I'll get anywhere there). These things are certainly available somewhere in the memory of a PC, but with the new 32bit technology it is very difficult for other programs to even know what is going on with each other, unless it is designed to do this. To say the very least the 3 things I was daydreaming about will NOT be available in version 1 of what I'm now calling (TSC Train Simulator Communications)I also want to try and avoid having anything that would take MSTS out of full screen mode. The other night running MSTS in full screen with Teamspeak in the background worked well. Keypresses not interfearing with MSTS should be fine. I might get it perhaps to call the signals out to you through the audio when you hit a defined key. Another defined key will be used when you take the signal, and another when your tail end clears. The other little quirk that I'm trying to figure out is do I really want this program to communicate with TD3? The issue isn't that it can't be done, because it's within my expertise, and there is plenty of documentation. The issue is however that when you run TD3 in the mode that allows inputs and outpus to and from an external program or handler (The program that would indicate block occupancy, signals etc. from TD3 to the new program) you loose the simulation ability of TD3. What this means is all the other ghost trains, engine failures, hot boxes, switch & signal failures are lost. The only way around this would basically be to produce a clone of what TD3 already does. Unfortunately you can't combine the two modes at this point in TD3. I find it is more fun to have a session with other traffic among our own, then to have a little more automation without these variations to our sessions. Perhaps the server program (The one the dispatcher will use) will be able to update where you are cleared too. From there as the operators using the client programs (The one the engineers will use) would hit certain keys calling signals, this will update what signal you should receive and TD3 will actually just run as it would like when we did the Funnel last week.There is also one other future possibility and that is to program a verbal communication interface. This would eliminate the need to use TeamSpeak. However if it's broke don't fix it, and Teamspeak for the time being is doing an excelent job. So this isn't a dead issue yet, and there is hope at least that something remotely beneficial will be available soon. Stay tuned, and thank-you for your patience and support.Sean

Alert | IP


[ Home | MSTS Forum | MSTS FAQ | How To... | File Library ] Copyright © 2004 by Nels Anderson. All Rights Reserved.

Restored from the Train-Sim.Com archive, captured October 22, 2004. About this archive.