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
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.
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…?
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: