• We are currently performing site maintenance, parts of civfanatics are currently offline, but will come back online in the coming days. For more updates please see here.

Playing with Routes

Blazenclaw

eccentric eclectic
Joined
Sep 19, 2010
Messages
509
Spoiler Original Plans :
As part of a larger-than-expected change to improvements, I'll be making some alterations to the effectiveness of routes, and had a few very easily implemented changes I'll be introducing and balancing based on personal and player feedback.

1. Tweaking speed bonuses of routes.
Spoiler Full value breakdown :

upload_2020-12-6_23-59-6.png

A bit complicated, but- the top row collection is current values I'm proposing to change to (the blue boxes) and their resultant effects on the right. Bottom row is current road values, with the differences being noted by the Diffs box.
The three main boxes show how many tiles a unit can move based on its base move speed (the numbers at the top of the box, each column representing base speed from 1 to 6) and each row representing a route type (Trail to Jumplane; Highway0-2 represent the initial unlock of highway and the techs that make it better, in order of chronological unlock - Vac(sky) represents the Highway2 tech applied to Vactrain).
Tied at: is an interesting column; it shows the move speed a unit must have such that it is "tied" when racing a unit getting free movement from the route. Imagine a horse racing a train; if the unit has 2.22 movement it'll be neck-and-neck, any slower and it'll be better to ride the train, any faster and it's better at taking advantage of the infrastructure around the railway to move under its own power.
In short; Rail, eRail, Maglev, and Vactrain routes are less effective to varying degrees (in order to make them actually different) while Highway, Gravtrain, and Tunnel (sea routes) gain a slight buff. Highway vs eRail is an important choice; fast units move faster on highways than eRail, but slow units move faster on eRail than highways.

2. Plot type restrictions on route placement.
Spoiler Full (approximate) breakdown :
upload_2020-12-7_0-5-19.png

NOTE: These values are subject to change, this is a very preliminary example.
1 means it is available at the next tech (so Path on... Desert... terrain requires not The Wheel (Early Ancient era, but Roadbuilding from Early Classical), whereas fractional means something in-between.
The UI shows up on the build tooltip what tech is required, it'll be a bit of work yet to get it showing nicely in the pedia but other than that this is all easily (and already) done with currently available XML tags (but not in SVN quite yet).
In short; after Trails, more advanced routes can't be placed on rough terrain to a varying degree, requiring more tech before you can establish consistent infrastructure. Flat, good terrain will always have your best routes available, but routes through rougher terrain will remain behind your 'best' available route, making terrain relevant again until tech is high enough that you can ignore it completely.

These edits have been discussed a bit on discord, but I wanted to post it here as well to get some input from those only using CFC (notably @JosEPh_II and @strategyonly ), or really anyone who has ideas or input on the system. Cheers!

EDIT: Tossed up the spreadsheet I was using to calculate route costs/plan plot tech req's if anyone wants to mess around.
Route changes as of SVN 11265:
Three main changes:
  1. The speed gained from routes has been tweaked slightly for railway and higher in order to have a more sensical upgrade pattern. Highways are now significantly better for units that move quickly than units with slow movement.
  2. Routes require higher tech to place on rougher terrain, excepting trails.
  3. Some yield tweaks to route and improvement interactions (more to come).
Spoiler Details for nerds? :
See the attached excel sheet if you want to play around with how things work.

  1. See table:
    upload_2020-12-11_15-10-30.png

    Each of the three biggest boxed regions contains a plot of unit base movement speed (column) by route type (row); the boxed region at the bottom right breaks down relative differences as a result of these value tweaks. Bottom middle is the values before, top middle is values as a result of this SVN update.
  2. See table:
    upload_2020-12-11_15-16-48.png

    This table is a bit harder to read, but breaks down the plot types for which a higher tech is required to build a route on that terrain/feature. For example: on Badlands, trails can be built at the tech that unlocks them, but paths require the next tier of route tech (Roadbuilding), and so on until Paved Roads, which require Explosives instead of the next tier (Railroads). After discovering exposives, all routes can be built on Badlands with no tier penalty.
    Dunes is a bit more complicated; starts off the same, but Paved Roads cannot be built at all; instead, rails are unlocked at refrigeration. This continues (so Highways and eRails are OK), until Maglev which requires Industrial Ecology, and Vactube which requires Skyroads.
    Unfortunately, at the moment, the only place this info is visible is the tooltip that appears when you mouse over an unavailable worker build action... so you may need to have NOT enabled the "Hide unavailable worker build options" in the BUG menu at the moment if you want to see why a route isn't getting automatically improved, or you can't manually build one yet. That tooltip will tell you the tech(s) required.
  3. Lastly, there are some yield changes as a result of this, but they're still ongoing and quite small relative to other changes.
  4. Ideally I'd make it so that you can build Highways and eRails interchangably (one being better than the other at yields), but have hit some snags in the setup of the automation code, so it'll be a bit yet before that gets implemented. As of now, eRail will take precedence over Highway (as it did before).
 

Attachments

Last edited:
I like these ideas and it is great that you take care of this topic! I just hope that routing and automatic improvement of infrastructure can cope with it. It is good that highways are somewhat stronger now but still they probably won't be built anyway. I can't remember ever having seen one on a map and I have never built one, too. It also might be a hazzle (or fun for some players :) ) to try to build up 2 separate networks of rail and highway for the needs of slower and faster units. The problem will be that you can't have both on a tile. In real life that would be the case, of course there can be highways and railways in the same region...

