Courseplay / courseplay

Courseplay for Farming Simulator 2019
http://courseplay.github.io/courseplay
GNU General Public License v3.0
953 stars 528 forks source link

Generating field course crashes game #137

Closed MGO63 closed 10 years ago

MGO63 commented 11 years ago

Generating a field course with headland on a non rectangle field may crash the game, if the working width is bigger than the field indentation.

For example field 7 on default map. Generating a field course, working width 25 m and headland will stop the game. Generating a course with 15 m will works without problem. Generating a course with 25 m without headland works without problem.

JakobTischler commented 11 years ago

With v3.41.0065 or higher, please activate debug channel 7 and post the log.

MGO63 commented 11 years ago

I have problems in creating a gist but the log is quite short

GIANTS Engine Runtime 5.0.1 (build date: Feb  7 2013)
Copyright (c) 2008-2012, GIANTS Software GmbH (www.giants-software.com), All Rights Reserved.
Copyright (c) 2003-2012, Christian Ammann and Stefan Geiger, All Rights Reserved.
Application: FarmingSimulator2013
Main System
  Core(s): 4 @ 3.2 GHZ
  OS: Mac OS X 10.8.4
Physics System
  Driver: NVIDIA PhysX Runtime
  Version: 2.8.4
  Thread(s): 2
Input System
  Keyboard enabled
  Mouse enabled
  Gamepad/Joystick enabled
  Force Feedback disabled
    Name: Logitech RumblePad 2 USB
    Number of Axes: 4
    Number of Buttons: 16
Sound System
  Driver: OpenAL
  Version: 1.1
  Device:  Ausgang (integriert)
  Max. sources: 512
Render System
  Driver: OpenGL
  Card Vendor: NVIDIA Corporation
  Renderer: NVIDIA GeForce GTX 680MX OpenGL Engine
  Version: 2.1 NVIDIA-8.12.47 310.40.00.05f01
    GL_NV_texture_compression_vtc not supported
    max_texture_layers: 8
  OpenGL initialization successful
Hardware Profile
  Level: Very High (auto)
  View Distance Coeff: 1.300000
  Shadow Quality: 2.000000
  Skip Mipmaps: 0
  LOD Distance Coeff: 1.300000
  Terrain LOD Distance Coeff: 2.000000
  Foliage View Distance Coeff: 1.600000
Farming Simulator 2013
  Version: 1.4.0.1 RC6
  Available Languages: de
  Language: de
Game vehicle types loaded
Mod directory: /Users/Library/Application Support/FarmingSimulator2013/mods
Load mod: ZZZ_courseplay
    ### Courseplay: initialized 31/31 files (v3.41.0071)
    ### Courseplay: installed into 14 vehicles and 22 fillables
