GodotSteam / MultiplayerPeer

An ecosystem of tools for Godot Engine and Valve's Steam. For the Windows, Linux, and Mac platforms.
https://godotsteam.com
MIT License
3 stars 2 forks source link

Request for documentation instruction for windows #11

Open shaddysignal opened 1 month ago

shaddysignal commented 1 month ago

Describe the bug Not really a bug. When building Godot with GodotSteam and GodotSteamMultplayerPeer modules as described here may result in problems when you plan to do cross-compile. The problem is similar to this.

I compiled as recommened on godot build page, then when I wanted to export to windows, I compiled templates for windows the same way. After the export, game simply crashes silently at SteamUser()->GetSteamID() during steamInitEx.

The problem exist only for windows, building with mingw on linux does not produce the same behavior.

To Reproduce Steps to reproduce the behavior:

  1. Compile Godot with modules with mingw
  2. Create empty scene and global steam init script
  3. Run project
  4. See the crash

Expected behavior Feel the note in documentation is warranted about compiler used so those cases will be quicker to resolve. I guess issue existing can help when looking for solution.

Logs With debug info:

Godot Engine v4.3.stable.custom_build.77dcf97d8 (2024-08-14 23:00:16 UTC) - https://godotengine.org
OpenGL API 3.3.0 NVIDIA 565.90 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce RTX 3070

================================================================
CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.custom_build (77dcf97d82cbfe4e4615475fa52ca03da645dbd8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] Steam::steamInitEx(bool, unsigned int, bool) (modules/godotsteam/godotsteam.cpp:500)
[2] void call_with_variant_args_ret_helper<__UnexistingClass, Dictionary, bool, unsigned int, bool, 0ull, 1ull, 2ull>(__UnexistingClass*, Dictionary (__UnexistingClass::*)(bool, unsigned int, bool), Variant const**, Variant&, Callable::CallError&, IndexSequence<0ull, 1ull, 2ull>) (./core/variant/binder_common.h:756)
[3] void call_with_variant_args_ret_dv<__UnexistingClass, Dictionary, bool, unsigned int, bool>(__UnexistingClass*, Dictionary (__UnexistingClass::*)(bool, unsigned int, bool), Variant const**, int, Variant&, Callable::CallError&, Vector<Variant> const&) (./core/variant/binder_common.h:535)
[4] MethodBindTR<Dictionary, bool, unsigned int, bool>::call(Object*, Variant const**, int, Callable::CallError&) const (./core/object/method_bind.h:524)
[5] GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Callable::CallError&, GDScriptFunction::CallState*) (modules/gdscript/gdscript_vm.cpp:1874)
[6] GDScriptInstance::callp(StringName const&, Variant const**, int, Callable::CallError&) (modules/gdscript/gdscript.cpp:2032)
[7] bool Node::_gdvirtual__ready_call<false>() (scene/main/node.h:355)
[9] Node::_notificationv(int, bool) (scene/main/node.h:50)
[11] Node::_propagate_ready() (scene/main/node.cpp:272)
[13] Node::_set_tree(SceneTree*) (scene/main/node.cpp:3171)
[14] SceneTree::initialize() (scene/main/scene_tree.cpp:448)
[15] OS_Windows::run() (platform/windows/os_windows.cpp:1662)
[16] widechar_main(int, wchar_t**) (platform/windows/godot_windows.cpp:180)
[17] _main() (platform/windows/godot_windows.cpp:206)
[18] main (platform/windows/godot_windows.cpp:225)
-- END OF BACKTRACE --
================================================================

With optimize=speed_trace:

Initialize godot-rust (API v4.3.stable.official, runtime v4.3.stable.custom_build)
Godot Engine v4.3.stable.custom_build.77dcf97d8 (2024-08-14 23:00:16 UTC) - https://godotengine.org
OpenGL API 3.3.0 NVIDIA 565.90 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce RTX 3070

================================================================
CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.stable.custom_build (77dcf97d82cbfe4e4615475fa52ca03da645dbd8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] error(0): file too short
[2] error(-1): failed to read executable information
[3] error(-1): failed to read executable information
[4] error(-1): failed to read executable information
[5] error(-1): failed to read executable information
[6] error(-1): failed to read executable information
[7] error(-1): failed to read executable information
[8] error(-1): failed to read executable information
[9] error(-1): failed to read executable information
[10] error(-1): failed to read executable information
[11] error(-1): failed to read executable information
[12] error(-1): failed to read executable information
[13] error(-1): failed to read executable information
[14] error(-1): failed to read executable information
[15] error(-1): failed to read executable information
[16] error(-1): failed to read executable information
[17] error(-1): failed to read executable information
[18] error(-1): failed to read executable information
[19] error(-1): failed to read executable information
[20] error(-1): failed to read executable information
[21] error(-1): failed to read executable information
[22] error(-1): failed to read executable information
[23] error(-1): failed to read executable information
[24] error(-1): failed to read executable information
[25] error(-1): failed to read executable information
[26] error(-1): failed to read executable information
[27] error(-1): failed to read executable information
-- END OF BACKTRACE --
================================================================

Desktop (please complete the following information):

Version of Godot: 4.3-stable

Version of GodotSteam: Latest from godot4(godotsteam) and main(godotsteam_multiplayer_peer) branches

Solution When recompiling templates with msvc toolchain, everything works fine on windows after export.