Official GameMaker Support - Deploying GameMaker Game to SteamDeck (Interesting note on GamePad too)
- Switch from YYC to VM (or vice versa) in target settings – Some GameMaker builds work better with VM, others with YYC.
- Use DirectX 9 instead of DX11/12 in graphics options – Older DirectX versions can be more stable under Proton.
- Enable "Use synchronization to avoid tearing" in display settings – Helps prevent visual glitches caused by timing issues.
- Set "Interpolate colors between pixels" to OFF – Reduces graphical artifacts and improves sharpness.
- Test with Proton 8.0 instead of 9.0 – GameMaker games often run better on older Proton versions.
- Disable Steam Workshop/Cloud features temporarily – Some Steamworks integrations can interfere with game execution.
- Try exporting with "Disable file system sandbox" option enabled – Prevents restrictive file access that could break functionality.
- Export all audio as OGG format instead of MP3/WAV – OGG is better optimized for GameMaker and Proton compatibility.
- Disable "Compress audio" in audio group settings – Some audio compression methods don’t work well outside Windows.
- Set audio sample rate to 44100Hz consistently – Ensures smooth playback without compatibility problems.
- Temporarily disable all Steamworks extensions to test core game – Some Steam APIs can cause crashes on Proton.
- Remove steam_api.dll dependency if possible for testing – Helps identify whether Steam integration is blocking execution.
- Test without Steam overlay integration – The Steam overlay can sometimes interfere with GameMaker games.
- Avoid get_save_filename() and get_open_filename() functions – These functions can break under Proton due to different file dialog handling.
- Use working_directory instead of hardcoded paths – Prevents pathing issues when running on Linux-based platforms.
- Replace backslashes with forward slashes in all file paths – Ensures compatibility with Linux file structures.
- Set application_surface scaling to 1.0 (no scaling) – Prevents unwanted graphical resizing issues.
- Disable automatic texture page generation – Ensures textures are handled properly in Proton.
- Force GPU texture compression to OFF – Avoids rendering issues caused by compressed textures.
- Set texture interpolation to OFF globally – Helps eliminate blurry visuals due to smoothing algorithms.
- Update to GameMaker 2023.8+ if possible – Newer versions have improved Linux support.
- Use LTS runtime version instead of beta – More stable and less likely to introduce platform-specific issues.
- Create minimal test build with just a room and basic object – Helps pinpoint the root cause faster.
- Remove the "dated extension" temporarily to isolate the issue – Some older extensions don’t work well with Proton.
- Export Ubuntu target first, then test with Proton – Linux-native exports can reveal compatibility problems earlier.
- Include d3dcompiler_47.dll in game directory – Some DirectX shaders require this DLL for proper rendering.
- Test with WINEDLLOVERRIDES="d3dcompiler_47=n" environment variable – Ensures Proton handles DirectX calls properly.
- Test on ProtonDB community before release – Check user-reported fixes for similar issues.
- Submit to Steam Deck Verified program after fixing – Ensures the game is fully optimized for Steam Deck.
Test these configurations in order (but would be nice to log exact proton versions which worked)
Proton Version: Experimental Launch Options:
(empty)
Reduces audio lag and improves synchronization in Proton.
Proton Version: Proton 9.0
Launch Options:
PULSE_LATENCY_MSEC=60 %command%
Forces Proton to use WineD3D instead of DXVK, helping with older DirectX games.
Proton Version: Proton Experimental
Launch Options:
PROTON_USE_WINED3D=1 PULSE_LATENCY_MSEC=60 %command%
Disables Direct3D 11 to prevent graphical issues if the game struggles with DXVK.
Proton Version: Proton 8.0
Launch Options:
PROTON_USE_WINED3D=1 PROTON_NO_D3D11=1 %command%
Forces software rendering, bypassing GPU driver issues if necessary.
Proton Version: Proton 8.0
Launch Options:
PROTON_USE_WINED3D=1 PROTON_NO_D3D11=1 PULSE_LATENCY_MSEC=60 LIBGL_ALWAYS_SOFTWARE=1 %command%
Notes:
- If #5 fails, the issue is likely in GameMaker export settings, not Proton
- Test each for 30+ seconds - some games have slow startup
- Check ProtonDB for game-specific community solutions
- Consider Proton-GE if all official versions fail