You can set up your achievement localization data in the [url=https://partner.steamgames.com/apps/loc/]Achievement Localization[/url] section of the App Admin panel. [section]Gold Master Language Support[/section] The Gold Master tool can customize the self installing package to the user language. …
Is it text heavy/lore heavy/easy to relate to globally? This can impact which translation vendor may be better suited for particular languages. [*] [b]Ask for a deck or list of games that a vendor has worked on and ask them exactly what work they did on those games.…
[/b][/callout] [section]Project Setup[/section] [list] [*][b]Enable OpenXR[/b] - (Project / Project settings / XR / OpenXR) and enable stereo shaders (Project / Project settings / XR / Shaders) [*][b]OpenXR Vendors Plugin[/b] - Optionally install the [url=https://godotengine.org/asset-library/asset/3768]Godot OpenXR vendors plugin[/url] from the AssetLib tab. …
[section]Foveated Rendering[/section] Steam Frame supports the Foveated Rendering functionality in Godot via the [url=https://godotvr.github.io/godot_openxr_vendors/]OpenXR Vendors Plugin[/url] (or releases [url=https://github.com/GodotVR/godot_openxr_vendors/releases]here[/url]). [callout]Version 4.2.x is needed for vendor extension support including foveated rendering. 4.2.3 is the minimum version with Linux Arm64 support. 5.x or newer recommended.…
[/list] [/list] [/list] [b]Example Response:[/b] [code=json] { "response": { "result": "OK", "params": { "count": 4, "orders": [ { "orderid": "1233", "transid": "1234567890123456788", "steamid": "76561197972751825", "status": "PartialRefund", "currency": "USD", "time": "2024-01-23T18:30:00Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:15:00Z", "items": [ { "itemid": 100, "qty": 1, "amount": 99, "vat": 9, "itemstatus": "Refunded" }, { "itemid": 101, "qty": 1, "amount": 1299, "vat": 116, "itemstatus": "Succeeded" } ] }, { "orderid": "1234", "transid": "1234567890123456789", "steamid": "76561197972751825", "status": "Failed", "currency": "USD", "time": "2024-01-23T18:40:30Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:39:00Z", "items": [ { "itemid": 100, "qty": 1, "amount": 99, "vat": 9, "itemstatus": "Failed" } ] }, { "orderid": "1235", "transid": "1234567890123456790", "steamid": "76561197972751825", "status": "Succeeded", "currency": "USD", "time": "2024-01-23T18:40:40Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:39:30Z", "items": [ { "itemid": 101, "qty": 1, "amount": 1299, "vat": 116, "itemstatus": "Succeeded" } ] }, { "orderid": "1236", "transid": "1234567890123456791", "steamid": "76561197972751825", "status": "Chargedback", "currency": "USD", "time": "2024-01-23T19:55:00Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:40:00Z", "items": [ { "itemid": 102, "qty": 1, "amount": 999, "vat": 89, "itemstatus": "Chargedback" } ] } ] } } } [/code] [section=GetUserAgreementInfo]GetUserAgreementInfo[/section] [code=http]GET https://partner.steam-api.com/ISteamMicroTxn/GetUserAgreementInfo/v2/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr] [td][b]key[/b][/td][td]string[/td] [td]✔[/td] [td]Steamworks Web API [url=https://partner.steamgames.com/doc/webapi_overview/auth#publisher-keys]publisher key[/url] with [b]Microtransaction[/b] permissions.…
[/list] [/list] [/list] [b]Example Response:[/b] [code=xml] <response> <result>OK</result> <params> <state>WA</state> <country>US</country> <currency>USD</currency> </params> </response> [/code] [section=InitTxn]InitTxn[/section] [code=http]POST https://partner.steam-api.com/ISteamMicroTxn/InitTxn/v3/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr] [td][b]key[/b][/td][td]string[/td] [td]✔[/td] [td]Steamworks Web API [url=https://partner.steamgames.com/doc/webapi_overview/auth#publisher-keys]publisher key[/url] with [b]Microtransaction[/b] permissions.…
Try automating it using the Automated Steam Wrapper process documented above. [b]Q. An Anti-virus vendor has detected my binary as having a virus after applying the Steam DRM wrapper. What can I do?[/b] [b]A.[/b] False positives like this can happen, as the DRM injection process is modifying your binary in the same way a virus might do. Feel free to contact the vendor, or use the API instead of the Steam DRM wrapper. …
[section]Overview[/section] OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting. This repository on GitHub is an SDK that contains the API and samples. …
[docimg=xbox360_controller_face.png]xbox360_controller_face.png[/docimg] [subsection=Joysticks]Joysticks[/subsection] [b]Analog, 2 axes[/b] (+ digital "click") Like most other gamepads, the Xbox 360 controller features two analog joysticks, on the left and right side, vertically offset. Like most modern joysticks, the sticks themselves can be clicked in as additional digital buttons. [docimg=xbox360_controller_joysticks.png]xbox360_controller_joysticks.png[/docimg] [subsection=BackAndStart]BACK and START[/subsection] [b]Digital[/b] The BACK and START buttons are on either side of the Guide Button. …
If your network connection is interrupted then the upload session will automatically close. Most modern streaming software will automatically establish a new connection to continue streaming. This new connection would create a new upload session and it will automatically associate itself with an existing broadcast session (if one exists). …
If your solution currently isn't working, please reach out to both your vendor and Valve for support. [*]Anti-tamper / DRM: In general we don't recommend use of such solutions across any PC platforms, as they may impact disk usage and overall performance. …
Variations: [list] [*] Left Trackpad [*] Right Trackpad [*] Center Trackpad [/list] Sub-inputs: [list] [*] The touch surface itself (analog) [*] Clicking the surface (digital) [/list] [section]Joystick[/section] [docimg=input_joystick_1.png]input_joystick_1.png[/docimg] Joysticks are available on virtually all modern controllers. The PlayStation 4 and Xbox controllers all feature twin sticks, but the Steam Controller only has one, which is considered the "Left Joystick" in this case. …
Unlike other controllers, they are not vertically offset. Like most modern joysticks, the sticks themselves can be clicked in as additional digital buttons. [docimg=ds4_controller_joysticks.png]ds4_controller_joysticks.png[/docimg] [subsection=ShareAndOptions]SHARE and OPTIONS[/subsection] [b]Digital[/b] The SHARE and OPTIONS buttons are on either side of the central touchpad. …
With those in mind, here are some best practices: [list] [*][b]Less Can Be More[/b]: You have more space here, but don't forget: the more you write, the less likely a customer will read all of it. Avoid long paragraphs or 'walls of text.' [*][b]Make it Skimmable[/b]: Consider bolding your key features or section headers using the provided formatting tools. …
If you are running under the debugger and stop the process, the clock might not advance the full wall clock time that has elapsed between calls. If the process is not blocked from normal operation, the timestamp values will track wall clock time, even if you don't call the function frequently. …
[table] [tr] [td]OpenVR (Depth-assisted reprojection)[/td] [td][url=https://github.com/ValveSoftware/openvr/wiki/IVRCompositor::Submit]IVRCompositor::Submit[/url] with [url=https://github.com/ValveSoftware/openvr/blob/v2.15.6/headers/openvr.h#L191]VRTextureWithPoseAndDepth_t[/url][/td] [/tr] [tr] [td]OpenVR (Depth+Motion-assisted reprojection)[/td] [td][url=https://github.com/ValveSoftware/openvr/wiki/IVRCompositor::Submit]IVRCompositor::Submit[/url] with [url=https://github.com/ValveSoftware/openvr/blob/v2.15.6/headers/openvr.h#L202]VRTextureWithMotion_t[/url][/td] [/tr] [tr] [td]OpenXR (Depth-assisted reprojection)[/td] [td][url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XR_KHR_composition_layer_depth.html]XR_KHR_composition_layer_depth[/url][/td] [/tr] [tr] [td]OpenXR (Depth+Motion-assisted reprojection) Vendor-agnostic[/td] [td][url=https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_EXT_frame_synthesis.html]XR_EXT_frame_synthesis[/url][/td] [/tr] [tr] [td]OpenXR (Depth+Motion-assisted reprojection) Oculus[/td] [td][url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XR_FB_space_warp.html]XR_FB_space_warp[/url][/td] [/tr] [/table] You can visualize the depth or motion vectors submitted by using the [doclink=steamframe/debugging#GameTextures]Draw Performance Assessment Game Textures in Headset[/doclink] option. …
Get advice and suggestions about these questions and more from our panel, with expert perspectives from development, publishing, and legal angles. At Steam DevDays in 2016, Valve's Connor Malone hosted a panel to discuss healthy relationships with between developers and publishers. …
.) [*][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). [/list] [subsection]Game Features[/subsection] [list] [*][b]Clouded Saves[/b]: For games that allow saving, we recommend enabling automatic clouding of saved games: users should be able to save their game on a Deck or Steam Machine and resume on a different PC, and vice versa, without manually transferring files. …
[subsection]3) Generative Artificial Intelligence Content[/subsection] The third part of the survey deals with generative artificial intelligence in your development or product. We are aware that many modern game development environments have AI powered tools built into them. Efficiency gains through the use of these tools is not the focus of this section. …
[docimg=2020-03-10_22-20-21.png]2020-03-10_22-20-21.png[/docimg] [*] Open "Settings" in the Control Panel. [docimg=2020-03-10_22-25-10.png]2020-03-10_22-25-10.png[/docimg] [*] Go to the 'Stream' configuration tab. Choose 'Custom Streaming Server' from the Stream type drop-down. …
[docimg=2020-03-10_22-32-11.png]2020-03-10_22-32-11.png[/docimg] [*] You are set for streaming. You can close the setting panels and start streaming. You can return to the [url=https://steamcommunity.com/broadcast/upload]broadcast upload settings page[/url] while logged in as the streaming account to see statistics about your broadcast, any diagnostic error messages, and to find a link to the stream on Steam Community. …
This will allow your update information to appear accessible from the 'downloads' panel in the Steam client and to any customer that is following your game (which they can do from your community hub or store page), on your store page, and within the Steam library. …
Simply head to the [url=https://partner.steamgames.com/apps/installer/]Redistributables[/url] tab which is available under the "Installation" tab in the Steamworks App Admin panel and check the checkboxes for the redistributables which your game or application requires. Don't forget to publish your changes when you're done! …
[b]Enable Anti-Cheat APIs[/b] This can be done from the [url=https://partner.steamgames.com/apps/vac/]Anti-Cheat Configuration[/url] page in the App Admin panel. These APIs must be enabled to apply Game bans. [section]Secure game servers[/section] A "secure" game is one that doesn't allow convicted cheaters to play on it. …