CPU train spamming

Discussion of Pop Top's last release of RRT.
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

Yes, the islands do not exist in 1.06 unless you change the 1.06 .exe file. This islands stop the cpu's that like too many extra trains inbetween two cities. This also stops YOUR trains from moving aluminum back & forth between two tool & dies. However more field testing is required.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: CPU train spamming Unread post

Did this change to an exe.
Cash on Wheels wrote:Offset dec: 183100 / hex: 2CB3C needs to put back to 74 from EB.
Ran a test and can confirm that this cuts back-hauling as you stated. !*th_up*!

Best news: When hauling-at-a-loss, your company is still charged for a haul that loses money.
Also, my version # is still displaying properly as 1.06. ::!**!

Any things to watch for when I get a chance to test this some more?
User avatar
Gumboots
CEO
Posts: 4824
Joined: Mon Aug 13, 2012 4:32 am
Location: Australia

Re: CPU train spamming Unread post

Nice find. It'd be great to have 1.06 debugged a bit more. !*th_up*!
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

In Madagascar I took coal ($74) from my hub city (Antananrivo) which has a steel mill & power plant. Then moved it to a city were coal was $0. That created a price island for coal in every town that had a direct train connection to Antananrivo.
So it shut down coal movement system-wide for a while. That train has a value of -$74 per load. The return trip from $0 city with that very same coal was only valued @ $3 per load, instead of the $70ish that you would normaly recieve from the regular 1.06.
Now when I forced moved Coal from the coal mine where the price was ~$5 to the $0 city it had little effect.

Moral of the story, if you use this change for 1.06 pick your spots when using haul @ loss.
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

Gumboots wrote:Nice find. It'd be great to have 1.06 debugged a bit more. !*th_up*!
What else is wrong? I look & see if I can do some more simple changes. Not to many though! I bet there are a few landmines in that .exe! (smack))))
User avatar
Gumboots
CEO
Posts: 4824
Joined: Mon Aug 13, 2012 4:32 am
Location: Australia

Re: CPU train spamming Unread post

Ok, if you're up for a bit of looking around... ;-)

...there are a couple of things I'm curious about. These aren't 1.06 bugs as such, just general stuff about the game's limitations.

Do you have any idea where the passengers cargo gets the passenger appeal rating applied to price? This happens after the train loads, so it's not in the .car or other files for passengers. It's in the .exe somewhere.

Another thing is that game skins for any asset are limited to 1024x1024. Any skin image larger than that won't be applied (it falls back to the B skin, or whatever is the first image under 1024). If the limiting code could be found, it may be possible to increase the limit on skin images, which could be handy sometimes.

Come to think of it, this may be possible with game map images too. The inputted .bmp for any map is always 1024x1024 even if the map size is much smaller. So, the game is already set up to scale larger images down to fit the map size. This leads me to wonder if it can be made to accept larger images on large maps.

Also, when saving maps in the map editor there is some graphics degradation with each save. My theory is that it's using a lossy algorithm to save the maps, which is odd because the input for map graphics is .bmp (this .bmp format data is also in the finished .gmp) and screenshots, etc are saved as .tga, neither of which are lossy formats. I did find a lot of code related to .jpg in the .exe, but have no idea how it works or what it does.

If you can find out anything regarding any or all of those questions, that would be cool. !*th_up*!
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

Not sure what you mean by the passenger price or map. But I will give you this.

IIRC one of the patches; 1.03, .04, or .05 reduced the passenger appeal ratings by half. So run a file compare between those verisons.


1024=0004 in hexland. Worthless to look that up. However It is at the very beginning of the .exe & also found 4 strings of 1023(03ff) packed close together, I will look at those tommorow. The engine.cfg should contaion your max resolution values within the first 20 bytes. Dunno what the rest does.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: CPU train spamming Unread post

Something that I would like to see fixed are the events for train acceleration and fuel cost. Probably worth checking at some stage if it's simply a bug in the event section of that map's gmp file instead of the exe. These events change the displayed rating ("Above Average" for example) in both 1.05 and 1.06, but in reality the trains behave the same.
User avatar
Gumboots
CEO
Posts: 4824
Joined: Mon Aug 13, 2012 4:32 am
Location: Australia

Re: CPU train spamming Unread post

Cash on Wheels wrote:Not sure what you mean by the passenger price...
The revenue change due to the passenger appeal rating is applied after the cars load. I would like to know where and how that happens in the .exe. Reason is that it basically borks the automated cargo loading algorithm, because instead of being loaded on the basis of how much they will actually earn you the passengers may not be loaded because some other cargo has a nominally higher price.

Example: Pax delivery price of $20/load. Goods price of $22/load. Goods will be loaded instead of pax. If pax appeal rating is Ultra Cool, delivery price of pax would actually be $24/load, but the game will still load goods instead because it ignores the appeal rating when loading.