data/sky/sky_day_night.i3d (0.00mb in 532.87 ms)
data/sky/rain.i3d (0.00mb in 0.34 ms)
data/sky/hail.i3d (0.00mb in 0.19 ms)
data/maps/map01.i3d (49.22mb in 3343.41 ms)
dataS2/character/pedestrians/casual15.i3d (0.40mb in 35.28 ms)
dataS2/character/pedestrians/casual07.i3d (0.32mb in 26.71 ms)
dataS2/character/pedestrians/casual03.i3d (0.33mb in 26.66 ms)
dataS2/character/pedestrians/casual08.i3d (0.53mb in 41.53 ms)
dataS2/character/pedestrians/casual02.i3d (0.31mb in 25.98 ms)
dataS2/character/pedestrians/executive03.i3d (0.27mb in 21.27 ms)
data/vehicles/steerable/buehrer/buehrer6135A.i3d (3.70mb in 73.75 ms)
data/vehicles/steerable/powerTakeoff.i3d (0.02mb in 0.66 ms)
data/vehicles/steerable/upperLinkMedium.i3d (0.04mb in 1.20 ms)
data/vehicles/steerable/upperLinkSmall.i3d (0.04mb in 0.93 ms)
/Volumes/Spiele/Farming Simulator 2013.app/Contents/Resources/data/maps/models/objects/egg/egg.i3d (0.01mb in 0.37 ms)
/Users/Library/Application Support/FarmingSimulator2013/mods/ZZZ_courseplay/img/NurGerade/NurGerade.i3d (0.01mb in 4.41 ms)
/Users/Library/Application Support/FarmingSimulator2013/mods/ZZZ_courseplay/img/STOP/STOP.i3d (0.00mb in 5.92 ms)
/Users/Library/Application Support/FarmingSimulator2013/mods/ZZZ_courseplay/img/VorfahrtAnDieserKreuzung/VorfahrtAnDieserKreuzung.i3d (0.01mb in 5.91 ms)
/Users/Library/Application Support/FarmingSimulator2013/mods/ZZZ_courseplay/img/Parkplatz/Parkplatz.i3d (0.01mb in 4.60 ms)
data/vehicles/tools/extraWeight01.i3d (0.07mb in 1.84 ms)
data/vehicles/steerable/lizard/golfCart.i3d (0.89mb in 76.66 ms)
data/vehicles/steerable/krone/kroneBigX1000.i3d (2.37mb in 45.48 ms)
data/vehicles/steerable/krone/kroneEasyCollect1053.i3d (0.92mb in 31.45 ms)
data/vehicles/trailers/kroeger/HKD302.i3d (2.28mb in 46.27 ms)
data/vehicles/trailers/krampe/krampeBBE500.i3d (1.90mb in 38.66 ms)
data/vehicles/trailers/bergmann/bergmannShuttle900K.i3d (1.81mb in 33.18 ms)
data/vehicles/steerable/schlueter/schlueter2500VL.i3d (2.36mb in 46.47 ms)
data/vehicles/tools/amazone/amazoneEDX6000.i3d (3.87mb in 68.22 ms)
data/vehicles/tools/amazone/amazoneZAM1501.i3d (0.83mb in 19.51 ms)
data/vehicles/steerable/kramer/kramerKL200.i3d (2.31mb in 42.86 ms)
data/character/farmer/farmer_player.i3d (1.75mb in 31.52 ms)
data/vehicles/trucks/milktruck.i3d (1.19mb in 113.04 ms)
data/vehicles/cars/car3.i3d (0.39mb in 17.73 ms)
data/vehicles/cars/car1.i3d (0.43mb in 25.91 ms)
data/vehicles/cars/car7.i3d (0.47mb in 25.36 ms)
data/vehicles/cars/car2.i3d (0.42mb in 19.50 ms)
data/vehicles/cars/car6.i3d (0.38mb in 18.99 ms)
data/vehicles/cars/car4.i3d (0.33mb in 14.95 ms)
data/vehicles/cars/car5.i3d (0.37mb in 18.54 ms)
[dbg7] Schlüter Super Trac 2500 VL: hasGeneratedCourse=false, #Waypoints=214, hasStartingCorner=false, hasStartingDirection=false, numCourses=1 ==> hasValidCourseGenerationData=false
[dbg7] Schlüter Super Trac 2500 VL: hasGeneratedCourse=false, #Waypoints=214, hasStartingCorner=true, hasStartingDirection=false, numCourses=1 ==> hasValidCourseGenerationData=false
[dbg7] Schlüter Super Trac 2500 VL: hasGeneratedCourse=false, #Waypoints=214, hasStartingCorner=true, hasStartingDirection=true, numCourses=1 ==> hasValidCourseGenerationData=true
[dbg7] Schlüter Super Trac 2500 VL: hasGeneratedCourse=false, #Waypoints=214, hasStartingCorner=true, hasStartingDirection=true, numCourses=1 ==> hasValidCourseGenerationData=true
[dbg7] generateCourse() called for ur.feld 07
[dbg7] Schlüter Super Trac 2500 VL: hasGeneratedCourse=false, #Waypoints=214, hasStartingCorner=true, hasStartingDirection=true, numCourses=1 ==> hasValidCourseGenerationData=true
[dbg7] Schlüter Super Trac 2500 VL: hasGeneratedCourse=false, #Waypoints=0, hasStartingCorner=true, hasStartingDirection=true, numCourses=0 ==> hasValidCourseGenerationData=false
[dbg7] generateCourse(76): self.cp.headland.numLanes = 1, self.cp.headland.order = before
[dbg7] generateCourse(140): #lane 1 = 213
JakobTischler commented 11 years ago

Are you sure this is the whole log? There are multiple debug entries missing, or at least the errors that cancelled the generation. Could you please try again and see if there are more log entries?

MGO63 commented 11 years ago

Tested with version v3.41.0084 With 25m width and headland the log is like the log above the game crashes - cars on the road will stop immedeately only way to leave game is to kill the program.

With 20m width and headland no course genaration at all game will not stop but no waypoints created

