[table] [tr] [td][b]Header Capsule[/b][/td] [td][color=#ca5029]Required[/color][/td] [td]920px x 430px Just your game logo and artwork [doclink=store/assets/standard#header_capsule]See details[/doclink][/td] [/tr] [tr] [td][b]Small Capsule[/b][/td] [td][color=#ca5029]Required[/color][/td] [td]462px x 174px Just your game logo and artwork [doclink=store/assets/standard#small_capsule]See details[/doclink][/td] [/tr] [tr] [td][b]Main Capsule[/b][/td] [td][color=#ca5029]Required[/color][/td] [td]1232px x 706px Just your game logo and artwork [doclink=store/assets/standard#main_capsule]See details[/doclink][/td] [/tr] [tr] [td][b]Vertical Capsule[/b][/td] [td][color=#ca5029]Required[/color][/td] [td]748px x 896px Just your game logo and artwork [doclink=store/assets/standard#hero_capsule]See details[/doclink][/td] [/tr] [tr] [td][b]Screenshots[/b][/td] [td][color=#ca5029]Required[/color][/td] [td]minimum of 1920px x 1080px or larger, 16:9 ratio. …
[table] [tr] [td][b]Event Cover[/b][/td] [td][color=#ca5029]Required[/color][/td] [td]800px x 450px Artwork and marketing copy for your event or announcement [doclink=store/assets/eventassets#cover]See details[/doclink][/td] [/tr] [tr] [td][b]Event Header[/b][/td] [td]Optional[/td] [td]1920px wide x 622px Event artwork and logo. …
We've spent a lot of effort making it as easy as possible to run that best version on Steam Frame. For most developers that probably means running Windows x86 via Proton and FEX. For VR developers that have already spent the effort to make a mobile optimized version of their game for other hardware (typically Android Arm64), we think it makes sense to run that version on Steam Frame. …
It is implemented as a container to minimize overhead. [subsection]x86 via FEX[/subsection] x86 (32-bit and 64-bit) via [url=https://github.com/FEX-Emu/FEX]FEX[/url]. FEX translates x86 compiled games to Arm64 instructions, but forwards API calls to native host system libraries like OpenGL or Vulkan to reduce emulation overhead, and leverages code caching to minimize in-game stuttering as much as possible. …
[section]Localized Image Management[/section] If you are uploading images that contain text, you can now easily manage localized version of those images all together in an image group. [docimg=b10a3f4768ef3d833c7922d6981fa5f7df4ecbe8.png]b10a3f4768ef3d833c7922d6981fa5f7df4ecbe8.png[/docimg] This gives you one single entry in your list of images and a quick menu option to edit the group. Editing the group gives you a pop-up to add, delete, or reassign images to specific languages. [docimg=4e5204785baf16e7ab255fb048b4c9a9e97f423d.png]4e5204785baf16e7ab255fb048b4c9a9e97f423d.png[/docimg] The biggest benefit to managing localized assets as a group is that you don't need separate entries for each language in your written text. …
The logo should be easily legible against the background. [b]Size:[/b] 600px x 900px (an additional half-size 300px x 450px PNG will be auto-generated from larger file) [section=header]Library Header [color=#ca5029]Required[/color][/section] The library header is used in different places within the Steam Client Library. …
For ex: a main character’s face should be entirely in the safe area or risk being cropped. [b]Size: [/b]3840px x 1240px (an additional half-size 1920px x 620px PNG will be auto-generated from larger file) [subsection=logo]Library Logo [color=#ca5029]Required[/color][/subsection] [docimg=Logo_example_1.png]Logo_example_1.png[/docimg] [b]Usage:[/b] Appears at the top of a user’s library details page for this product, placed on top of the hero graphic. …
[list] [*] [code-inline]1[/code-inline] - USD / United States Dollar [*] [code-inline]2[/code-inline] - GBP / United Kingdom Pound [*] [code-inline]3[/code-inline] - EUR / European Union Euro [*] [code-inline]4[/code-inline] - CHF / Swiss Francs [*] [code-inline]5[/code-inline] - RUB / Russian Rouble [*] [code-inline]6[/code-inline] - PLN / Polish Złoty [*] [code-inline]7[/code-inline] - BRL / Brazilian Reals [*] [code-inline]8[/code-inline] - JPY / Japanese Yen [*] [code-inline]9[/code-inline] - NOK / Norwegian Krone [*] [code-inline]10[/code-inline] - IDR / Indonesian Rupiah [*] [code-inline]11[/code-inline] - MYR / Malaysian Ringgit [*] [code-inline]12[/code-inline] - PHP / Philippine Peso [*] [code-inline]13[/code-inline] - SGD / Singapore Dollar [*] [code-inline]14[/code-inline] - THB / Thai Baht [*] [code-inline]15[/code-inline] - VND / Vietnamese Dong [*] [code-inline]16[/code-inline] - KRW / South Korean Won [*][strike][code-inline]17[/code-inline] - TRY / Turkish Lira[/strike] [*] [code-inline]18[/code-inline] - UAH / Ukrainian Hryvnia [*] [code-inline]19[/code-inline] - MXN / Mexican Peso [*] [code-inline]20[/code-inline] - CAD / Canadian Dollars [*] [code-inline]21[/code-inline] - AUD / Australian Dollars [*] [code-inline]22[/code-inline] - NZD / New Zealand Dollar [*] [code-inline]23[/code-inline] - CNY / Chinese Renminbi (yuan) [*] [code-inline]24[/code-inline] - INR / Indian Rupee [*] [code-inline]25[/code-inline] - CLP / Chilean Peso [*] [code-inline]26[/code-inline] - PEN / Peruvian Sol [*] [code-inline]27[/code-inline] - COP / Colombian Peso [*] [code-inline]28[/code-inline] - ZAR / South African Rand [*] [code-inline]29[/code-inline] - HKD / Hong Kong Dollar [*] [code-inline]30[/code-inline] - TWD / New Taiwan Dollar [*] [code-inline]31[/code-inline] - SAR / Saudi Riyal [*] [code-inline]32[/code-inline] - AED / United Arab Emirates Dirham [*] [strike][code-inline]33[/code-inline] - SEK / Swedish Krona[/strike] [*] [strike][code-inline]34[/code-inline] - ARS / Argentine Peso[/strike] [*] [code-inline]35[/code-inline] - ILS / Israeli New Shekel [*] [strike][code-inline]36[/code-inline] - BYN / Belarusian Ruble[/strike] [*] [code-inline]37[/code-inline] - KZT / Kazakhstani Tenge [*] [code-inline]38[/code-inline] - KWD / Kuwaiti Dinar [*] [code-inline]39[/code-inline] - QAR / Qatari Riyal [*] [code-inline]40[/code-inline] - CRC / Costa Rican Colón [*] [code-inline]41[/code-inline] - UYU / Uruguayan Peso [*] [strike][code-inline]42[/code-inline] - BGN / Bulgarian Lev[/strike] [*] [strike][code-inline]43[/code-inline] - HRK / Croatian Kuna[/strike] [*] [strike][code-inline]44[/code-inline] - CZK / Czech Koruna[/strike] [*] [strike][code-inline]45[/code-inline] - DKK / Danish Krone[/strike] [*] [strike][code-inline]46[/code-inline] - HUF / Hungarian Forint[/strike] [*] [strike][code-inline]47[/code-inline] - RON / Romanian Leu[/strike] [/list] …
Be sure to watch the YouTube video, which explains sale page structure and how to use some of the sections [url]https://youtu.be/9xJ6Tb1RQuY[/url] [subsection]Default Section Types[/subsection] [list] [*][b]Apps and Bundles[/b] - These are apps, packages, or bundles. …
Most typically, such button pairs are aligned on the same diagonal axis (X and A, Y and B). Sub-inputs: [list] [*] "South" button (e.g. A) [*] "East" button (e.g. B) [*] "West" button (e.g. X) [*] "North" button (e.g. Y) [/list] [section]DPAD[/section] [docimg=input_dpad.png]input_dpad.png[/docimg] The Dpad, or digital pad, is a single physical input that houses four discrete digital inputs corresponding to the four cardinal directions. …
The Shortcut Icon can also be used to generate the App Icon on upload, however any alpha will be replaced with solid black. [b]Size:[/b] 256px x 256px or 512px x 512px, ICO or PNG [callout]Note: To properly display your application icon on macOS desktop shortcuts, you must also submit an icon file in ICNS format in the "Mac Icon" asset field. …
. [*]Once that's done, download the EAC SDK and find the Linux library ([i]\Client\Assets\Plugins\x86_64\libeasyanticheat.so[/i]) for the SDK version integrated with your game, rename it to [i]easyanticheat_x64.so[/i], and add it to your depot next to the Windows library ([i]EasyAntiCheat_x64.dll[/i]). [*]Lastly, on the Steamworks site, publish a new build of your game containing the new depot contents. …
In this case, head on over to the "Templates" section, which is full of generic input configurations for each controller model, with many variations for all the most common game genres. [docimg=browse_configs_6.png]browse_configs_6.png[/docimg] …
[section=available]Available Redistributables[/section] Available redistributables include Microsoft Visual C++, .NET, DirectX 9, OpenAL, XNA, and PhysX. The complete list of redistributables is always available on the [url=https://partner.steamgames.com/apps/installer/]Redistributables[/url] tab. …
#include "steam_api.h" #include "isteamuserstats.h" #include "SteamStats.h" // Stats array which will hold data about the stats and their state Stat_t g_Stats[] = { _STAT_ID( 1, STAT_INT, "NumGames"), _STAT_ID( 2, STAT_INT, "NumWins"), _STAT_ID( 3, STAT_INT, "NumLosses"), _STAT_ID( 4, STAT_FLOAT, "FeetTraveled"), _STAT_ID( 5, STAT_AVGRATE, "AverageSpeed"), _STAT_ID( 7, STAT_FLOAT, "MaxFeetTraveled"), }; // Global access to Stats Object CSteamStats* g_SteamStats = NULL; ... [/code] [subsection]Initialization[/subsection] The call to [api]steam_api::SteamAPI_Init[/api] initializes all of Steam and must be called before anything else. …
[code=cpp] ... // Initialize Steam bool bRet = SteamAPI_Init(); // Create the SteamStats object if Steam was successfully initialized if (bRet) { g_SteamStats = new CSteamStats(g_Stats, 6); } ... [/code] [subsection]Processing Callbacks[/subsection] To ensure that we process all Steam callbacks we need to regularly pump for new messages. …
You can find the English broadcast of the conference on youtube: [url]https://www.youtube.com/watch?v=P6CUQeHIxDA[/url] Topics covered: [list] [*]Steam Deck Hardware [*]Steam on Deck [*]Proton Support [*]Steam Input [*]Steam Deck Verified [*]APU deep dive with AMD [/list] …
Once both parties have fully approved the app transfer, Valve will respond to the request as quickly as possible. Usually within 2-7 business days. [h4]Q. Can I transfer multiple applications in one request? Can I transfer DLC?[/h4] A. Yes, you can select multiple applications and DLC to transfer in a single request. …
This cool-down does not get reset or shortened by the app transfer process. For more details, please see [doclink=marketing/discounts#7]Discounting Rules[/doclink]. Monthly payment reports and history belongs to the former partner and this information is not transferred. …
Re-installing the application may fix this problem.[/b] The example relies on the D3D9X helper library which ships with the DirectX SDK. If you run the example on the same machine you have built it on the library should be found automatically. If you copy your compiled binary to another machine you may need to install the D3D redistributables to obtain the same version of D3D9X that you compiled against on your development machine. [/list] [section]Code Overview[/section] Once you have the [b]Spacewar![/b] example project compiling and running you'll want to start looking at the code. …
. [*] [code-inline]FontName[/code-inline] - Font used for menu text [*] [code-inline]FontHeight[/code-inline] - Height of menu text [*] [code-inline]MenuPos[/code-inline] - X and Y coordinates (in pixels) for the top left corner of the menu (ex: "200 324") [*] [code-inline]MenuStyle[/code-inline] - Alignment of menu text (0 = left, 1 = center, 2 = right) [*] [code-inline]ColorDefault[/code-inline] - RGB color for menu text (ex: "255 255 255") [*] [code-inline]ColorHover[/code-inline] - RGB color for menu text when the mouse is hovering over the text (ex: "250 180 60") [*] [code-inline]ColorDown[/code-inline] - RGB color for menu text when a mouse button is depressed over the text (ex: "0 0 0") [/olist] Setup can also display a EULA before installing your game. …
If you need to support a language that is currently not supported by Steam, please let us know in the [url=steamcommunity.com/groups/steamworks/discussions]Steamworks Development Discussions[/url] [subsection=setup_graphics]Graphics and Sound Effects[/subsection] The following files can be replaced to customize the setup application and Steam installation for your game: [olist] [*] [code-inline]splash.tga[/code-inline] - Image displayed by Steam while installing files from disk (392x165 pixels) [*] [code-inline]icon.ico[/code-inline] - Icon used in [code-inline]autorun.inf[/code-inline] as the icon for your installation disk [*] [code-inline]resources\setup.bmp[/code-inline] and [code-inline]resources\setup_<language>.bmp[/code-inline] - Image used for the background of setup.exe (640x480 pixels). …
[b]Example:[/b] [code=cpp]extern "C" void __cdecl SteamAPIDebugTextHook( int nSeverity, const char *pchDebugText ) { ::OutputDebugString( pchDebugText ); if ( nSeverity >= 1 ) { // place to set a breakpoint for catching API errors int x = 3; x = x; } } void EnableWarningMessageHook() { SteamUtils()->SetWarningMessageHook( &SteamAPIDebugTextHook ); }[/code] [subsection=ShowGamepadTextInput]ShowGamepadTextInput[/subsection] [code=cpp]bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char *pchDescription, uint32 unCharMax, const char *pchExistingText );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]eInputMode[/b][/td][td][apitype]ISteamUtils::EGamepadTextInputMode[/apitype][/td][td]Selects the input mode to use, either Normal or Password (hidden text)[/td][/tr] [tr][td][b]eLineInputMode[/b][/td][td][apitype]ISteamUtils::EGamepadTextInputLineMode[/apitype][/td][td]Controls whether to use single or multi line input.…
[/td][/tr] [tr=k_ESteamHardwareDefaultConfigSteamMachine][td][b]k_ESteamHardwareDefaultConfigSteamMachine[/b][/td][td]6[/td][td]Steam Machine default configuration.[/td][/tr] [tr=k_ESteamHardwareDefaultConfigSteamFrame][td][b]k_ESteamHardwareDefaultConfigSteamFrame[/b][/td][td]7[/td][td]Steam Frame default configuration.…
For an introduction to anti-cheat and general best practices, we recommend that you watch the [url=http://steamcommunity.com/devdays]Steam Dev Days[/url] talk "Anti-Cheat for Multiplayer Games" ([docfile=AntiCheat.pdf]slides[/docfile]) https://www.youtube.com/watch?v=hI7V60r7Jco [subsection=GameBans]Game Bans[/subsection] [docimg=game_banned.png][/docimg] Game Bans allow you to utilize Valve’s banning infrastructure rather than implement your own ban tracking system. …
[list] [*] In your game code: set your camera-angles-per-mouse-pixel ratio to 0.022 degrees per pixel. i.e. one mouse dot will turn your camera 0.022 degrees. [*] Set your default user mouse sensitivity to 2.5x. [*] These are the standards used in Source 2 engine games. This is why the default "Dots per 360 setting" is 6545. 360degrees / ( 0.022 * 2.5 ) = 6545.45' [/list] [/list] [subsection]Graphics[/subsection] [list] [*][b]Vulkan API[/b]: We recommend targeting Vulkan as your primary graphics API for best performance and battery life. If you use an engine like Unity or Unreal, enabling Vulkan in your build for all users will result in the highest performance/longevity. (Note: Proton includes a DirectX-to-Vulkan translation layer. If your game or engine has high-quality DirectX support but no Vulkan support, it's likely that this automated translation layer will exceed the performance of doing a custom Vulkan implementation.) [*][b]Video/Audio Codecs[/b]: We recommend using standalone codecs (eg., VP9 or AV1) rather than codecs that are tied to a specific vendor (eg., WMF). …
[section]Reviewing Store Presence[/section] Our review of your store presence typically takes 3-5 business days to complete, but you'll want to submit your page for review at least 7 business days before you want it live to account for potential changes you'll need to make. We'll send you any feedback if necessary, or if none is necessary, we'll mark your store page as "Ready for release". …
[section]Reviewing Product Build[/section] Our review of your game or software build prior to release typically takes 3-5 business days to complete, but we ask that you plan for at least 7 business days to ensure that we are able to review and approve in time for release and to allow for time in case an issue should arise. …