Open Poobslag opened 2 days ago
It always seems to be for the "aggregate achievement" achievement triggering the crash -- the one that checks for all of the dependent achievements.
func is_achievement_achieved(id: String) -> bool:
_log("Getting Steam achievement: %s" % [id])
var get_achievement_response: Dictionary = Steam.getAchievement(id)
_log("getAchievement(%s) response: %s" % [id, get_achievement_response])
return get_achievement_response["achieved"]
Maybe we should check achievements differently? This method optimistically assumes the method will always return a dictionary with an achieved
boolean in it. Maybe it returns garbage sometimes?
I've made a new version of the game which checks these getAchievement
responses and makes fewer steam calls, but it still crashed a moment ago. I'm hoping that if I run the game with --verbose
flag enabled, it will maybe log something about the crash -- but it crashes very unpredictably.
On Monday, I playtested for 12 hours and the game didn't crash once. On Tuesday, it crashed 2 or 3 times for me! All of the crashes for me were during levels in Starberry Mountain.
Faulting application name: turbofat.exe, version: 1.3.0.0, time stamp: 0x66f60127
Faulting module name: ntdll.dll, version: 10.0.19041.5007, time stamp: 0x688f8c4b
Exception code: 0xc0000374
Fault offset: 0x00000000000ff3c9
Faulting process id: 0x6818
Faulting application start time: 0x01db1fe5d89fcc3c
Faulting application path: C:\workspace\steam\steamworks-sdk\tools\ContentBuilder\content\turbofat-win\turbofat.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: ae5dedad-6e58-4cb7-b4c4-839f75a74871
Faulting package full name:
Faulting package-relative application ID:
https://github.com/godotengine/godot/issues/85692
This may be related to Godot #85692. We could try adjusting breadcrumb.change_scene()
to do something different.
In Adventure mode, I finished a level in Starberry Mountain. Instead of being dropped back to the map screen, the game crashed.
godot2024-10-15T12.34.30.log godot.log godot(4).log
The logs apparently show that the game was in the process of retrieving the achievement status for many achievements.