This is a bug.

...or map.
When making a game map you can import a .bmp image for the overall map background graphics. This is cool, but it's limited to 1024x1024. Better graphics would be possible if that limit could be increased.

Also, when creating and testing a map you have to do lots of saves and edits. This would be ok, except that RT3 uses a lossy algorithm for saving, so the map graphics degrade with each save. Which is another bummer. I was wondering if the .jpg-related code had anything to do with this, since .jpg is a lossy algorithm and AFAIK it's not used anywhere else in the game.

But I will give you this.

IIRC one of the patches; 1.03, .04, or .05 reduced the passenger appeal ratings by half. So run a file compare between those verisons.
Already knew about that. It reduced the steps between ratings from 15% to 10%. So instead of Ugly > Ultra Cool being 85% > 130% it's now 90% > 120%.

1024=0004 in hexland. Worthless to look that up. However It is at the very beginning of the .exe & also found 4 strings of 1023(03ff) packed close together, I will look at those tommorow. The engine.cfg should contaion your max resolution values within the first 20 bytes. Dunno what the rest does.
Yeah but I'm not talking about the screen resolution. ;-) I'm talking about allowed image sizes for game assets. Being able to use bigger ones would be cool.
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

I'm using a turn of the decade laptop w/a turn of the century graphics card! (1368x768).


Your images 1024x 512x 256x are traceable from the language file. But I have a feeling that will be tough to trace it from all locations. The game loves 1024 for some reason

Passenger prices. Milo said there are hundreds of calls during train loading. Not easy also.

That got me thinking of the 'poor' GP7s. The times I see one IRL I have a hard time imaging at one point those were new! And used on mainline service! It just seems like they rolled out of factory, into a few smog filled tunnels, then directly to branchlines w/10 mph speed restictions. zzwhip
User avatar
Gumboots
CEO
Posts: 4824
Joined: Mon Aug 13, 2012 4:32 am
Location: Australia

Re: CPU train spamming Unread post

No drama on the pax price/loading if it's too much of a mission to figure it out. I suspect it's not the simplest bit of code in the .exe and could well give anyone nightmares.

Yeah the game does love 1024. They set it as a limit for game asset skin sizes, and for game map background images, as well as for game map sizes. It may have been a good idea with Pentium II's and 256 meg graphics cards, but these days most reasonable boxes can eat things like that for breakfast. So if there was a way of increasing some limits by editing a few bytes here and there, that would be awesome.

BTW, I'm actually old enough to remember when the early development of the first Pentiums was news in Scientific American. At the time they were having trouble with the heat output and wondering what they were going to do to fix it. The idea of a quad core running at several gig on a laptop would have blown their minds.
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

Is anyone else using this fix full time or part time? What changes to the AI have you noticed?

So with this fix they no longer multiple trains. But unless they start near a gold mine the AI goes belly up within a few years.:-(

Disclamier: I do not use AI very often.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: CPU train spamming Unread post

To test the economic impact of price islands I played through Arop's last (RIP) map: Rebuilding the Deep South. While beta testing this map, I had pushed the envelope far enough with this one that there was disbelief at my result. Well, with the price islands back now I had another attempt. Went faster than my best previous result of late 1884 (didn't bother to post it following the comments on the 1886 attempt). This time had regular gold in mid-1883 (in the final version there is now a super gold, which has a "fixed" time for completion as one needs to lay a certain number of track miles, while track laying is restricted).

During the intervening 3 years between attempts, my strategy has wandered away from the industry focus that I was sure helped with this game. So I was unsure if I could even match the old result. Because strategy and the randomness of the economy and an event or two are involved, this obviously isn't a controlled test. I suspected that it would be easier to keep industry supplied without "pirate" trains stealing resources, and this may have been a small factor. Although, it is annoying when a price island prevents the shipment of resources to your industries and they must travel by land. This happened once (I wish I could get screenshots working) on a major scale with a bulk run of Steel from Birmingham to nearby Calera. About 35 loads per year were to use this route. I left the trains on auto consist until I saw the problem which was easily rectified by use of custom consists to bring in the Steel.

My freight revenues were down 8.5% compared to the same point on my 1886 run, and this time I had many more engines and more track miles (thanks to many mergers with AI, just inheriting track they already laid). So their is a difference in haulage revenues. As an indication of how my passenger strategy has evolved, this time express was providing around $21M a year, and at the same point in time express revenues had provided 3x the revenue of the previous attempt. Just better routing and a Hotel in every city (no Res./Taverns/Post Offices used). Also, less freight traffic means that more express is given the opportunity to load.

