| DirectPlay SDK中文翻译--Introduction To DirectPlay |
Introduction To DirectPlay 目录: Creating and Managing Sessions DirectPlay Network Communication DirectPlay Transport Protocol Communicating with DirectPlay Objects DirectPlay Lobby Support 正文: Microsoft? DirectPlay? API为开发者提供了开发诸如多人游戏或聊天程序的工具。一个多人游戏有两个基本特性: 1 两个或更多的独立用户,每个用户都拥有客户端游戏程序 2 网络连接了用户的电脑(通过中央电脑服务器连接) DirectPlay提供了一个额外的层,使你的游戏和网络底层相隔。并且,你的游戏可以非常简单的使用DirectPlay API,并使用DirectPlay管理网络通讯。DirectPlay提供的特性,使多人游戏在开发中得到了很多简化。其中包括: 1 创建和管理点对点,客户/服务会话(Session) 2 在一个会话中管理用户(User)和组(Group) 3 管理在不同网络平台上进行会话的成员之间发送的消息 4 使游戏在大厅(Lobby)中互动 5 使用户可以进行语音互动 这部分的文档(Introduction To DirectPlay)高度概括了DirectPlay的功能。随后的章节将告诉你DirectPlay的细节和如何在你的游戏中使用DirectPlay。 Creating and Managing Sessions 游戏会话是一个特殊的多人游戏。会话中会有两个或者更多的用户同时在线,用户彼此拥有相同的游戏客户端。角色(Player)在游戏中是一个实体,它被游戏所定制。每个用户可以拥有多个角色。不过,游戏必须自己管理这些角色,使用DirectPlay接口对象来管理这些角色。 创建会话的第一步就是收集一组用户的信息。有两种方式: 1 大多数游戏会话都被一个运行在远程计算机上大厅程序(lobby application)所管理。大多数基于Internet的游戏都用这种方式。 2 各个用户自己相互进行联系。这种方式一般用在小型的局域网中。并且游戏不是很大。 会话被管理后,游戏就可以被连接。在会话过程中,角色可能从会话中退出,或者新的角色被加入。 在多人游戏中,同一会话中的用户UI应该进行同步。管理多人游戏会话应该反复发送消息流给每个用户。比如,每当角色移动,一个消息就应该被发送,以便在所有其他游戏客户端更新角色的位置。DirectPlay的核心就是为所有在一个会话中的计算机发送高效安全的消息。 有两种基本方式来组织会话消息,一种是点对点,一种是客户/服务模式。讲这两种模式的资料很多,这里就不再复述。 DirectPlay Network Communication DirectPlay的主要功能是使游戏和网络底层分开。如果你需要发送状态更新的消息,你可以很简单的调用DirectPlay API,不必在意复杂的网络连接情况。DirectPlay网络服务提供了多种网络连接支持:TCP/IP, IPX, modem, 和 serial links。 DirectPlay Transport Protocol DirectPlay网络核心是DirectPlay协议。这个传输层协议在DirectPlay8中完全重写,现在已经被用在所有的消息中。DirectPlay协议重点放在让你可以很简单的发送消息。协议为多人游戏提供了很多量身定制的特性,包括: 1 可靠和不可靠的消息传递。可靠传递的消息是不断的发送,直到目标程序确信接收了他们。你可以根据你的情况分配消息的具体发送方法。 2 连续和非连续消息传递。连续消息被一个个传送到目标程序中。 3 消息分割和打包。当消息的大小超过网络的许可,DirectPlay将自动进行分割和重组打包。 4 阻塞控制。DirectPlay会自动控制(throttles)你传出消息的速度,使目标程序能够执行和接收消息。 5 发送顺序。要确保重要的消息被首先发送,DirectPlay可以设置消息的发送级别,其中包括low, medium, 和 high priority。High priority(最高优先发送)消息被最先送上消息队列的前端,然后是medium和low。 6 消息超时处理。防止消息队列被阻塞,DirectPlay允许你分派每个消息一个超时值,当这个消息超时后,便从消息队列中移除。 DirectPlay Addresses 为了传送消息,每个加入多人游戏的人都要有一个唯一的地址。运行游戏客户端的电脑提供设备地址,而游戏主机将提供主机地址。 DirectPlay的地址是一个URL字符串。这些字符串由如下格式构成: x-directplay:/[data string] 在不同的网络连接上,它包含发送消息方和接收方这样的元素。 DirectPlay地址对象会生成URL字符串。依你的熟练程度,你可以直接使用URL地址或者通过DirectPlay地址对象来管理URL。(using the methods exposed by the address object to handle each element of the data string separately) Communicating with DirectPlay Objects DirectPlay其实是基于COM的。各个组件管理各个不同的方面。比如,DirectPlay点(peer)对象(CLSID_DirectPlay8Peer),就是负责管理点对点游戏的。 你通过组件的接口来和它通讯。比如,在点对点游戏中,你发送给另外用户数据时,使用IDirectPlay8Peer::SendTo。DirectPlay会发送消息到目标。 DirectPlay通过很多callback functions(回调函数)进行联系。在原理上,这些函数和windows程序使用得回调函数一样。游戏执行这些callback function,在DirectPlay初始化期间传送函数指针。当DirectPlay需要通讯时,它调用callback function,并且传递两个重要信息: 1 鉴定消息类别ID。 2 一个数据块指针,一般是一个结构体。 比如,当一个消息发送上面的信息到目标,目标程序的callback function将接收到DPNMSGID_RECEIVE消息ID,指出那个消息已经到达。并伴随着包含数据的结构。 因为大多数的DirectPlay消息是多线程的,其中关键就是callback function如何被恰当的执行。 DirectPlay Lobby Support 大厅(Lobby)主要的任务是安排角色会面和安排游戏。大厅服务器(Lobby servers)一般还有其他功能,比如主持聊天室,发送新闻和信息,主持商业买卖。大厅服务器可以便利的使用和安排多人游戏工作,但它不是必需的。多人游戏也可以直接在大厅客户端之间进行通讯(lobby clients)。 一个具有大厅的多人游戏,由三个部分组成: 1 大厅服务器 2 大厅客户端 3 支持大厅的游戏(A lobbyable game) DirectPlay没有具体的告诉大厅服务器如何工作,你可以自己安排。DirectPlay提供了对大厅客户端的支持。一个大厅客户端通过大厅服务器连接程序(vendor)进行工作,连接程序被安装到用户的系统上。它就像一个链,来连接用户和大厅。当你要直接进行通讯,你必须知道每个大厅的工作细节。 大厅客户端游戏接收大厅服务器的通讯细节,使用恰当的通讯协议。大厅客户端进行用户和游戏程序之间的通讯。游戏也能使用接口传送消息给大厅客户端。 大厅实际可以连接任何程序。不过,游戏必须有某些具体的大厅支持组件(lobby-aware components)。一般的,一个支持大厅的游戏可以通过会话和大厅客户端进行联系。如果游戏被注册成支持大厅,大厅客户端能自动的接收更新信息,并在游戏里进行相应的更新。诸如host migration。 |
相关推荐
单细胞测序数据整合
基于Seurat 联合harmony进行单细胞数据整合分析
DirectX简介 第四篇 DirectPlay简介
DirectPlay简介 1. DirectPlay允许开发者提供不考虑传输媒介细节特征的多人参与功能,DirectX对不同的媒介同等对待(无论是TCP/IP网,IPX网或是调制解调器) 2. DirectPlay对象 DirectPlay:提供DirectPlay的核心功能,它的接口给管理游戏者、组、游戏会话和数据传送提供各种方法。 DirectPlayL
《大明王朝1566》中,朝廷财政危机无法解决的根源分析
财政困局中的财富最终流向三重黑洞:皇室挥霍(如嘉靖炼丹修殿)、特权阶层贪腐(严党年入百万两盐税)、制度性损耗(宗室供养、低效官僚)。更深层的“钱”其实是被禁锢在道德化治理的牢笼中——当国家用“黄河长江皆可为用”的权术思维替代制度性改革时,财政危机便成为帝制王朝无法逃脱的宿命。
[译]使用DirectPlay
翻译自:Microsoft DirectX 8.1 VBDocument译者:Xuefeng(未经许可请勿转载) 1. 使用DirectPlay<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 微软DirectPlay应用程序接口(API)是DirectX的组件之一,它使你能够开...
手把手教你用微信小程序实现智能硬件音视频通话(含Linux/RTOS适配)
本文详细介绍了如何利用微信小程序硬件框架(WMPF)和音视频SDK,在智能硬件(包括Linux与RTOS设备)上实现音视频通话功能。文章从架构设计、设备端SDK集成、小程序VOIP插件开发到跨平台调试与性能优化,提供了全链路实战指南,帮助开发者打通微信小程序与嵌入式设备间的实时音视频通信。
新版本大疆智图4.5 永久许可摄影测量建模软件
大疆智图支持常见格式的成果输出,包括 TIFF 正射影像和高程模型、LAS 格式点云,以及 B3DM、OSGB、OBJ 等六种常用格式的三维模型,还包括 DXF 和 SHP 等格式的等高线。大疆智图 DJI Terra是领先的三维重建软件,提供先进的技术和简单的操作,一站式解决方案,从航线规划到数据的获取,以及模型重建、数据分析等都提供独一无二的支持,优化项目工程,提供自动化优势,获得更有效智能的决策和行动,最终用户可以获得理想的结果,减轻工作压力,提高作业效率。质量报告和剖面查看功能有助于分析点云质量。
DirectPlay分组功能
现在网络游戏的网络功能很大一部份是居于WinSock/Socket之上的。但Microsoft的游戏开发包DirectX SDK同样提供了网络的功能----DirectPlay. 当然,WinSock/Socket与DirectPlay相比较,都存在着优缺. 而这个"优"与"缺"不是一两句话可概括的(本文重点也不是讲它们的区别). DirectPlay的优点:Microsoft的
Ubuntu+Dify实战:如何让大模型知识库完美支持图片召回(附避坑指南)
本文详细介绍了在Ubuntu系统上部署Dify平台,并实现大模型知识库图片召回功能的完整实战方案。通过解析Dify处理图片的底层逻辑,重点讲解了配置Nginx代理服务器将本地图片路径转换为可公开访问URL的核心工程步骤,并提供了文档预处理、环境变量配置以及父子分段策略等高级技巧,帮助开发者构建图文并茂的AI应用,有效提升知识库的丰富性和用户体验。
使用DirectPlay进行网络互联(1)
了解网络互联网络是指多台计算机互联以进行数据传输及通信的系统。除了两个或更多的计算机之外,网路还需要有网络互联软件(或一个网路操作系统)、网络适配器以及电缆。网络适配器有各种形状和大小,但是一般都采用调制解调器的形状。实际上,调制解调器就是一个网路适配器,它能够将一台计算机通过世界上最大的网络---互联网连接到数百万台计算机上。网路模型网络互联模型有三种基本类型:服务器端、客户端以及点对点。使用服...
调节桌面图标大小的方法(编程)
如果你对其他操作系统或编程语言有类似的需求,可以根据具体的情况进行相应的调整和搜索相关的库和方法。在编程中,我们可以使用各种桌面应用程序来调节桌面图标的大小。库提供的函数,我们获取了桌面图标的窗口句柄,并使用Windows消息发送方式设置图标的大小。你可以根据自己的需求修改代码中的图标大小值,并在运行代码后观察桌面图标的变化。函数并传入所需的图标大小,这里设置为48x48像素。首先,我们需要使用Python的第三现的方法。首先,我们需要使用Python的第三方库。首先,我们需要使用实现的方法。
通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现
在。
DirectPlay分组功能 (转)
DirectPlay分组功能 (转)[@more@]现在网络游戏的网络功能很大一部份是居于WinSock/Socket之上的。但microsoft的游戏开发包DirectX SDK同样提供了网络的功能----DirectPlay...
从数据库到数据仓库:数据仓库导论
本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。
【Visual C++】游戏开发笔记之一——API函数、DirectX的关键系统
本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.youkuaiyun.com/zhmxy555/article/details/7318264 作者:毛星云邮箱:happylifemxy@qq.com 在从第一节开始看这个笔记系列的话,大家会发现,一上来就开始讲DirectX相关的内容,但是写了几节之后,又开始讲 GDI了。 这是因为我...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
DirectX SDK 各版本开发包下载地址合集
sczgcat DirectX SDK 各版本开发包下载地址合集 PCHOME 下载 http://download.pchome.net/search-0--directx----------1-1-3.html DirectX 8.0 SDK 开发包 2000-11-09 http://download.microsoft.com
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
DirectPlay学习笔记[1]
教材:DirectPlay的帮助文档DirectPlay的基本概念 多用户程序具有两个基本特征: 1、两个及以上的用户个体,每个都在自己的机器上有着一个客户端; 2、网络使得用户机器间可以互相通信,或者可以通过一个专职的服务器(进行通信)。 DirectPlay具有简化多用户应用程序处理的若干特征: ·创造并管理点对点(Peer-to-Peer)及客户端/服务器会话; ·在会话中管理用
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
再发自己的翻译的《Directshow(SDK)帮助文档 ---------智慧的鱼
很久以前在优快云的论坛发过类似的帖子,当时也曾经给N多朋友发过这份文档,也有朋友在公司的服务器上放置了一段时间,供大家下载,但是,一直以来,还是不断的有朋友发email来要这份文档,有时候工作繁忙,就忘了回email,实在抱歉,其实这份文档已经在网络上流传的很久了,我自己就在网上搜到一份pdf版,呵呵,可能是某个热心网友将doc转换成pdf,方便了大家阅读。所以,特地申请了一个邮箱,将所有的
【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命
如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。
游戏录屏怎么选画质和帧率?先看动态画面需求
录制时注意帧率与画质的平衡,根据内容选择合适设置,兼顾细节与连贯性。
设计模式(unity游戏研发版)
当你使用图形用户界面类时通常会遇到一个问题。比如,你创建了自定义按钮类并允许客户端在按钮中注入自定义代码,这样当用户按下按钮时就会触发这些代码。观察者模式允许任何实现了订阅者接口的对象订阅发布者对象的事件通知。你可在按钮中添加订阅机制,允许客户端通过自定义订阅类注入自定义代码。在Unity中,这就像UnityEvent在Inspector中绑定多个回调。
Claude Fable 5.2 登顶:65 分、单发做游戏,和一份 $26.54 一单的账单
Anthropic 发布 Claude Fable 5.2:AA 智能指数 65 分登顶历史第一,但性能 #71、成本 #73、冗余度 #72——最强能力、最贵成本、最慢速度的矛盾体。同底层 Mythos 5.2 无护栏反而更强。文章拆解:65 分构成、官方实战验收、基准提升真伪、一条提示词一晚做出街机游戏的完整流水线(自写机器人跑完 12 关自检)、$26.54 账单与 98% 缓存折扣下的真实成本重估。
Unity 数据存储指南:本地存储、个性化设置、缓存与 Resources/StreamingAssets 的区别
在 Unity 开发中,“数据存到哪里”、“缓存能不能清”、“打包后资源有什么区别” 是新手最容易混淆、老手也经常踩坑的问题。Unity 本地存储机制(包括 Unity 放在 C 盘的内容);Unity 个性化设置(编辑器首选项 Editor Preferences);Unity 缓存的打开、关闭与清理;打包后 Resources 与 StreamingAssets 的区别;其他可自定义存储的内容汇总。为方便理解,本文配有一个可直接运行的演示工程,所有代码见文末"配套工程说明"。
用 AI 在 Unity 里做一款 RTS:最难的不是生成代码,而是证明它真的能玩
git@github.com:zoucdr/unity-skilled-mcp.git
9793



被折叠的 条评论
为什么被折叠?