BTW: What about city tiles: They always seem to have rail automatically built and not highways. If that is correct it would reduce the options to build separate networks for slower and faster units a lot.
 
I like these ideas and it is great that you take care of this topic! I just hope that routing and automatic improvement of infrastructure can cope with it. It is good that highways are somewhat stronger now but still they probably won't be built anyway. I can't remember ever having seen one on a map and I have never built one, too. It also might be a hazzle (or fun for some players :) ) to try to build up 2 separate networks of rail and highway for the needs of slower and faster units. The problem will be that you can't have both on a tile. In real life that would be the case, of course there can be highways and railways in the same region...

BTW: What about city tiles: They always seem to have rail automatically built and not highways. If that is correct it would reduce the options to build separate networks for slower and faster units a lot.
Good point about the city tiles - it's always going to be whatever the numerically most advanced available route is. The AI will always construct numerically the most advanced available route but that could be made to consider more details, particularly the cost to build the route as well. I'm also interested in seeing some route maintenance setup that would make it better to rail between major locations only but highway the rest for a while.
 
I just hope that routing and automatic improvement of infrastructure can cope with it.
Routing in the form of "Build road to" and shortcut R to build road on current tile work fine; automate infrastructure I'm currently making the fixes to so that it doesn't only build the most advanced route type regardless of terrain (currently it won't improve tile routes for which it can't build the most advanced route type on, which is something I need to fix before pushing to SVN).
It is good that highways are somewhat stronger now but still they probably won't be built anyway. I can't remember ever having seen one on a map and I have never built one, too.
That's what inspired this change, actually - I realized I never was building highways, and there was good reason not to before lol. Now it should be different, hopefully you will - units with 2+ move go further on highways, but I also made a few tweaks to yield changes from routes such that highways give more yield to civilian improvements (cottage-suburb, farm, etc) while rail gives yield to industry (mine, lumbermill, etc). This is only a thing for like half an era of course, maglev comes along pretty quick in information era and is strictly superior to both, but should make things a little more interesting. AI will need a bit of tweaking to understand this, but that'll come as I teach it how to terraform/featureform as well.
BTW: What about city tiles: They always seem to have rail automatically built and not highways. If that is correct it would reduce the options to build separate networks for slower and faster units a lot.
City tiles will be highways, correct. This makes sense because, ya'know, civvies like infrastructure to prioritize personal use rather than state requirements. Is my headcanon anyway :p
Regarding separate networks, it's less intense than you might think. Because diagonal movement is the same as cardinal, so long as you have a mix of route tiles you'll have the best of both worlds - or you can just plop one or the other everywhere for convenience.
The AI will always construct numerically the most advanced available route but that could be made to consider more details, particularly the cost to build the route as well.
Yup, at the moment they just put highway everywhere, but with a bit of work my next step in this is to teach them this difference.
 