The AI were definitely weaker, back closer to the typical level found in 1.05. Because this is a sparse map (lots of cities, but most are very small, to simulate rural stations), they are weaker than on a more "typical" map. 1.05 AI really need cash injections and other helps in the first place. As I said elsewhere, the AI in standard 1.06 (without price islands) were never strong enough to give me a real challenge in the first place (unless I "helped" them or the insane price breakout bug was involved). Although, it's now a bit easier to take them out early in the game.

This was meant as a kind of "test". It didn't make me change my mind about price islands, which I still believe give a better gameplay experience. !*th_up*!
User avatar
Just Crazy Jim
Dispatcher
Posts: 413
Joined: Fri Oct 14, 2016 9:57 pm
Location: Coal Fields of WV

Re: CPU train spamming Unread post

RulerofRails wrote:(I wish I could get screenshots working)
If you are having problems with taking screenshots press CTRL + Print Screen - and use Paint (or most any image editor) and paste the buffer to a blank image with dimensions matching your screen resolution.

If you are not in windowed mode, then tab out (ALT + Tab) and start your image editor.

But I understand the frustration of getting screen captures to work. I have 6 installs of RT3 and the in-game screen capture works in 2 of them and doesn't in 4 of them.
"We have no patience with other people's vanity because it is offensive to our own."
-- François de La Rochefoucauld. Réflexions ou sentences et maximes morales. 1665.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: CPU train spamming Unread post

Thanks for the ideas, Jim. This seems to be a problem when the game's graphics are running via dgVoodoo2 (at least version 2.53) in fullscreen mode. Windowed screenshots still work as long as shortcuts that the game doesn't recognize are used (ALT+Prt Scr, and {WINDOWS KEY} + Prt Scr). Because I play with the custom resolution hacked, I have to restart the game to restore my preferred resolution. I don't like to quit and reload a game too many times as an "economic trend" in effect may not continue when the game is reloaded. I did save a game specifically so that I could take a screenshot later. I was just too lazy to spend a couple of minutes to get it. A difficulty of my own making, sorry for complaining. :-)

More info in the dgVoodoo2 discussion in this thread.

The screenshot:
Price Islands preventing Steel shipment.jpg
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

RulerofRails wrote:To test the economic impact of price islands I played through Arop's last (RIP) map: Rebuilding the Deep South. While beta testing this map, I had pushed the envelope far enough with this one that there was disbelief at my result. Well, with the price islands back now I had another attempt. Went faster than my best previous result of late 1884 (didn't bother to post it following the comments on the 1886 attem.....
RoR you covered all bases so heres a roundup for everyone else:

Pros

