[mod idea] Worldmap road building

Started by Loconeko73, December 05, 2018, 12:13:16 AM

Previous topic - Next topic

Loconeko73

Quote from: Comrade Corwin on January 07, 2019, 09:31:35 AM
I'm getting this error on upload:

XML error:

....

I don't understand enough about coding in RimWorld to have any idea of the problem. Just thought I'd let you know what's up!

Thanks for the bug report!

This error was fixed in the latest version of the mod (uploaded about 18 hours ago). Could you try uninstalling & reinstalling and let me know if you still get this?

Thanks!

Loconeko73

Quote from: NazarDoe on January 07, 2019, 03:35:10 PM
Could you add a mapping of the required amount of resources without a caravan?

It's on my roadmap!

Loconeko73

Quote from: Mehni on January 07, 2019, 04:43:41 AM
I'm just wondering why you'd use those stats. As far as I can see, both the ConstructionSpeed and ConstructionSuccessChance return 1 for pawns without a SkillTracker. Such as animals. Maybe I'm wrong though.

It's a nice touch -- but maybe you're better off using manipulation/sight instead :)

Thanks, Mehni. I really appreciate your feedback. To be honest, I just picked the first value that seemed to work, and made sure animals would never do more than double the work provided (sorry, no trowel-yielding muffalo!) I'll take a closer look at pack animals to see if I can find a value that makes more sense.

But construction for humans gives results I'm happy with.

Canute

Ok, i just took a first look at the road construction.
Basicly it is nice, but the resource need is heavy.
I want to build a stone road and need 1800 stones.
The regular map size is 300x300 tiles. So a road need to be 300 tiles long and 3 tile's wide.
300 * 3 * 4 stone blocks = 4800 blocks, so 1800 isn't that bad ! :-)

But when you want to build a longer road, your map will be abundand of stone sooner or later.

So my idea are, when the caravan run out of resources they should gather them from the local map and need 2-3 times the workamount.
Except Chemfuel, since this need to be manufactured.

Loconeko73

Quote from: Canute on January 09, 2019, 09:47:46 AM
Ok, i just took a first look at the road construction.
Basicly it is nice, but the resource need is heavy.
I want to build a stone road and need 1800 stones.
The regular map size is 300x300 tiles. So a road need to be 300 tiles long and 3 tile's wide.
300 * 3 * 4 stone blocks = 4800 blocks, so 1800 isn't that bad ! :-)

But when you want to build a longer road, your map will be abundand of stone sooner or later.

So my idea are, when the caravan run out of resources they should gather them from the local map and need 2-3 times the workamount.
Except Chemfuel, since this need to be manufactured.

Canute, I like the way you think !

From the beginning, it was clear to me that costs are too high to be very practical (hence the 10% to 100% slider in the settings) but too low to be realistic.

There are 2 solutions that I can see : the first one is to get help from ally factions (already working on it)

The second one is to gather resources from your surroundings as you suggest, a la Syrchalis' "setupcamp" but only for roads. The idea then would be to implement the following (optional) feature:

- The ability to build stone & asphalt roads now requires research. (I think making dirt roads & path should be technology independent)
- Those technologies allow the player to craft construction kits & advanced construction kits that can be put into caravans. Those are heavy machines, requiring all the valuable stuff we Rimworlders love to hate (components, maybe advanced components, steel, etc)
- The kits provide resources in situ when used by caravans on construction sites. The amount of resources available can be based on the biome, the best miner in the caravan, etc. A kit is operated by one pawn (can't have more kits than pawns). Even chemfuel can be obtained, but just to make asphalt (in other words, the kits never give resources usable for any other purpose than road building)
- When this feature is enabled, resource costs become massive (in the tens of thousands) but because the kits provide resources and scale up with the number of pawns in the caravan, it just becomes a matter of time, which in turn can be offset by having many pawns in the caravan (road building is, after all, a team effort !)

This would achieve higher & more realistic material costs, as well as longer build time but would end up potentially quicker as long as the player properly invests in the construction kits & crews.

I have the feeling this could work, and pretty well !

Canute

- Basicly you only need special research for Asphalt road, since you build stone floor from the beginning.

- I would also suggest that Dirt road's don't need any resources, since you only trample on the path to harden the underground and remove vegetation.

- When you update Dirt road on Stone road, you would just need the half work.
- From Stone to Asphalt, half work, half resource need.

- You don't need to create extra map's ala setupcamp for resource gathering. That's too much micromanging i think. Just let the workamout increase if the constr. site don't got the nessesary resources.

- construction kits instead of resources, which provide x% of the road construction.

- building mashines would be nice too. Maybe create a robot animal (look at Android tiers mod for that) that need chemfuel and greatly enhance the workspeed on road build.

Deathend

since last upodate i get new maps devoid of plants and mountains/hills and i get a log full of the same error

inside that error apears this

Trying to get valid region at (110, 0, 118) but RegionAndRoomUpdater is disabled. The result may be incorrect.
Verse.Log:Warning(String, Boolean)
Verse.RegionGrid:GetValidRegionAt(IntVec3)
Verse.RegionAndRoomQuery:RegionAt(IntVec3, Map, RegionType)
Verse.RegionAndRoomQuery:RoomAt(IntVec3, Map, RegionType)
Verse.GridsUtility:GetRoom(IntVec3, Map, RegionType)
Verse.<TryFindCentralCell>c__AnonStorey1:<>m__0(IntVec3)
Verse.CellFinderLoose:TryFindRandomNotEdgeCellWith(Int32, Predicate`1, Map, IntVec3&)
Verse.CellFinderLoose:TryFindCentralCell(Map, Int32, Int32, Predicate`1)
RimWorld.GenStep_FindPlayerStartSpot:Generate(Map, GenStepParams)
Verse.MapGenerator:GenerateContentsIntoMap(IEnumerable`1, Map, Int32)
Verse.MapGenerator:GenerateMap_Patch0(IntVec3, MapParent, MapGeneratorDef, IEnumerable`1, Action`1)
Verse.Game:InitNewGame_Patch2(Object)
Verse.Root_Play:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

Loconeko73

Sorry I've been mostly on Discord, not on the forum.

The error above has been corrected, and the mod is now out of Beta. Still being actively developed, though !

Anyone who tries it, please feel free to report issues, bugs or ideas. And if you feel like it, support me on ko-fi!

tensheapz

#38
Firstly thanks for making a great mod!

I think the latest update (20 h ago) which was supposed to add Glitter roads broke a couple things:
- Wood cost now nonexistent for all road types (perhaps something to do with renaming Wood to WoodLog in code, but in the XML it is still called Wood)
- Work cost of everything seems to have by default been reduced down to 10% cost. It looks like existing games keep their previous effort value (for me it was 1, so under the new system means 10% cost)

Crestrisen

Praise you for making this mod. Such fantastic synergy with Set Up Camp, among others.

Quote from: tensheapz on February 18, 2019, 05:00:02 AMI think the latest update (20 h ago) which was supposed to add Glitter roads broke a couple things:
- Wood cost now nonexistent for all road types (perhaps something to do with renaming Wood to WoodLog in code, but in the XML it is still called Wood)

Exactly right. I've been gradually working on a custom version of 1.0.2408, and that was extremely helpful. I'm a total novice, but simply using Notepad++ to do a 'find in files' for all instances of wood in the RotR mod folder and replacing the ones used to define a resource with WoodLog fixed it. Huge thanks for mentioning that.