Great information, I am looking forward to these changes!

With routing I meant just planning the path for a unit by right-clicking on the tile you want to go. In the past not always the best path was chosen, e.g. your move ended on the tile without movement points left but there would have been an alternative where you could move further on. I just would like to make sure that the AI really finds the quickest path between those tiles with different roads or railways.

Up to now "R" builds paths, roads or railroads, etc, whatever is available but never highways. Do you mean that with your changes "R" builds railroads on mines and highways on farms, whatever improves the yield? What is built on tiles where the yield is not improved at all?
 
On a side point can somebody point me to where I can change it back so that route upgrades require the full worker actions as if they were starting from scratch?

For example now if I want to upgrade a path to a road the worker can do it very quickly...I liked the old way where each upgrade was like building a new road
 
With routing I meant just planning the path for a unit by right-clicking on the tile you want to go. In the past not always the best path was chosen, e.g. your move ended on the tile without movement points left but there would have been an alternative where you could move further on. I just would like to make sure that the AI really finds the quickest path between those tiles with different roads or railways.
We MAY have identified the core problems in all this and are closing in on doing something about it hopefully before or during application phase of the unit project. Might not answer to all of it but should answer to some of the issues here at least.

Up to now "R" builds paths, roads or railroads, etc, whatever is available but never highways. Do you mean that with your changes "R" builds railroads on mines and highways on farms, whatever improves the yield? What is built on tiles where the yield is not improved at all?
This is because of the pure linear progression of paths and if the AI is taught to look at more, then it's likely automating will inherit at least some of that added depth so, maybe? Might take a bit more replicating that effort but not necessarily.

On a side point can somebody point me to where I can change it back so that route upgrades require the full worker actions as if they were starting from scratch?

For example now if I want to upgrade a path to a road the worker can do it very quickly...I liked the old way where each upgrade was like building a new road
There's a global boolean I think that toggles this but I can't recall the name of it.
 
Unfortunately I ran into complications trying to get the same-value highway and eRail to work; without majorly refactoring the route build automation logic (which does seem to be needed at some point...) there's not a good way to easily implement that. Instead, highways will be available for players to build over eRail if so chosen - the AI will simply never build them in the vast majority of cases (so, no change from before). This includes the route-to command; to build highways on a tile, use the reassigned Shift-R shortcut instead.

Will actually be on git today lol.

On a side point can somebody point me to where I can change it back so that route upgrades require the full worker actions as if they were starting from scratch?
In Assets\XML\A_New_Dawn_GlobalDefines.xml find <DefineName>ROUTES_UPGRADE</DefineName> and set the value to 0 from 1.
 
IMO, after relevant tech is researched, it should be possible to build route on any terrain. Only cost should vary.

If any changes should be made to route system of this mod, it is cost of building and maintaining routes. IMO, meaningful changes would be:
Player can build routes on any applicable terrain after relevant tech is researched.
Cost of route should depend on terrain features. Forest naturally requires more work to place a road there. Jungle even more.
Route in player territory costs base amount. Route outside player territory should cost increased amount for building it.

Each type of route inside player territory should cost maintenance. The more sophisticated the route, the more the cost.
Routes outside player territory can be build, but cost no maintenance. However, they disintegrate over time.

World Wonders like Silk Road may prevent routes outside player territory from disintegrating.
 
Only cost should vary.
While I agree the cost needs work, that's not going to be fixed any time soon- at the moment, gold gets so inflated, that gold utterly becomes a non-issue and any cost-considerations become pointless after a certain point, and you're going to end up building the best route possible everywhere. Maintenance costs in theory could be implemented, but that's considerably more work both to code, get the AI to understand, get UI shown to player, not to mention balance... these changes, meanwhile, were accomplished almost entirely through existing xml tags (so, far easier to work with).

Route degradation outside of owned territory is interesting and something to add at some point, probably whenever route maintenance is added (as is the goal to, at Some Point).

