• Civilization 7 has been announced. For more info please check the forum here .

Getting rid of roads in every tile!

Ninja2

Great Engineer
Joined
Nov 17, 2005
Messages
1,142
Location
Denmarkia
Hi all!

I've seen quite a few threads on roads and railroads, and how they make the game look ugly. A lot of players WILL road every tile within the city fat crosses, the AI does it, automated workers also do it. There's been many suggestions to deal with this, all which (as far as I have read) have never materialized into actual mods.

The basic reason to road everywhere is because of the movement bonus. When your worker has improved a tile, you make him build a road. This will make it faster for your worker to get around to the unimproved tiles and it makes it faster to shuffle troops around. Roads are also a requirement to build railroads, which in itself give a production bonus to certain improvements. Finally, but obviously not unimportant, roads make resources available to the empire.

My idea is this: If the logical step after improving a tile is to road it, why not just make all improvements give a movement bonus similar to the road? The real need for a road would then be to connect resources, cities, and the prerequisite for railroads on mines, lumbermills and workshops. Obviously, players and AI would still need to connect all cities with roads to connect resources (think imperial roads and trade network), but there would no longer be any incentive to road just for the sake of the movement bonus, as it would already be integrated in the tile improvements. The movement bonus for roads still need to exist for those roads which run on unimproved tiles, but the movement bonuses should not add up.

To compensate for the time saved, all improvements should of course have their building cost slightly ajdusted.

What say Ye?

I am not a modder, so I do not know the requirements for this sort of thing. Does the worker AI need to be tweaked for this purpose?
 
I like this idea very much, because I've often lamented the extent to which roads and railroads are built. There really is no disadvantage for not doing it, aside from opportunity cost.

The downside to what you suggested: once railroad is discovered, you'll still end up with the same thing, because improvements that function as roads for movement purposes would still not have the railroad ability to move so many free tiles per turn.
 
Thank you for your interest, Gaius. I see what you mean. Ideally, when railroads are researched, the optimum solution would be if only the existing roadnetwork was upgraded. I have several solutions in mind, but I think the most elegant would be if the movement bonus (but NOT the production bonus for mines) extended to two adjacent tiles in every direction of the railroad within cultural borders. That would effectively make a single railroad line cover the fat cross of most cities. The building time of railroads obviously need to be multiplied by something like a factor of three, or even four.

I don't know if this is possible, though.
 
The fundamental problem with the current transportation system is that there is no downside to road-and-railroading every single tile that you can find. This is more an issue with the basic game mechanic than something that can be easily tweaked for a simple solution. Provided you have enough workers, why wouldn't you build roads everywhere?

The problem is that, in the real world, having manpower isn't all there is to it. Now, I hate to go a little off-topic here, but in another mod where we were discussing quantified resources, I proposed that you would add a resource cost to each road/railroad tile construction, so that a railroad might require 5 iron to build in one tile. Trouble is, in standard BTS there aren't any quantified resources, and we're only just starting to get into that area with the Resource Construction Mod. :D

A simple solution, I suppose, would be to add a gold cost to building a road or railroad. That way, it actually forces you to stop and think before you order a route built to a particular place. I doubt the AI would be able to understand it without reprogramming, though. And once again, in the late game, you'll probably have them covering every tile, since you'll have lots of money accrued by then.
 
Hmm. Does the AI understand Corporations well enough? I haven't played BtS yet, so I really don't know. I was also tossing around an idea which required you to found a national corporation (National Rail) by a GE, which would be the starting point and a requirement for the railroad. Then every turn, each railroaded tile costs 1 gold.
 
I thought about this a heck of alot in the months leading up to the release of civ4, and had many many involved debates about it.

