传奇私服发布网_新开传奇网站发布_最全优秀单职业传奇私服发布平台_www.sf999.Com
新开传奇私服网站专注于服务广大新开传奇首区和复古传奇私服玩家,我们承诺全年无休,每天为您提供最新的新开传奇网站和传奇sf999信息。...
2025-01-03
概览 API 让您的游戏可以访问通过此 API 提供的所有基础系统,充分利用 Steam 的所有功能, 包括用户打开 Steam 界面时暂停您的游戏、邀请好友游戏、允许玩家解锁 Steam 成就、让玩家在 Steam 排行榜上竞争,等等。
API 索引对 API 中支持的每个接口、功能、回调和类型进行了分类和记录。
在 Steam 上发行产品从不要求与 API 集成,但我们强烈推荐您进行集成,因为这样您可以实现 Steam 用户期待的许多交互。入门指南注意: API 官方支持 C++,在 的 上使用 2008+,在 macOS 和 / Linux 上使用 GCC 4.6+ 和 Clang 3.0+。 如果您使用的是第三方引擎或非 C++ 编程语言,您应该先查看,了解上手使用您的引擎或所选择的语言是否有更多特定说明。 有时候您也许可以跳过许多步骤。
初始化与关闭您在自己的项目内设置 API 后,就可以通过调用 函数,初始化此 API 并开始使用。 这样即可设置全局状态,并填入可以通过与此接口名称匹配的全局函数访问的接口指针。 必须调用此函数并返回成功,才能访问任何 !
如果 API 不知晓您游戏的 AppID 则不会初始化。 您从 Steam 启动自己的应用时,Steam 会自动准备好 AppID。 您在开发时需要用文本文件提示 Steam。 在您的可执行文件旁创建名为 .txt 的文本文件,其中只包含 AppID,不含有任何其他内容。 这样会覆盖 Steam 提供的值。 您不应该将其与生成版一起发布。 示例:
480
返回 false 表明发生了以下情况之一:
如果您遇到初始化问题,请查看 API 调试文档,了解有关调试 API 的各种方法。 将查看您的可执行文件是否通过 Steam 启动,如果不是,则重启可执行文件。
此项非必选,但强烈建议使用。因为如果用户直接启动可执行文件,与您的应用程序(包括您的 AppID)关联的 Steam 上下文不会被设置。 如果发生这种情况, 会失败,您将无法使用 API。
如果选择使用此项,则您应该在调用 前,首先调用此 函数。
如果返回 true,则在必须时启动 Steam 客户端,然后通过客户端再次启动您的游戏,而您应尽快退出进程。 此举将有效地运行 steam://run/,因此可能不会重启调用此函数的确切可执行文件(例如,如果您是从调试程序运行可执行文件)。 将始终从安装在您 Steam 库文件夹中的版本进行重启。
而如果返回 false,则您的游戏是由 Steam 客户端启动,无需进行任何操作。 一个例外是,如果存在 .txt 文件,则无论何种情况都会返回 false。 这让您不必通过 Steam 客户端启动您的游戏,便能进行开发与测试。 将游戏上传至您的 Steam depot 时,务必删除 .txt!
注意: 如果您在您的主要可执行文件上使用 Steam DRM 包装器,则此检查步骤并非必需,因为 DRM 包装器会内部进行检查。使用 API 完毕后,您应该调用 以释放 Steam 内您的应用程序所使用的资源。 如果可能,您应该在进程关闭时调用此函数。
这将不会取消 Steam 界面与您游戏的挂钩,因为不能保证您的渲染 API 已将其使用完毕。 接口 API 由多个接口组成,均公开了有限的、特定数量的功能。
成功初始化后,您可以通过其全局函数访问这些接口。 函数名称与接口名称始终匹配。 因此您可以通过 () 访问器访问 ,也可以通过 () 访问 。
您可以使用这些接口进行如下调用:
// 获得当前用户的 Steam 名称。const char *name = ()->();
您可以在 API 索引上,或是打开 API 头文件查看完整的接口列表。回调回调是 最重要的方面之一,让您可以在不锁定游戏的情况下从 Steam 异步获取数据。 回调的目的是提供简单、轻巧、类型安全、线程安全的方式,引发异步事件至注册为侦听器的任何对象。
回调通常由来自 Steam 的事件(例如好友登录或退出),或某些 API 函数的异步结果触发。 每个回调由一个结构组成,其中包含一个唯一的标识符和一小组数据。 *.h 头文件中声明了回调,与其最紧密所属的接口归为一组。
要侦听回调,结构或类必须在其声明中使用宏 ( :, :, : )。
这为该类定义了已自动保持原型为 void :( : * ) 的一个本地成员函数。 创建对象的一个新实例将导致此成员函数将其自身注册为 API 的侦听器;销毁对象将导致其取消注册。
注意: 您应该确保创建侦听回调的对象前,Steam 已初始化。
针对要调度至已注册侦听器的回调,您必须为其调用 。 更好能频繁调用,因为调用间隔时间越长,从 API 接收事件或结果的延迟越长。 大部分游戏每渲染一帧调用一次,我们强烈建议您至少每秒调用一次。 调用期间,在调用 s 的线程上下文中,所有注册侦听器函数都会被调用。示例一个您也许希望使用的回调是 。 正如其名称所暗示,每次用户激活或停用 Steam 界面时,它都会给您发送一个回调。
class {:( , ed, _t );};void ::ed( _t* ){if ( -> )( "Steam now \n" );( "Steam now \n" );}
回调的一个常见也建议使用的情况是打开界面时,暂停游戏。许多 方法使用调用结果,而不是回调,来异步返回函数调用的结果。 回调与调用结果的区别在于,回调向所有侦听器广播, 而调用结果只针对特定侦听器。 与回调一样,您的游戏需要调用 ,以将调用结果调度至侦听者。
您可以通过查看其返回的值来识别提供调用结果的函数。如果返回 且具有 () 属性,则您必须注册以接收调用结果。
注意: 回调与调用结果不可互换。 事件只能通过其中一种方法传入,而非两者均可。 您必须确保注册的事件类型正确!
调用结果必须用 类型创建为结构/类的成员,您还需要创建接收回调的成员函数。
void func( : *, bool );< :, : > ;
函数、函数参数以及 类型可按需自由命名。示例以下示例显示了如何使用会产生 调用结果的 API。
// 在您的类定义中class {:void ayers();:void ( rs_t *, bool );< , rs_t > ;};// 进行异步请求,以接收当前玩家数量。void ::ayers(){( " of \n" ); = ()->ayers();.Set( , this, &:: );}// 调用 s() 后,在.()->ayers() 异步返回时调用。void ::( rs_t *, bool ){if ( || !-> ){( "rs_t !\n" );;}( " of : %d\n", -> );}
注意: 如果您不能使用 系统,那么您也许可以使用 、 和 来追踪调用结果的状态。手动回调调度用来注册回调的类和宏在 C++ 代码中方便好用。 但还有一个更低级别的机制用来处理回调。 此机制操作起来更像一个 事件循环。 您在一个循环中提取下一个可用的回调,然后用自己希望的任何机制进行调度,而不是调度所有回调及调用结果来激活侦听器的一个单一函数。 手动调用模式对于绑定将 SDK 暴露至 C++ 之外其他语言的层尤其有用。 参见 .h 中的 (),了解更多信息。Steam 游戏服务器 API 对运行游戏服务器和常规客户端都提供支持。 在 API 术语中,游戏服务器是普通用户为进行多人游戏而连接的系统中实体, 可以通过互联网连接至远程游戏服务器,或本地连接至与客户端处于同一进程中的游戏服务器。 游戏服务器有自己的 API 函数集可用,也有自己独一无二的 Steam ID,便于其他用户引用。
使用 Steam 游戏服务器 API 时,您首先需要纳入.h,而非 .h。
初始化并使用游戏服务器 API 与普通 API 非常相似:
初始化游戏服务器后,您即可访问两个游戏服务器独有的接口 和 s。
您也可以从游戏服务器访问以下常规接口:
如果您运行的是专用游戏服务器(没有客户端组件),您只需要初始化游戏服务器 API,无需初始化普通户 API。
请参见 API 示例应用程序(),了解使用游戏服务器 API 的完整载入示例。
与游戏不同的是,专用服务器通常会在没有安装 Steam 客户端的环境中运行,因而无法获得最新的 二进制文件。 为了让专用服务器获得最新的 Steam 二进制文件,您必须在您的应用中纳入专用服务器可再发行文件。登录 并导航至您应用的技术设置,然后在“安装”->“可再发行文件”中查看并勾选“专用服务器可再发行文件”。商用引擎和非 C++ 语言支持如果您使用的是商用游戏引擎或非 C 或 C++ 语言,您需要查看其对 API 提供了什么水平的支持。
有些引擎提供原生内置支持,有些则可能需要第三方解决方案。
如果您的引擎没有原生支持,您可以使用 Steam Web API 来访问 Steam 支持的多个功能。
无论 SDK 以何种方式集成至您的引擎,您必须要有最新的 SDK,以将您的应用程序上传至 Steam。
注意: 如果您在 Steam 上发布的软件中部分可以通过限制性开源许可获得,那么请参见在 Steam 上分销开源应用程序。
下方列出了大家常用于在 Steam 上发布游戏的常见引擎,以及如何在这些引擎中上手使用 API 的相关文档。
注意: Valve 不以任何方式对这些引擎中的任何之一或任何第三方解决方案提供担保或支持。 此列表完全按名称排序,远未包含所有引擎,只起入门指南之用。 只有包含原生支持或所提供第三方解决方案符合准则的引擎才列入其中。 只有按照 SDK 适度更新、可根据宽松许可免费获得(请见在 Steam 上分销开源应用程序),且在 讨论版有讨论串的第三方解决方案才列入其中。 建议您咨询社区,了解哪个引擎最适合您的特定设置。引擎:引擎是否原生支持?信息
✔️
2
✔️
一起使用 SDK 和 :
Godot
❌
Third Party: -
Haxe
❌
第三方: - 开发者讨论区支持讨论串
Game
✔️
API ›
RPG Maker MV
❌
第三方: - 开发者讨论区支持讨论串
2013
✔️
分销 引擎游戏/模组
Unity
❌
第三方: . - 开发者讨论区支持讨论串
第三方: - 开发者讨论区支持讨论串
4
✔️
Steam
✔️
语言: C#
Java
Rust
绑定至其他语言的扁平化接口SDK 有一些功能可以辅助创建其他语言的绑定层。
技术详情Steam 使用多种技术将功能暴露给您的应用程序。 您完全不需要彻底了解 API 的工作原理,不过,这其实还是相当简单的,而且能有助于您就如何让所编写的游戏代码与 Steam 进行集成做出计划。
您链接至 [64][.dll/.so/dylib] 后,它将提供对一小部分 C 语言函数的访问权限,这些函数前缀为 S_API 宏,均在 .h 和 .h 中暴露。 模块本身很小,只暴露基本功能,以初始化和关闭 API。
API 在初始化时,会找到正在运行的 Steam 客户端进程,并从该路径载入 .dll。 .dll 本质上是 Steam 客户端的核心引擎, 包含并维护运行 Steam 所需的信息。 Steam 客户端 UI 用与此处暴露的函数类似的一个函数集访问 .dll 提供的数据。 由于此数据在 Steam 进程中,因此所有 Steam API 调用都透明封送并通过 RPC/IPC 机制发送 (跨进程管道 )。
Steam 进程通过 .dll 保持与 Steam 后端服务器的持续连接。 所有验证、匹配、好友列表与 VAC 通信均通过此连接发生。 如果用户有网络问题,或者如果用户连接至的 Steam 服务器要更新,此连接会断开。 如果连接断开或重新连接,回调将发布至任何运行的应用。 Steam 客户端会自动尝试重新连接,且正在运行应用的客户端有优先权,因此,重新连接时间一般不超过 10 秒,但在一些罕见的情况下,可能会长达 5 分钟。
API 通过类似 COM 的机制进行版本管理,接口的字符串名称与版本传入 .dll ,后者再向调用方返回正确的接口版本。 .dll 包含一套适用于接口所有已发行版本的适配器,在最新接口的上下文中重新定向或解释旧调用。 适配器位于 Steam 客户端内,如果出现任何问题,很容易更新。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,请告知我们,本站将立刻删除涉嫌侵权内容。
相关文章
新开传奇私服网站专注于服务广大新开传奇首区和复古传奇私服玩家,我们承诺全年无休,每天为您提供最新的新开传奇网站和传奇sf999信息。...
2025-01-03
明确否认him存在,但是我们可以从一些蛛丝马迹中发现官方有说谎的可能性。就有细心的玩家,从这五个地方观察到了him存在,总共4个证据。...
2025-01-03
8条回答:【推荐答案】主公莫慌(手游)-新手奖励1.序列号:gsaq6617(官方)固定唯一,可重复激活无数新账号。2.奖励:3000绿钻,1000将魂,1紫将...
2025-01-03
网盘提取码: xawy帝国cms内核仿《新趣头条》娱乐游戏资讯网站源码,适合做电竞,娱乐,评测类的站点。利用模板改改可以轻松完成1个站点。不带安装教程...
2025-01-03
热评文章
2022年专属火龙之神途新版
1.80龙神合击传奇
1.76永恒小极品+5复古传奇
1.76双倍魔天大极品第三季单职业
1.76神梦传奇三职业
1.80聖统圣统合击三职业传奇