Skip to content

Instantly share code, notes, and snippets.

@Aeonitis
Last active May 29, 2025 10:18
Show Gist options
  • Save Aeonitis/90d2aede5b247b320bb01d9132f4931a to your computer and use it in GitHub Desktop.
Save Aeonitis/90d2aede5b247b320bb01d9132f4931a to your computer and use it in GitHub Desktop.
GameMaker Steam Deck Suggestions for Developers

GameMaker Steam Deck Suggestions for Developers

First Stop

Official GameMaker Support - Deploying GameMaker Game to SteamDeck (Interesting note on GamePad too)

Tiny Checklist

  • Use updated GameMaker
  • Switch from YYC to VM (or vice versa) in export/target settings alt text

Long Path

GameMaker Export Settings:

  • 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.

Immediate Testing:

  • 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.

Audio Fixes:

  • 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.

Steam Integration:

  • 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.

File System:

  • 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.

Graphics/Performance:

  • 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.

GameMaker Version:

  • 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.

Quick Test Build:

  • 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.

Proton-Specific:

  • 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.

Final Verification:

  • 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.

Launch Options Test Matrix

Test these configurations in order (but would be nice to log exact proton versions which worked)

1. Default Configuration (Baseline Test)

Proton Version: Experimental Launch Options:

(empty)

2. Latest Stable with Audio Fix

Reduces audio lag and improves synchronization in Proton.

Proton Version: Proton 9.0
Launch Options:

PULSE_LATENCY_MSEC=60 %command%

3. GameMaker-Optimized Modern

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%

4. Stable Fallback with Graphics Override

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%

5. Nuclear Option (Maximum Compatibility)

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

Discussions

Future

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment