Hi everyone! In a couple of months, I'm going to be releasing my first game on Steam. I'm targeting Windows, Linux and SteamOS/Steam deck.

Currently, I'm trying to add localization support for Xbox and PS4 controllers so button prompts update properly. I think I have a gist of how to do so on Xbox and PS4 controllers connected to PC devices, but how would I do this for Steam deck? As in, how do I detect that the game is running on Steam deck? I believe it is some sort of Linux OS so it feels like there is going to be complications on detecting the correct device.

I also heard that the Steam deck uses a 1280x800 resolution, so does this mean I have to update my GUI so that it fits to this screen size?

    Awfy I also heard that the Steam deck uses a 1280x800 resolution, so does this mean I have to update my GUI so that it fits to this screen size?

    If you really want to properly target and support the device, you should probably invest in getting one of your own. It can act as the devkit as well, no need to get a separate, dedicated device for that like with xbox or playstation. Also, as @Capella said, info specifically pertaining to steam on linux and the SteamDeck/SteamOS 3('HoloOS') is best gotten from valves sources.

    ... I do however have a hunch that the simplest('dumbest'?) solution might be to implement a application launch/command argument so the game can be launched with an argument that instantly sets the in-game settings to SteamDeck optimized configuration, like some of the other games already do. This doesn't have to just mean graphics settings it can also mean controls and even the UI prompts and hints to what buttons to use, etc.

    With all of that said tho, you might also want to explore the OS class, it should have a method for calling external executables. This should help you inquire the system for some info, including distro name and kernel version, etc.

    • Awfy replied to this.

      Megalomaniak I assume Godot doesn't detect Steam Deck as a controller? Because it isn't a controller of course. I guess I'll have to use the OS class to get some information then. What information is different from a Linux compared to a Steam Deck?

      I do have a friend with a Steam Deck, so they could do the testing for me, but I still want a sure way of getting Steam Deck info.

        Awfy The following website lists multiple different ways to query for information about the system/OS distro:
        https://www.tecmint.com/check-linux-os-version/

        The best way to determine a Linux distribution name and release version information is by using the cat /etc/os-release command, which works on almost all Linux systems.


        I use manjaro, for me the command gives:

        ~ cat /etc/os-release ✔ 
        NAME="Manjaro Linux"
        PRETTY_NAME="Manjaro Linux"
        ID=manjaro
        ID_LIKE=arch
        BUILD_ID=rolling
        ANSI_COLOR="32;1;24;144;200"
        HOME_URL="https://manjaro.org/"
        DOCUMENTATION_URL="https://wiki.manjaro.org/"
        SUPPORT_URL="https://forum.manjaro.org/"
        BUG_REPORT_URL="https://docs.manjaro.org/reporting-bugs/"
        PRIVACY_POLICY_URL="https://manjaro.org/privacy-policy/"
        LOGO=manjarolinux

        You can also try installing SteamOS 3/HoloOS via HoloISO, though from what I understand it needs specifically an AMD APU to work, so not sure if it would work in a VM. OS name should be reported as SteamOS Holo or such far as I can tell.

        • Awfy replied to this.

          Megalomaniak Is the information for Steam Deck OS always the same? No difference in models or anything like that? Looking at Steam Decks, they use a CPU called ''amd custom apu 0405''. Is this true for all Steam Deck models?

            Awfy Far as I can tell, yes, should be the same. I had just edited the above post before noticing your reply, as I said at the end there the steam OS should report it's name as SteamOS Holo. HW wise the only real difference between the models is storage capacity and a better screen for the top model.

            a year later

            Hello, I'm trying to get my game to work on Steam Deck, I just have a problem with the inputs, the buttons and joysticks don't work if I install my game from the Steam platform.

            Has anyone ever had this problem ?

            My inputs are configured like that under Godot 4.4.1:

            Thanks.

              johann exporting game for linux and running it, does it work that way?

                kuligs2 It works under Steamdeck desktop mode so launched from desktop but the same executable does not work launched from Steam application.
                Rk. From the desktop only L1/L2 and R1/R2 does not work.

                  johann have you tried it on pc? does it work with plain usb gamepad? could be that steam does not see the inputs or cant hijack the inputs from the controller you using to translate to godot gamepad inputs..

                  I remember lder games that had gamepad support were iffy sometimes on older steam version where you connect gamepad and it wont detect it because steam hijacks the inputs and will not pass it on to the system (for games outside steam ecosystem)..