What they went with was to get rid of the trade bonus from roads which had been present in 2 and 3, maybe 1 as well (can't remember).

Naturally enough, as widely predicted, this did little to end the practice of roads and rail in every square. They still offered the movement bonus, and building simple lines connecting cities and resources doesn't offer the same freedom of movement within the territory as having every single tile covered.

I had a few ideas I've long forgotten about which could still be of use.

I think the most obvious thing is that as long as there is no drawback to building roads in every tile, that's what will be done. It doesn't matter if there is no benefit or not. Sometimes workers will be idle, so they'll be assigned to do that - even if you were to do away with the movement bonus by allowing improvements to do the same.

The *only* way to get people to stop building roads in every tile is to assign a penalty or change.

There are alot of different ways that this could be done. But perhaps the best way would be to assign a maintenance cost of 1 gold per tile, and offset it with a cheap building that granted enough gold to pay for 5-6 tiles (ie yielded 5-6 gold) per city, or some other way of increasing revenues just the right amount that the road maintenance cost is offset.

This way, people would get picky about roads and rails, even late in the game. Tiles would *never* be roaded or railed unless there was a good reason to do so. You'd have simple lines connecting cities, and sometimes - where there were no rivers - connecting resources. Not much else.

You'd also get situations like the colonial practices in Africa, India, etc. In isolated overseas colonies built on a coast, reinforced mainly by sea rather than overland, there would be few or no roads connecting cities - you'd only have a few roads leading to resources in the interior, and then only if there were no rivers to connect them.

The BIG problem with this idea is that you couldn't build roads outside your cultural borders. Who would pay for them?

The only thought I've had about that is wondering if you could assign the penalty to the yield of the tile rather than to the road itself, i.e. if a tile can have negative yields.
 
Good ideas, frekk. I think I need to get a bit into modding, to try things out... :) that penalty idea is intriguing, it sounds like a very easy way to implement maintenance.
 
Would it be possible to make it so you CAN'T build roads or railroads without a certain building. Example, a city builds a rail depot, that depot now allows you to build 5 rail tiles (enough to connect it to another city). Something similar for roads, make national (and maybe even regular) wonders that give a big boost. Like Grand Central Station for a wonder and it gives 15 railroads! And the Central Line National Wonder could give an extra 2 RRs to each rail depot or something like that. Ofcourse, even if this is possible, would the AI understand it?


Kyle
 
Now that is something I'd really like to see, Tilarium. Makes sense -- you need a facility to operate the rails in addition to just building them.

Short answer: yes, it can be done (as can almost anything you could imagine) but it will require SDK work. Additionally, the AI almost certainly would not understand it off the bat, so you'd need to program it.
 
I think that might be the best way to do it. Set it so buildings are needed, as long as the AI can be made to understand this. It would know that priorities are connecting it's cities and resources and so it shouldn't build them everywhere it can.


Kyle
 
Idunno ... a total limit on the number of road tiles you can have might get a bit MMish ... giving roads a cost would give you a little more freedom, you wouldn't have to do any excruciating planning of your road system, just make an effort to not build anything unnecessary.

Of course, a combination of the two could be worked, like for instance, the building allows you to have 5 road tiles maintenance-free, everything after that incurs a penalty.

Another idea I had, which might be doable with just xml and python, is to only allow a worker to build 5 road tiles, and then he's retired from play. Again though, I doubt the AI would understand it.
 
Another idea I had, which might be doable with just xml and python, is to only allow a worker to build 5 road tiles, and then he's retired from play. Again though, I doubt the AI would understand it.

In that case, if you are talking about the worker actually being disbanded, the AI would not have to worry too much -- it would simply build another worker. :)
 
I have no doubt it would build replacement workers, but would it understand the need to be economical with roads, or would it just continue trying to road every tile? If it continued building roads the same way, it would severely handicap the AI. It might waste too much production on workers, or it might not and just waste the few workers it has tiling squares that aren't priority.

Actually you'd have to incorporate the 5 build limit for all improvements not just roads. Otherwise there'd be too much MM ... you'd be wanting to use workers to build as many non-road improvements first, and keeping individual track of which workers have and haven't built roads would be a real pain, even if there was a counter somewhere on the unit. Needless to say, workers would have to be alot cheaper too.
 
Ah, I see what you mean now...

Well, a solution could be to prevent it from building roads only, and not to destroy the worker outright. Yet in either case it would only slow the problem down, not fix it. A player (human or AI) still has no disadvantage to roading and railroading every tile, and would build as many units as necessary to accomplish that goal.
 