What is your primary objection to the route/terrain interaction as it is now- that it's annoying to move units, slower to move, looks visually odd, or just that it's new and different?
 
My main objection is that it kills game fun completely. To the point that I'd rather choose to stop playing C2C.

With this Mod building routes became a tedious, mundane task. I normally pre-plan route Worker will take to lay out roads. To avoid "empty" Worker moves.
Now I'll have to add to this considerations "Can I actually build a route there?" I'd have to study otherwise completely useless info. Add to this that this useless info is constantly changing, Mod being under development.
I was made a tester without my consent.

No. I'd rather stop playing this mod. Because I play games for fun. You know? Computer game fun? Some challenges that give you a false feeling of accomplishment while you sit on your ass doing nothing?

If you look at successor Civilization titles, developers simplified road building ever further. In Civ 6 you have to connect cities only. Roads only represent "trade routes" there.
So I'm completely sure that this Mod took a very wrong turn.
 
My main objection is that it kills game fun completely. To the point that I'd rather choose to stop playing C2C.
That's a strong opinion. If I can't convince you otherwise, I'll see if making it into a game option is possible; "advanced routes", perhaps? Will take a bit of looking into how those work, though (and in the meantime, you can always roll back to SVN 11264 if you're unwilling to change).
I normally pre-plan route Worker will take to lay out roads. To avoid "empty" Worker moves.
This, I don't quite follow. Could you elaborate here?
My reading of it is that you're trying to map an optimal path for workers to move such that they can move onto a tile and still have move actions to build route + improvement, or some such... but that seems infeasible (even impossible if you have multiple workers, which you really should lol), so I'm not sure what you're doing and how this change makes it worse. For starters, you can identify if a worker can build a route on a tile by hovering the go-to command on the tile, so...
I'd also like to point out that if building routes is a "tedious, mundane task" (even before these changes) - and you're looking to play games for fun - why not have a handful of workers on automate network? That would seem to solve some issues, and get you to the parts of the game you enjoy playing, no?
I was made a tester without my consent.
Err.... this is the SVN (beta) you're playing on, which is meant for playtesting the newest changes and people who want the newest content. In that sense this feedback is useful, because I don't think you're going to be the only person with this mindset, which is why I am legitimately hoping you can provide reasons for why you don't like this and how it could be best implemented.
As it currently is though, it does seem to me that your current playstyle is best served by workers running automate network, which is kinda what I'd expect, so I'm probably misunderstanding something or you haven't realized some aspect :dunno:
If you look at successor Civilization titles, developers simplified road building ever further.
Looking for simplicity in C2C is... I'd ask if you even play the mod, but :crazyeye:
Joking aside, the point of this mod is to be in the opposite design directions of Civ5/6 etc; more detailed content, rather than less. Having terrain becomes completely ignorable when it comes to routes is something that always bothered me, so... here we are lol.
 
In fact I like the new system! It makes the map and handling of it much more important. While I might have some concerns if the AI can handle it well for me there are more important decisions to make:
Should I lead my units over the hills or build paths around it?
Is it really worth to build that long road around the forest to be able to trade between my cities?
Should I focus on a technology to be able to build that path across the hills?
And maybe most important: Cities in plains with few forests now become more interesting, in the past I have always preferred those hilly and forested regions.
 
That's a strong opinion. If I can't convince you otherwise, I'll see if making it into a game option is possible; "advanced routes", perhaps? Will take a bit of looking into how those work, though (and in the meantime, you can always roll back to SVN 11264 if you're unwilling to change).
Very easy. In the game options xml you add the option to the end of the list (important), create the text references and define them, and add the option to CvEnums.h at the end of the list. Then wherever the coding differs, switch from original to option processing logic with if (GC.getGame().isOption(GAMEOPTION_YOUR_OPTION)).

I sorta saw this coming since no design concept ever gets 100% approval.
 
This, I don't quite follow. Could you elaborate here?
My reading of it is that you're trying to map an optimal path for workers to move such that they can move onto a tile and still have move actions to build route + improvement
Elaborating.

