Steam Deck and UE4 (UE5) a guide... (?)

Hello everyone,

Steam Deck arrived today, so of course I tried to bridge UE4 (4.27.2) to it.
Here’s what I have found so far.

First this:
https://partner.steamgames.com/doc/steamdeck/devkits/loadgames
So you can connect your PC to the Steam Deck. It uses the Steam DK management Tool
I also assigned a static IP to my SDeck.

With these connected I was expecting To have in UE4 editor “Launch on” being able to see the SDeck but it doesn’t.
Even using add device and IP.

So far it seem the only was is to make a PC build in a folder and use the Steam DK management Tool to upload it.

Does anyone know a better pipeline?

1 Like

So far I’ve only tried to build a random example project (the car one) from UE5, copy the cooked win folder to Steam Deck and launch it with the proton layer. Didn’t work. Sadly, this is the only post about the Deck that I’ve seen :sweat_smile:

It is indeed quite surprising the last of interest of community sharing about Steam Decks.
I haven’t tried UE5, when I do I’ll report here :slight_smile:
It’s the same in the SteamDeck community:
https://steamcommunity.com/groups/steamworks/discussions/27/3185738755278480920/

It does feel pretty lonely indeed!

1 Like

So a small update, the packaged project actually worked, just not with the experimental proton but the proton 7.0-1. The Car demo, without any changes to anything ran around 30 fps, for reference.

5 Likes

Has anyone managed to run a compiled UE5 project?
I tried GonziHere’s method (package for win64, copy to steam deck, on deck desktop add it to steamOS, switch to steamOS, launch project using various versions of Proton) and all I get is the animated steam logo looping forever, the game never starts.

I see the same behavior with some commercial games that I know will run on steam deck but aren’t from the Steam store, so I hope maybe there is just some steam deck trick to launching a non-steam game in steamOS that I might be missing…?

I was able to get a very minimal/blank 5.0.3 project to work on the SteamDeck following the guide at How to load and run games on Steam Deck (Steamworks Documentation)

I haven’t had a chance to test the “Launch” option mentioned in Steam Deck Quick Start in Unreal Engine | Unreal Engine 5.1 Documentation yet because it was broken for 5.0, but it looks like the change to fix it was released in 5.1.

1 Like

Nop, still broken, I am trying but nothing @IncantaGames

Following the method on the Steamworks Documentation link, I was finally able to get my project running on Steam Deck. Thank you.

(Oh dear framerate is 20, I’ll have to look into graphics options to optimize for deck…)

Nice. :+1:
Could you please share your graphics options findings here?

Not 100% related to the above posts in this thread, but I found a way to programmatically determine whether or not the current device is a Steam Deck, and couldn’t find anywhere else relevant to post it, so sharing it here in case someone finds it useful. By having a way to determine whether the device is a Steam Deck, it becomes easier to do things such as adjusting the default graphic settings and so on for a better user experience.

Anyway, as far I could tell there doesn’t seem to be an easy macro for checking, like PLATFORM_WINDOWS, but I confirmed that there are some env vars which are only set on the Steam Deck. Note that some are only set in the Steam Deck’s gaming mode, whereas others are set in both the desktop and gaming modes. Here’s what I found:

Steam Deck: gaming mode:

  • SteamOS:1
  • SteamGamepadUI:1
  • SteamDeck:1
  • LOGNAME:deck
  • USER:deck

Steam Deck: desktop mode:

  • SteamOS: (env var unset)
  • SteamGamepadUI: (env var unset)
  • SteamDeck:1
  • LOGNAME:deck
  • USER:deck

“SteamDeck” is consistent in both modes and based on the name it seems like the most appropriate env var to check. This can be done with:

FPlatformMisc::GetEnvironmentVariable(TEXT("SteamDeck")).Equals(FString(TEXT("1")))

I hope this information is helpful!

2 Likes