I'm sure you could write a python script that finds the least distance between two cities (and resources) and connects them with paths. These "paths" would just function as an improvment on the tile, which does nothing and has no movement bonus (but has graphics) and wouldn't be pillage-able. Then only allow workers to build roads on tiles with paths on them. Then only allow railroads on tiles with roads or tiles that have a mine/lumbermill/whatever on them.

Of course, you lose the freedom of being able to decide where roads go yourself, but on the bright side you probably wouldn't have to touch the AI.
 
I'm sure you could write a python script that finds the least distance between two cities (and resources) and connects them with paths. These "paths" would just function as an improvment on the tile, which does nothing and has no movement bonus (but has graphics) and wouldn't be pillage-able. Then only allow workers to build roads on tiles with paths on them. Then only allow railroads on tiles with roads or tiles that have a mine/lumbermill/whatever on them.


Wow!! Yeah, that would work great!!

Of course, you lose the freedom of being able to decide where roads go yourself, but on the bright side you probably wouldn't have to touch the AI.

Some people probably wouldn't like that. But on the other hand, this is basically how roads work in the real world. That's why many modern highways follow the path of old Roman roads which in turn follow the path of old Celtic routes. Or, in North America, native trade routes. If the script was written such that the "shortest path" was defined with an eye to skirting hills where possible (and where the detour was just a square or so) it would more or less replicate how most roads really are built.
 
Interesting idea, but what then becomes of resources? How are you going to connect them? Are you going to create these special routes between all resources and cities? And is this function going to run every single time a new city is founded?

Creating a Python script to do all this would be convoluted, a lot like the "circles upon circles" needed to fix the Ptolemaic model of the solar system. It's better to just scrap it and start with a new design, in this case, a system that gives you a disincentive to build roads.

First, why is it that not every "tile" on the real Earth has roads? Because 1) roads cost money and resources to build, and 2) they may inhibit activities there.

For instance, imagine giving a farm a -1 :food: if it has a major road network on it. This would represent the decreased area available for plowing and sowing. You could make the same arguments for plantations and other improvements, but then you run in the trouble of how to connect them.

In short, I don't believe a full solution to the road problem will ever be found until quantitative resources are adopted in Civ, because only then would you actually have to worry about tying up your resources in the production of roads. Sure, railroads need coal to be built right now, but only one coal plot is necessary, and that same one can supply all your powerplants and factories in the whole world, if necessary. It's just not realistic, and this is a slightly different way in which we run into that issue.

Maybe one day there will be an innovative solution that doesn't require this, but we'll have to wait and see...
 
First, why is it that not every "tile" on the real Earth has roads? Because 1) roads cost money and resources to build, and 2) they may inhibit activities there.

Well ... they pretty much do, especially in the vicinity of cities. Even if you define a tile as only 10 miles on a side, there aren't many inhabited areas that don't have roads. Except in extreme northern Canada or Alaska where travel is by boat-plane. But in civ, these would be tiles waaay outside any city radius ...

Maybe one day there will be an innovative solution that doesn't require this, but we'll have to wait and see...

I think a solution is certainly doable. Gold is a good way to inflict a penalty and it's fairly realistic, since roads cost alot of money to maintain. The only problem is getting the AI to think more economically about roads. I think it already has priorities, it's just a question of reducing low priorities to non-priorities.
 
I think I've got an idea which might work, which doesn't require a whole lot of modding. It's not perfect, but I don't think a perfect solution exists for this particular issue, given the current limit on quantified resources (or lack thereof). The idea is this:

1) When Railroad is discovered, all land units gain +1 to movement when inside cultural borders.

2) Railroads will still give the existing bonus to movement.

3) Workers cannot build railroads in all plots. Railroads can ONLY be built from cities, using the Route-to command, and only to other cities, resources or mines. The way the route-to currently works means that it'll always prefer the shortest distance taking advantage of any railroads already built, so it shouldn't be possible to create an elaborate network of railroads by attempting to connect all resources from all cities. Except maybe if you do it simultaneously by having a worker in every city and ordering all to route-to on the same turn, in which case you'll exploit any loophole anyways, so it shouldn't matter, and this mod wouldn't be liked by such players anyway... :D
 
You'd have to define the route-to command so that only resources or cities were legitimate targets.

Btw, not all "resources" are non-quantified. Gold (not the resource, the tax gold) is quantified.
 
Top Bottom