[1.1] Giddy-up!

Started by Roolo, December 01, 2017, 04:46:29 AM

Previous topic - Next topic

Roolo


Update

Giddy-up! Core -> v18.7.5
- Fixed problem involving two pawns trying to ride the same animal resulting in one pawn being invisible until it dismounts the animal
- Fixed problem occuring when a rider enters a drop pod with the animal it's riding, resulting in the animal dissapearing.

Giddy-up! Ride and Roll -> v18.1.6
- Pawns now only mount animals when the animal is at least some minimal distance away from the job. This distance can be configured in the mod settings.
- Animals no longer wait for their rider when the rider is starting a research job.
- Pawns will now do a better job at selecting the animal that will get them to the job quickest.
- Pawns no longer auto-mount animals that are forming a caravan.
- Fixed missing translations


Quote from: s44yuritch on March 30, 2018, 10:24:39 AM
A feature that might be a bug: if you have active colonists at all times (night owls, for example), then animals might be ridden to the brink of exhaustion. Happened to my timber wolf - when he finally got to sleep, I had the 'animal starvation' message. Turned out the wolf was used by the builder and miner in turns, both of whom went across the map to do their jobs. The wolf apparently had no chance to eat or rest during that, and both rest and food need bars were almost at 0.

Maybe the animals with low levels in either should not be picked for riding to job?

Good suggestion. I never had this problem, but I can imagine it can occur, and it should be prevented. I saw your message a bit too late, so it's not in the update I just released yet, but I'll remember it for the next update. Until then I suggest micromanaging it by going to the animals tab and forbid auto-mounting for animals that are exhausted (shouldn't happen very often, so it's not that annoying to micro manage until the next update).

Canute

Maybe pawn should focus on animal's they are master rare for riding.
And pawn's without assigned animal should only used free animals.
That would reduce the double use of animals.

Sure when both pawn and animal's are free, it still can happen. So maybe an auto master assignment, when a pawn use a free animal.


coldcell

I notice that with Ride and Roll, this happen sometimes:

Pawn A has a job in Area B that require materials from Stockpile C. So A mounts to B, dismounts, the run to C while the mount is waiting in B, then A runs back from C to start working in B.