1. Less carloads
2. More $ per carload, less very low value cargos.
3. In most cases Cargo will no longer be delivered back to its source.
4. Cargos will no longer transfer between two of the same industry multiple times.
5. Plays like the game did back in 2006.
6. Easier to gauge how many trains you need.
7. You can no longer run unlimted trains between two large, diverse cities.
8. CPU will no longer grow uncontrollably with just two or three staions and 12+ trains!
9. More red to green hauls to take advantage of trains.
10. It will not hurt for Casual tycoon players will only need 1.06 installed. (IMO don't dwnld 1.06 until after you beat the game & extra senarios. Download 1.06 When you are ready play scenarios from the archives )

Cons:

1. AI companies more likely to liquidated.
2. Scenarios designed for 1.06 may play different than intended.












,
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: CPU train spamming Unread post

To further test 1.06 with price islands, I investigated the price breakout bug when events are used to increase cargo prices. I already knew that 1.06 had much more severe breakouts than 1.05.

So I ran a test on a map that both Gumboots and I have thrashed (so we should have a pretty good idea what previous behavior was). This is low_grade's Chile map. The price of Crystals is raised by 60% at game start with this unwinding later in the game. With standard 1.06, even the "nitrate run" from Chuquicamata to Antofagasta when built with intermediate stops is VERY susceptible to breakouts even in the second year of operation. By exploiting the difference I have seen price hit $1.3M per load.

With price islands reinstated, I saw no breakouts on the "nitrate run" with the same setup. About 3 years into the game I had a breakout start much further south near Chillan. But the new price was only up by $30 or so per load. There were some more breaks on the southern coast with them spreading towards the mid-coast before the second expiration of nitrate price (in year 15). But the good news is that price didn't ever go over $300 per load (started at $160). Not perfect but definitely better.

Freight revenue was a little lower corresponding to what I found in my last test. But not enough to prevent a finish just shy of 18 years, made some blunders on the engine choices, but still good enough for a generalization that the game isn't too much harder. Looking good! !*th_up*!

PS.
My game version # is now 0.00 too. **!!!** Minor con for the list I guess.
User avatar
Cash on Wheels
Conductor
Posts: 248
Joined: Wed Jun 22, 2016 12:15 pm
Location: Florida

Re: CPU train spamming Unread post

^^^^^Bumpty bump^^^ for new map.

I think this should be an update for 1.06.
User avatar
Gumboots
CEO
Posts: 4824
Joined: Mon Aug 13, 2012 4:32 am
Location: Australia

Re: CPU train spamming Unread post

Yes, it probably should be. Although it would be even better if someone can find a way around the version display bug.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: CPU train spamming Unread post

Right now my version numbering is fine (have maybe 5 various exe files in the folder). A random bug like this would be hard to track.

I always had it in the back of my mind that there was some reason that Milo disabled price islands in 1.06. Thought about it some more and here's two cons:

>#3. Opens a new exploit
The reliable exploit is this: For virgin stations as soon as you load one at-a-loss car, the station cell price will switch to that of the destination cell for that particular cargo. (Please note what was previously mentioned by Cash on Wheels about Coal on Madagascar map here.)

Suppose you are shipping to an area of very low price (basically the lowest price you can find, can be on top of a mountain, in an isolated valley, edge of map, etc.), in CoW's example I linked to that was a $0 demand for Coal. When you load that first car, the price at the origin station (virgin) will be set by the game to that of the destination station. This is the "island." This is exploitable by then changing the custom consist to load more cars (these will all be profit neutral, $0k). Once the train is on it's way (if done in station, normal rules: some revenue will be lost, haven't defined the percentage, not really interested), the real "cheat" comes in because you can then switch the destination. It can even be a station on the next cell. It will be as if you hauled from that very low price cell, even though you are only doing a small hop.

This is intentful re-hauling. This can of course be repeated in a cycle (as long as you load in the old cell with custom consist going towards the low-price station, then switch the destination after leaving the station). This ties in with one of the strongest haulage cheats in the game. For example, if you have to haul x loads to a territory, place one station just inside that territory, with a second outside. You can pick up the loads that are physically "inside" that territory from the station outside. This re-haul can be done many times (switch destination on trains if profitability is an issue in 1.05). This doesn't classify as back-hauling. The game doesn't care where the cargo is scooped from (within station radius), that single station cell is all that matters for price, origin etc.. You will get a total of 1,000s this way even if very little cargo is actually available.

For regular game environment stations that have many trains running through them, reliability of manipulating station cell price drops (CoW's Coal example seems to indicate it's still not that hard). With normal haulage (auto consist or Freight only) there could be an "island" (lock on price at station cell) from normal distribution. But, players tend to use Custom Consist for rare resources increasing the chance that this exploit will work. Of course, just building a new extra station will give guaranteed performance.

This is a con for sure. Debatable as to how serious it is. There are strong cheats for haulage even in 1.05 (facilitated in 1.06), this takes those concepts and makes it into a strong cheat for ill-gotten gain. It seems that at least within the forum membership there are currently not many people who play the game in the style of cheating haulage. Back when 1.06 was released there may have been more active members/testers who used/explored these haulage tricks.

I notice that map makers are not diligent about closing the door on probably the worst cheating method possible: Starting Multiple Companies (unlimited CBV and PNW), when it only takes one tick in the map conditions. For this reason, perhaps re-opening the exploit door mentioned above has a lessened impact.

>#4. Another con (related, but this one affects "honest" play), loss-making hauls have weaker negative revenues:
Whenever a price island is active a custom consist (at-a-loss) haul is likely much closer to revenue neutral. Sometimes they will be at $0k (if the price at the destination is stable), the rest of the time the negative values are likely to be less in magnitude (when destination price has fallen further since price island was established). This especially affects high volume situations when multiple trains are running the route before price island expiration.

The potential advantage depends on the base cargo price of the one in question. I will point out that the player is of course paying fuel and engine running costs for each haul so a ($0k) isn't really "free." In my experience I tend to use Custom Consist for the rare cargoes, it's not unlikely that these have a greater than average distance of haulage, putting fuel and running costs above average.


A word of explanation on Pro #4. Summary: the lock on price provided by an "island" is helpful for running industry in general.

Consider the scenario of two competing industries in nearby cities connected by active train routes. Memphis and Jackson both have Textile Mills. Natural supply is directed to the Jackson one. Assuming equal distance between the station and both mills (IRL this will be a compromise or not considered). Because the Jackson one is well-supplied the price in Jackson will never be higher than that at Memphis where price can hit maximum. It's natural for some Cotton to get hauled to Memphis. What price "islands" do is reduce the frequency at which this can happen. Each time that Cotton is shipped to Memphis, the station cell in Jackson gets locked at the same price. Only when the lock expires (approx. 1 year?) is there the opportunity for more Cotton to be shipped. Consequence: Jackson Textile Mill still has a consistent supply of cargo making it a solid industry investment.
Post Reply