Take a look at Numpad on your keyboard. City is in 7. Resource is in 6.
Primary objective: connect resource in 6 to a city in 7.
Secondary objective: Create route network around the city, since Worker will have "spare time" after completing primary objective and it is good in general to promote Worker, so XP must be harvested. And routes make units move faster! Win+Win!
Implementation:
Worker is built in city.
Worker moved to 5, started building path.
Worker moved to 6, started building path.
Primary objective completed.
Worker moved to 9, started building path.
Worker moved to 8, started building path.
Worker moved to 4, started building path.
Worker moved to 1, started building path.
Worker moved to 2, started building path.
Worker moved to 3, started building path.
Secondary objective completed.

No "empty" moves. In other words, if Worker moves to a plot, he performs a work there.

I'd also like to point out that if building routes is a "tedious, mundane task" (even before these changes) - and you're looking to play games for fun - why not have a handful of workers on automate network?
Because Worker costs maintenance. Higher the difficulty, higher the total maintenance on units.
So I have to compensate fewer Workers with more efficient use of each Worker.
Considering that I can store around 600 subdued animals, my maintenance on Emperor difficulty will be huge for civil units. Resulting in negative cash flow each turn. I use subdued animals for expanding borders of newly founded cities as soon as the city is founded.

Because efficient use of units makes me better than AI.
I do put Workers on automated "Improve infrastructure (routes only)" task, after I connect all cities and fortresses with newest routes. And then I painfully watch how Worker runs from one part of my empire to put a path there, then returns to a place where automation started to put a path there, then runs to a third corner of my empire... Chaotic behavior. I have to watch my Workers because I have to follow them with my Trained Dog units. To keep Workers safe from enemy Ambusher or Thief.
BTW, did you know that Trained Dog cannot be put on Automate Protect task? :crazyeye:

Err.... this is the SVN (beta) you're playing on, which is meant for playtesting the newest changes and people who want the newest content.
Really? It always seemed to me that it's for latest bug fixes and implementation of huge number of ideas which were sitting in C2C forever without proper implementation. Like religious buildings not working when religion is not adopted. Or still not realized properly "zone of control". Or "size matters".

I am legitimately hoping you can provide reasons for why you don't like this and how it could be best implemented.
Because you made one aspect of a game a tedious, not-in-a-slightest-interesting task. Like grinding in any MMO game. Which is precisely why I don't play MMO. At least after grinding you get something. Like stuff or XP.

What do I get in case of "advanced routes"?
1) A headache.
2) Less XP for my Worker.
3) Less movement for my units on certain plots.
4) Less efficiency of Worker, because he has to make many empty moves to do the job he couldn't finish.
Positives? :confused:

I used to play C2C while listening to a talk show on YT or podcast. Nice, relaxing gameplay with some flexing of a brain. Not brain twisting!

Anyway, I have to make a pause in C2C. Many fantastic games were left without attention they deserve.

Still, C2C is the best. Plays Civ4 in a way it was meant to be played. Huge thanks to devs of this mod. :thumbsup:
 
This makes sense because, ya'know, civvies like infrastructure to prioritize personal use rather than state requirements. Is my headcanon anyway :p

people don't just ''naturally'' prefer highways, they just use them a lot more in certain countries (such as the US) because there are more of them. In, say, Japan, most people would much rather have new railway routes out of their cities than new highway routes
 