So it makes the trip inefficient. What I see happen a lot is my doctors behaving this way (most noticeable because I keep watch to make sure the injured are tended asap). They mount to the hospital, dismounts, then go to my medicine stockpile (for some dumb reason I didn't put the medicines in the hospital..), then runs back to tend the injured. It happens with several other jobs too like for workbench, they discounts right before the workbench and runs manually to get the materials.

I'm not sure why this problem occurs if anyone else notices it too.

s44yuritch

Another suggestion: don't auto-mount any animals which have untreated injuries. I've observed a pawn mounting and riding a bleeding animal. During that time the animal could not be healed by the doctor as it was 'busy'.

Roolo

Quote from: coldcell on March 31, 2018, 12:29:13 AM
I notice that with Ride and Roll, this happen sometimes:

Pawn A has a job in Area B that require materials from Stockpile C. So A mounts to B, dismounts, the run to C while the mount is waiting in B, then A runs back from C to start working in B.

So it makes the trip inefficient. What I see happen a lot is my doctors behaving this way (most noticeable because I keep watch to make sure the injured are tended asap). They mount to the hospital, dismounts, then go to my medicine stockpile (for some dumb reason I didn't put the medicines in the hospital..), then runs back to tend the injured. It happens with several other jobs too like for workbench, they discounts right before the workbench and runs manually to get the materials.

I'm not sure why this problem occurs if anyone else notices it too.

Thanks for your feedback. I also noticed this, and it's something I'll improve. The thing is that there's no reliable way to determine the first target of a job. In the job, possibly three target objects (A,B, and C) are stored. Very often A is the first target, but for some jobs it's not. So I'll have to test for each job if A is actually the first target. I didn't do this yet because bugs had my priority, but I'll improve it in the next update.

Quote from: s44yuritch on March 31, 2018, 02:00:03 AM
Another suggestion: don't auto-mount any animals which have untreated injuries. I've observed a pawn mounting and riding a bleeding animal. During that time the animal could not be healed by the doctor as it was 'busy'.

Also a good suggestion. I'll process it in the next update.

Quote from: Canute on March 30, 2018, 01:07:25 PM
Maybe pawn should focus on animal's they are master rare for riding.
And pawn's without assigned animal should only used free animals.
That would reduce the double use of animals.

Sure when both pawn and animal's are free, it still can happen. So maybe an auto master assignment, when a pawn use a free animal.

I'd rather just make sure that when the food or sleep bar is below a certain threshold, auto-mounting cannot happen (you could still manually mount though). This is less intrusive, and completely prevents any problems.

Ruisuki

Quote from: rooloImportant note about caravan speed
There's currently a limitation in altering the caravan speed. In the vanilla code, even if a caravan has the speed of light, it still requires a fixed time to pass each tile. This time depends on what season it is, and the terrain, and not on the caravan speed. However, I'm currently working on an update that makes sure the caravan speed bonuses also affect this 'fixed' time.   

Not sure if this has been updated already but does this mean that ordinarily pawns can go slower than the fixed tile time on the world screen if not benefiting from the caravan speed bonuses? And that at the moment, the fastest travel time(full party riding fastest animals) in the best circumstances for a caravan, is the listed time for the tile?

Roolo

Quote from: Ruisuki on March 31, 2018, 07:05:57 PM
Quote from: rooloImportant note about caravan speed
There's currently a limitation in altering the caravan speed. In the vanilla code, even if a caravan has the speed of light, it still requires a fixed time to pass each tile. This time depends on what season it is, and the terrain, and not on the caravan speed. However, I'm currently working on an update that makes sure the caravan speed bonuses also affect this 'fixed' time.   

Not sure if this has been updated already but does this mean that ordinarily pawns can go slower than the fixed tile time on the world screen if not benefiting from the caravan speed bonuses? And that at the moment, the fastest travel time(full party riding fastest animals) in the best circumstances for a caravan, is the listed time for the tile?

Whoops, this text should have been updated a long time ago. In an update, I think 2 months ago, it was solved. So Giddy-up caravan affects the fixed time (not so fixed anymore ^^)  as well as the the time that normally depends on pawn speed. I'll update the text now.

Ruisuki


ertzuiop

Hi Roolo
I thought that my errors appearing related to your mod, because they started after installing GiddyUpRideAndRoll.
And i didnt said i had the same error as The Real Soviet.
I guess the reason, it doesnt appear in the log is, that i had to take it out the list. There was no other way to get the log, because with GiddyUpRideAndRoll i always get a "failed to collect data" error.
Debug log says:
[HugsLib][ERR] Exception during PrepareLogData: System.OutOfMemoryException: Out of memory
  at (wrapper managed-to-native) object:__icall_wrapper_mono_string_alloc (intptr)
  at (wrapper managed-to-native) string:InternalAllocateStr (int)
  at System.Text.StringBuilder..ctor (System.String value, Int32 startIndex, Int32 length, Int32 capacity, Int32 maxCapacity) [0x00000] in <filename unknown>:0
  at System.Text.StringBuilder..ctor (System.String value, Int32 startIndex, Int32 length, Int32 capacity) [0x00000] in <filename unknown>:0
  at System.Text.StringBuilder..ctor (Int32 capacity) [0x00000] in <filename unknown>:0
  at System.String.ReplaceFallback (System.String oldValue, System.String newValue, Int32 testedCount) [0x00000] in <filename unknown>:0
  at System.String.ReplaceUnchecked (System.String oldValue, System.String newValue) [0x00000] in <filename unknown>:0
  at System.String.Replace (System.String oldValue, System.String newValue) [0x00000] in <filename unknown>:0
  at HugsLib.Logs.LogPublisher.NormalizeLineEndings (System.String logSection) [0x00000] in <filename unknown>:0
  at HugsLib.Logs.LogPublisher.PrepareLogData () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
HugsLib.Utils.ModLogger:ReportException(Exception, String, Boolean, String)
HugsLib.Logs.LogPublisher:PrepareLogData()
HugsLib.Logs.LogPublisher:BeginUpload()
HugsLib.Logs.LogPublisher:OnPublishConfirmed()
Verse.Dialog_MessageBox:DoWindowContents(Rect)
HugsLib.Utils.Dialog_Confirm:DoWindowContents(Rect)
Verse.<WindowOnGUI>c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

The main issue i encounter when using GiddyUpRideAndRoll is that all my pawns disappear and a couple of secs later the game ends.

Roolo

Quote from: ertzuiop on April 01, 2018, 02:27:05 PM
Hi Roolo
I thought that my errors appearing related to your mod, because they started after installing GiddyUpRideAndRoll.
And i didnt said i had the same error as The Real Soviet.
I guess the reason, it doesnt appear in the log is, that i had to take it out the list. There was no other way to get the log, because with GiddyUpRideAndRoll i always get a "failed to collect data" error.
Debug log says:
[HugsLib][ERR] Exception during PrepareLogData: System.OutOfMemoryException: Out of memory
  at (wrapper managed-to-native) object:__icall_wrapper_mono_string_alloc (intptr)
  at (wrapper managed-to-native) string:InternalAllocateStr (int)
  at System.Text.StringBuilder..ctor (System.String value, Int32 startIndex, Int32 length, Int32 capacity, Int32 maxCapacity) [0x00000] in <filename unknown>:0
  at System.Text.StringBuilder..ctor (System.String value, Int32 startIndex, Int32 length, Int32 capacity) [0x00000] in <filename unknown>:0
  at System.Text.StringBuilder..ctor (Int32 capacity) [0x00000] in <filename unknown>:0
  at System.String.ReplaceFallback (System.String oldValue, System.String newValue, Int32 testedCount) [0x00000] in <filename unknown>:0
  at System.String.ReplaceUnchecked (System.String oldValue, System.String newValue) [0x00000] in <filename unknown>:0
  at System.String.Replace (System.String oldValue, System.String newValue) [0x00000] in <filename unknown>:0
  at HugsLib.Logs.LogPublisher.NormalizeLineEndings (System.String logSection) [0x00000] in <filename unknown>:0
  at HugsLib.Logs.LogPublisher.PrepareLogData () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
HugsLib.Utils.ModLogger:ReportException(Exception, String, Boolean, String)
HugsLib.Logs.LogPublisher:PrepareLogData()
HugsLib.Logs.LogPublisher:BeginUpload()
HugsLib.Logs.LogPublisher:OnPublishConfirmed()
Verse.Dialog_MessageBox:DoWindowContents(Rect)
HugsLib.Utils.Dialog_Confirm:DoWindowContents(Rect)
Verse.<WindowOnGUI>c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

The main issue i encounter when using GiddyUpRideAndRoll is that all my pawns disappear and a couple of secs later the game ends.

It's crashing because you're running out of memory. One mod too many I guess :). Closing any background tasks you don't need and uninstalling any mods you don't use will help.

ertzuiop

No memory crashes here. Without GiddyUpRideAndRoll it lets me upload game log in no time.
Using all other GiddyUp mods without problems, but only this one gives me issues. Cant even start a new game, it wont let me generate the planet.



Roolo

Quote from: ertzuiop on April 02, 2018, 01:35:13 PM
No memory crashes here. Without GiddyUpRideAndRoll it lets me upload game log in no time.
Using all other GiddyUp mods without problems, but only this one gives me issues. Cant even start a new game, it wont let me generate the planet.

Yet the output log you posted shows:
System.OutOfMemoryException: Out of memory
  at (wrapper managed-to-native) object:__icall_wrapper_mono_string_alloc (intptr)
  at (wrapper managed-to-native) string:InternalAllocateStr (int).

Which makes me believe it is caused by running out of memory. Do you also have the problem when disabling all, or a significant amount of mods except the Giddy-up ones? It could be that ride and roll is just the one final mod that brings you over the 4gb limit of 32-bit Rimworld, assuming you're using a Windows machine. Could you also check (with task manager) how much memory Rimworld uses with Ride and Roll disabled, and with ride en roll enabled?

ertzuiop

Disabled about 50 mods and still same problems. Memory constant at 2.7GB with or without Ride and Roll. The problem is not my memory.
Attached a Screenshot were you can see the issues it causes.
Moody is kinda disabled and the pink square is the orbital relay of the mod MiningCo. Spaceship.
And as you can see, all of my colonists are gone, which leads to game over.


[attachment deleted due to age]

Roolo

Quote from: ertzuiop on April 03, 2018, 01:58:48 PM
Disabled about 50 mods and still same problems. Memory constant at 2.7GB with or without Ride and Roll. The problem is not my memory.
Attached a Screenshot were you can see the issues it causes.
Moody is kinda disabled and the pink square is the orbital relay of the mod MiningCo. Spaceship.
And as you can see, all of my colonists are gone, which leads to game over.

Hmm. That's really strange, so you're really sure this doesn't happen when you disable Ride and Roll? I know you already mentioned this more or less, but I need to be really sure it's really Ride and Roll causing it before I start investing a lot of time into resolving it for you. 

A few more questions:
- Do you use the Steam version or the Github one?
- What's the total memory you have on your system?
- Is there any way I can chat with you, maybe through steam or discord?






Madman666

I think i heard somewhere that RW still loads some stuff from mod folders even if the mod itself is disabled. Maybe its worth trying to move everything from your mods folder, since vanilla RW shouldn't eat up so much memory. The only way to solve memory issues completely for now is to use linux version of RW sadly. I doubt 64bit version of RW comes to Windows anytime soon...