Hmm… I’m seeing an odd error under Windows 7.
I have a game of which I’ve created a “standalone, installer” build using the new runtime distributable. The Linux build seems to work correctly, but under Windows 7–whether using a 32-bit or 64-bit build–it crashes rather quickly. (I haven’t yet tested it properly under Windows 10.) A build of a small test-program seems to work as expected, so the problem is presumably something specific to the game–but unfortunately, the game is fairly large, and I’m not sure of what to suspect first.
Here follows the log-output from a run. At one point I’ve inserted three asterisks ("***"), which replace a large block of what seem to be “\00” characters; while I’ve inserted a line-break after them, in the actual log output they simply run into the start of the next line, I believe. The third line is my own output, I believe, produced using AppDirs; I’m not sure of why it’s producing a mix of forward- and back- slashes in that path, but I’ve noted it as something that might want for fixing.
:AppRunner: Total Panda3D disk space used: 0 MB
:util: Reading /c/Program Files (x86)/Adventuring Prototype/Adventuring/game.prc
C:\Users\user\AppData\Local/Thaumaturge/Adventuring
Known pipe types:
wglGraphicsPipe
(2 aux display modules not yet loaded.)
Exception AttributeError: 'C++ object is not yet constructed, or already destructed.' in 'garbage collection' ignored
Fatal Python error: unexpected exception during garbage collection
AL lib: (EE) alc_cleanup: 1 device not closed
***
Setting working directory: C:\Program Files (x86)\Adventuring Prototype
Command line: "C:\Program Files (x86)\Adventuring Prototype\panda3d\cmu_1.9\win_i386\p3dpythonw.exe" "C:\Program Files (x86)\Adventuring Prototype/panda3d/cmu_1.9/win_i386/panda3d.cmu_1.9.win_i386.mf" "000000E0" "000000EC" "0"
Created splash window 00150744
Reading splash file image: C:\Program Files (x86)\Adventuring Prototype/images/download.png
notify: onpluginload
notify: onauth
notify: ondownloadbegin
notify: ondownloadcomplete
notify: onready
Loaded image: C:\Program Files (x86)\Adventuring Prototype/images/download.png
application shares main object
notify: onpythonload
notify: onpythonstop
finish_instance: 00BFF1B8
Assigning 00BFF1B8->log_pathname = C:\Users\user\AppData\Local/Panda3D/log/adventuringPrototype.log
I did perform a search for the error message printed there, but didn’t find anything that seemed like a likely culprit, especially as the game works elsewhere, I believe.
[edit]
I’ve just run a quick test under Windows 10, and seem to be encountering the same error there. The results of further experiments will hopefully follow soon…
[another edit]
Okay, I added debugging output to my game’s “main” python file, hoping to narrow down quite where the problem is occurring. This isn’t perfect, as the crash may perhaps prevent nearby output from being printed, but it may yet provide some guidance.
A first attempt seemed to indicate that the problem was happening in either “ShowBase.init(self)” or “base.disableMouse()”–but both of those lines appear in the (working) test program, I believe.
A second attempt seemed to support this: the last printout occurred before “ShowBase.init(self)”, with the printout directly after (and before “base.disableMouse()”) not appearing in the log.
This is very odd, as both the game and the test program inherit from ShowBase, and seem to have identical initialisation code, starting as follows:
class GameFramework(ShowBase):
def __init__(self):
# Some initial setup
ShowBase.__init__(self)
base.disableMouse()
Perhaps it’s something being imported by the game?