sounds like adding best buildable route to plot tool tip might be good.
Hmm on a tile with existing route X and route evaluation done by internal value only, could be something like
Route: X (Best: Y)
I'd kinda hoped to get away from routes being strictly monotonically increasing... but oh well.
Very easy. In the game options xml you add the option to the end of the list (important), create the text references and define them, and add the option to CvEnums.h at the end of the list. Then wherever the coding differs, switch from original to option processing logic with if (GC.getGame().isOption(GAMEOPTION_YOUR_OPTION)).
Thanks; there's no logic differential here, just entirely xml changes, so it shouldn't be that bad.
people don't just ''naturally'' prefer highways, they just use them a lot more in certain countries (such as the US) because there are more of them. In, say, Japan, most people would much rather have new railway routes out of their cities than new highway routes
Dang, you're absolutely right. It also comes down to a a weirdness with a tile only being able to have one or the other... honestly, the best move might just be to move eRail to be mid-late Information so that it goes (industrial) rail -> (atomic) highway -> (information) eRail and do away with the movement dichotomies.
Elaborating.
Thank you for the detailed explanation; been busy for a bit, apologies for not responding yet. My stance is still to hope to convince you otherwise... but before the month's end I hope to get it in as an option ^.^;
Re: Create Network, I see a few scenarios:
  1. Improving the empty tiles of a newly-founded city: In this case, there are no existing improvements or routes, and so the changes introduced with 'advanced routes' have no bearing on your algorithm for optimal route improvement. Move to a tile, hit 'R' on your keyboard (or hold shift and successively use the route-to command), and the best routes are built on each tile, same as before.
  2. Semi-improved terrain: Perhaps you've pre-built some infrastructure, or are manually commanding some workers while other workers are on automate (this is how I play sometimes, though usually manually control all). Here, the algorithm is trickier and it's not really feasible to fully optimize a path with your algorithm regardless or not of 'advanced routes' (unless you're really into solving optimization problems, which it sounds like you're NOT going for?), but regardless: You're still going to want to improve tiles without any route before improving tiles with outdated routes; there's a greater return from unimproved to paved road than path to paved road, for example, which is true regardless or not of 'advanced routes'.
  3. Improving routes after main tech upgrade: Without advanced routes, this is basically the same as scenario 1, replacing 'unrouted' with 'old routes' as visually identified. With ad. routes on however, main route unlocks are a bit more complicated because it's less easy to visually identify the differences. That being said, it functionally remains the same as scenario 1: all tiles can be improved by one tier (but what that tier is varies per tile). In this manner if you want to manually do it, using shift and route-to in a spiral around a city center will get everything pretty easily (as the tiles will already at least have some route on them...), the remainder falling into scenario 4-
  4. Improving routes after terrain tech upgrade: Say you've just unlocked Surveying tech, and can now build paved roads on hills, or you have some unimproved routes in your territory for whatever reason. This is really what having a handful of AI workers on automate infrastructure is for- it's easier for the computer to scan for improvable terrain than a human, which is true regardless of 'advanced routes' (but the computer is comparably better at it with the option on). The gain from expending time searching for those few tiles where you're missing an upgraded route is... not worth the mental energy, and really not needed even for optimal play.
Because Worker costs maintenance. Considering that I can store around 600 subdued animals, my maintenance on Emperor difficulty will be huge for civil units. ... Because efficient use of units makes me better than AI ... I have to watch my Workers because I have to follow them with my Trained Dog units.
600 seems... excessive. If you have so many that it's eating into your income, that is a much better source of optimization (reducing that number) than micromanagement of workers :lol:
Also, I think you can group workers and military units, and send the group on the auto-improve mission, no?
Really? It always seemed to me that it's for latest bug fixes and implementation of huge number of ideas which were sitting in C2C forever without proper implementation. Like religious buildings not working when religion is not adopted. Or still not realized properly "zone of control". Or "size matters".
A "main release" version is just a SVN build that is deemed particularly stable, or one after a round of bugfixes. ZOC is not really well implemented in either SVN or main, but there's no difference between the two because nobody's been doing work on it recently. "Size Matters" is pretty well implemented though!
What do I get in case of "advanced routes"?
1) A headache.
2) Less XP for my Worker.
3) Less movement for my units on certain plots.
4) Less efficiency of Worker, because he has to make many empty moves to do the job he couldn't finish.
Positives? :confused:
  • More natural development of terrain, more importance of terrain
  • "Realism" (lol, but seriously; it's just as easy to build a mud path on plains as dunes? literal ice? Hills represented real logistical challenges for long distance cargo transport up until/thru middle ages...)
  • More visual variety of map (not homogenous spam literally everywhere)
  • Less movement means more tactical placement - makes strategic location of cities or routes or forts have more meaning
  • Less XP for worker is same for you and for AI- no difference there, doesn't matter
 
Back
Top Bottom