see gist https://gist.github.com/MGO63/5951165

MGO63 commented 11 years ago

Tested with version v3.41.0086 Standard map field course field 7 Start southwest direction east headland 1 lane before

width 15m works fine -> log_15m.txt width 20m no course generated when pressing generate course but game is playable -> log_20m.txt width 25m game crashes no more input possible cars on the road stop leaving game only by killing program -> log_25m.txt

see gist https://gist.github.com/MGO63/5957872

JakobTischler commented 11 years ago

I thought I asked you to add a specific print yesterday, but it seems I clearly forgot :)

In generateCourse.lua, line 928, add the following print and post the results please (whole log).

print(string.format("removeIntersections: m=%d, i=%d, p1=%s, p2=%s, p3=%s, p4=%s, inputList[p1].cx/cz=%s/%s, inputList[p2].cx/cz=%s/%s, inputList[p3].cx/cz=%s/%s, inputList[p4].cx/cz=%s/%s", m, i, tostring(p1), tostring(p2), tostring(p3), tostring(p4), tostring(inputList[p1].cx),tostring(inputList[p1].cz), tostring(inputList[p2].cx),tostring(inputList[p2].cz), tostring(inputList[p3].cx),tostring(inputList[p3].cz), tostring(inputList[p4].cx),tostring(inputList[p4].cz)));
MGO63 commented 11 years ago

I did the logfiles but I think they are to big. log_15m.txt is 18.8 MB log_20m.txt is 19.8 MB log_25m.txt is 79.6 MB

I could not create a gist even with a single file

JakobTischler commented 11 years ago

Hm, okay, let's try this again. Replace the print you've added with:

if p1 == nil or p2 == nil or p3 == nil or p4 == nil then
    print(string.format("removeIntersections: m=%d, i=%d, p1=%s, p2=%s, p3=%s, p4=%s", m, i, tostring(p1), tostring(p2), tostring(p3), tostring(p4)));
    if p1 ~= nil then
        print(string.format("\t\tinputList[p1].cx/cz=%s/%s", tostring(inputList[p1].cx),tostring(inputList[p1].cz)));
    end;
    if p2 ~= nil then
        print(string.format("\t\tinputList[p2].cx/cz=%s/%s", tostring(inputList[p2].cx),tostring(inputList[p2].cz)));
    end;
    if p3 ~= nil then
        print(string.format("\t\tinputList[p3].cx/cz=%s/%s", tostring(inputList[p3].cx),tostring(inputList[p3].cz)));
    end;
    if p4 ~= nil then
        print(string.format("\t\tinputList[p4].cx/cz=%s/%s", tostring(inputList[p4].cx),tostring(inputList[p4].cz)));
    end;
end;

This should heavily reduce the log weight. I'm also gonna need the course you base the generation on (the one loaded during generation).

If the 15m are working fine, I don't need the log for that one.

Martin-Dilley commented 11 years ago

I have just Generating a field course with headland on field 7 25m it work ok and not crashes the game i used version v3.41.0084 it could be one of MGO63 mods. I was going to use version v3.41.0086 it has problem when you start course recording it keeps going and you can not turn the Tractor when recording course

MGO63 commented 11 years ago

I did test with version v3.41.0087 As you can see I'm not using mods at all in my test environment other than courseplay

I think the statment if p1 == nil or p2 == nil or p3 == nil or p4 == nil then does not work because non of the px values will become nil.

ur.feld 07 is the course around field 7 log_25m_old.txt the first part of the 80MB log with the print statement from July 09, 2013

log_25m.txt logs with the statement from July 10, 2013 log_20m.txt

https://gist.github.com/MGO63/5991476

Martin-Dilley commented 11 years ago

Hi MGO63 had a look at the course around field 7 and give it a go yes it crashes the game it not a bug it the way you done it have you edit the xml file has it got a lot of thing missing in the lines.

drive round out side of field save do not edit file

MGO63 commented 11 years ago

Hi Martin thanks for the hint. I have generated a new course around field 7 and it is working without problems. I have not mistrust the course because only the 25m work width was not working. The course around filed 7 was generated by CourseplayVisualizr-gh-pages by Jakob Tischler but I think it was an alpha or beta version so something went wrong while generating/copying the course to courseplay.xml.

horoman commented 11 years ago

@JakobTischler: Can't this be treated as solved and therefore be closed?

JakobTischler commented 11 years ago

Nope :)

Edit: uhm, maybe yes.