多人手柄联网游戏

As part of our commitment to solving challenges for connected games development, we’ve focused first on real-time multiplayer games, and we’ve learned a lot from our prior attempts to democratize this space. First and foremost, we know that in order to build the right new technology, we need your feedback every step of the way. So as we begin this new chapter, we welcome you to build alongside us, give us feedback, and in return, we promise to give you frequent updates and high transparency.

作为我们致力于解决互联游戏开发挑战的承诺的一部分,我们首先专注于实时多人游戏,并且从先前使该空间民主化的尝试中学到了很多东西。 首先,我们知道,为了构建正确的新技术,我们在每一步都需要您的反馈。 因此,当我们开始新的篇章时,我们欢迎您与我们一起发展,向我们提供反馈,并作为回报,我们承诺为您提供频繁的更新和高度的透明度。

Following a previous blog post announcing the deprecation of UNet, it became immediately apparent from the feedback we received that we would need to provide more details about our plans moving forward. In this blog post, we will address this by sharing both our long-term vision and the first releases, which will be available this fall.

在先前的博客文章宣布弃用UNet之后 ,从我们收到的反馈中可以很明显地看出,我们需要提供有关我们计划的更多详细信息。 在此博客文章中,我们将通过分享我们的长期远景和第一版发行版来解决此问题,这些发行版将在今年秋天发布。

网络:性能和可伸缩性 (Networking: Performance and scalability )

Long-term:

长期:

“Performance by Default” is how we describe several ongoing feature-initiatives, including the Job System (multi-threaded processing), Burst Compiler (specialized for Unity game code), and the Entity Component System (data-oriented game code), which together can provide major improvements in performance of multiple orders of magnitude.

“默认情况下的性能” 是我们描述几种正在进行的功能初始化的方式,包括作业系统(多线程处理),突发编译器(专用于Unity游戏代码)和实体组件系统(面向数据的游戏代码),在一起可以大大提高多个数量级的性能。

Together, these initiatives mean that Unity will be able to support virtually any game you dream of regardless of the scale. Large maps, many dynamic objects or AI, and even large numbers of networked players, are all viable.

这些举措共同意味着Unity可以支持您梦想中的几乎任何游戏,而不论其规模如何。 大型地图,许多动态对象或AI,甚至还有大量的网络播放器, 都是可行的。

In this new paradigm, it is significantly easier to enable components for a networked environment. What’s more, the highly structured data of ECS enables elegant solutions for higher-level simulation like delta compression, interpolation, and more.

在这种新范例中,为网络环境启用组件非常容易。 此外,ECS的高度结构化数据为高级仿真(例如增量压缩,插值等)提供了出色的解决方案。

We’re building the new networking stack with these key principles in mind:

我们将牢记以下关键原则来构建新的网络堆栈:

  • Transparency: Packages enable us to provide the source code for our new solutions and ship rapid updates as previews outside the four-month release cycle. You may debug and extend our networking solutions as your game requires.

    透明度: 软件包使我们能够为我们的新解决方案提供源代码,并在四个月的发布周期之外提供快速更新作为预览。 您可以根据游戏需要调试和扩展我们的网络解决方案。

  • Modularity: Monolithic libraries add unnecessary overhead for features you likely don’t need. Each new feature beyond the baseline transport will therefore be separate and optional.

    模块化: 整体式库为您可能不需要的功能增加了不必要的开销。 因此,超出基准传输范围的每个新功能都是单独的和可选的。

  • Performance and scalability: We recognize that performance is a key requirement to all of our features, and networking will play a crucial part in our “performance by default” vision for the future. We are ensuring that, from the beginning, networking will scale to the needs of modern games.

    性能和可伸缩性: 我们认识到性能是我们所有功能的关键要求,并且网络将在我们对未来的“默认性能”愿景中发挥至关重要的作用。 我们从一开始就确保网络可以满足现代游戏的需求。

  • Archetype specificity: We now understand that there is no single solution that is ideal for all game types. So instead, we will create different solutions for common network archetypes used in games, such as FPS, RTS and fighting games. The initial focus is on the client-side prediction model commonly used in FPS games.

    原型特定性: 我们现在了解,没有适合所有游戏类型的理想解决方案。 因此, 我们将为游戏中使用的常见网络原型(例如FPS,RTS和格斗游戏)创建不同的解决方案。 最初的关注点是FPS游戏中常用的客户端预测模型。

Short-term:

短期:

In the short-term, we’re building the new networking stack from the ground up, starting with a very minimal transport layer: UDP-based send/receive functionality provided with source as a preview package. The APIs included out-of-the-box will be Job System compatible and optimized to pair well with ECS-based games, though neither are required. This first step is a bare-bones beginning, and we know many critical features (including Reliability and Sequencing) may be required before you have everything you need for your game.

在短期内,我们将从最底层的传输层开始,从头开始构建新的网络堆栈:源提供的基于UDP的发送/接收功能作为预览包。 开箱即用的API将与Job System兼容,并且经过优化,可以与基于ECS的游戏很好地配对,尽管两者都不是必需的。 第一步只是一个白手起家,我们知道在拥有游戏所需的一切之前,可能需要许多关键功能(包括可靠性和排序)。

In parallel, we will release a full source FPS sample game that includes production-quality sample code for client-side prediction, interpolation, and delta compression built on the new transport. The first step toward other archetypes will be released at a later date.

同时,我们将发布完整的FPS示例游戏,其中包括用于生产质量的示例代码,用于基于新传输的客户端预测,插值和增量压缩。 迈向其他原型的第一步将在稍后发布。

托管专用服务器:一致性和安全性 (Hosted dedicated servers: Consistency and security)

Long-term:

长期:

After analyzing the landscape of real-time multiplayer topologies, we’ve come to the conclusion that a dedicated game server (DGS) model is the best option for real-time multiplayer games because it provides:

在分析了实时多人游戏拓扑的格局之后,我们得出的结论是,专用游戏服务器(DGS)模型是实时多人游戏的最佳选择,因为它提供了:

  • Consistency:  The processing and logic are moved to a resource that you control. This enables predictable connection quality and no “host-advantage” for latency-sensitive games.

    一致性: 处理和逻辑移至您控制的资源。 这样就可以实现可预测的连接质量,而对延迟敏感的游戏则没有“主机优势”。

  • Scalability: While Peer-to-Peer connections struggle to expand beyond a small pool of players per game instance (typically a dozen or fewer), DGS can support much larger populations on more powerful machines.

    可扩展性: 虽然点对点连接努力扩展到每个游戏实例的一小群玩家(通常不超过十二个),但DGS可以在功能更强大的机器上支持更多的用户。

  • Security: Server-authoritative code enables cheat prevention rather than having to detect it after an unfair event has already occurred.

    安全性: 服务器授权代码可以防止作弊,而不必在发生不公平事件之后将其检测出来。

  • Fast iteration: Tuning a multiplayer game often requires significant iterations even after launch. However, with the DGS model, no client patches (which may have to pass cert) are required to update logic that is only running on the server.

    快速迭代: 调整多人游戏通常甚至在启动后也需要进行大量迭代。 但是,使用DGS模型,不需要客户端补丁(可能必须通过证书)来更新仅在服务器上运行的逻辑。

This is one of the main reasons we brought Multiplay into the Unity family. Their proven dedicated server-orchestration technology enables developers to scale up and down a server fleet seamlessly to meet the needs of their games. Multiplay also optimizes costs at scale through hybrid bare-metal and “burst cloud” hosting. Their technology has already been proven with custom, engine-agnostic, enterprise solutions for games such as PUBG, Titanfall 2, Gang Beasts, and many more.  For more on what Multiplay does, check out a session recording of Multiplay at Unite Berlin 2018.

这是我们 将Multiplay带入Unity家族的 主要原因之一 。 他们经过验证的专用服务器编排技术使开发人员能够无缝地扩展和缩减服务器机队,以满足他们的游戏需求。 Multiplay还通过混合裸机和“突发云”托管来大规模优化成本。 他们的技术已经通过与PUBG,Titanfall 2,Gang Beasts等游戏兼容的定制,与引擎无关的企业解决方案得到了证明。 有关Multiplay功能的更多信息,请 在Unite Berlin 2018上 查看Multiplay的会话记录 。

演示地址

Short-term: 短期:

We’re currently focused on integrating Multiplay technology into the Unity ecosystem with self-serve accessibility. Soon you’ll be able to enable development game-hosting servers that you can use to playtest your game with team members and friends, even when they don’t share your office space. The initial alpha release will include fleet provisioning, Linux server build upload and deploy, a package for Server Query Protocol, and some simple stats and logs to monitor what’s happening on your server.

我们目前专注于通过自助访问将Multiplay技术集成到Unity生态系统中。 很快,您将能够启用开发游戏托管服务器,即使您的团队成员和朋友不共享您的办公空间,您也可以使用它们来对您的游戏进行游戏测试。 最初的Alpha版本将包括机队配置,Linux服务器构建上载和部署,用于服务器查询协议的软件包以及一些简单的统计信息和日志,以监视服务器上发生的事情。

对接会:灵活的逻辑和无缝集成 (Matchmaking: Flexible logic and seamless integration)

Long-term:

长期:

Matchmaking is the art of matching a set of players with one another in order to maximize their enjoyment of the game, and it isn’t easy to do well. We’ve heard repeatedly that each game has unique goals and match rules, making it difficult for an off-the-shelf matchmaking solution to be flexible enough to support them.

对接会是将一组玩家彼此配对以最大程度地发挥游戏乐趣的艺术,而且做得不好也不容易。 我们已经反复听到过,每款游戏都有独特的目标和比赛规则,这使得现役比赛解决方案很难灵活地支持他们。

We announced Open Match, an Open Source matchmaking project with Google, at Unite Berlin as an initial step towards solving this problem. This project is intended to provide scalability with an extensibility-first design. It allows you to customize match logic and orchestration modules however you need in order to fit the needs of your project.

我们在Google 柏林 宣布了与Google的开放源代码配对项目Open Match, 这是解决此问题的第一步。 该项目旨在通过可扩展性优先的设计来提供可扩展性。 它允许您自定义匹配逻辑和业务流程模块,但是为了满足项目需求,您可以根据需要进行自定义。

Unity is building a managed matchmaker with Open Match at its core, and it will continue to benefit from growth and improvements to Open Match. We will also provide additional unique benefits to Unity developers:

Unity正在建立一个以Open Match为核心的托管媒人,它将继续受益于Open Match的增长和改进。 我们还将为Unity开发人员提供其他独特的好处:

  • Fully managed service: We will run, scale, and manage a matchmaker service on your behalf, so you can focus on building your game.

    完全托管的服务: 我们将 代表您运行,扩展和管理媒人服务,因此您可以专注于自己的游戏。

  • Scalable game-server hosting: By default, Unity’s matchmaker will seamlessly integrate with Multiplay orchestration technology to enable scaling of game-hosting server capacity up and down based on the number of players seeking to play. This means Unity developers will not need to learn about the complexities of server lifecycles as long as they use this service.

    可扩展的游戏服务器托管: 默认情况下,Unity的媒人将与Multiplay编排技术无缝集成,以根据要玩的玩家数量来上下扩展游戏托管服务器的容量。 这意味着只要使用此服务,Unity开发人员就无需了解服务器生命周期的复杂性。

  • Accessibility: In future iterations, the Unity-managed service will provide simple off-the-shelf options that enable game developers to tune the balance of latency, skill, and wait time without writing custom logic.

    可访问性: 在将来的迭代中,由Unity管理的服务将提供简单的现成选项,使游戏开发人员无需编写自定义逻辑即可调整延迟,技能和等待时间之间的平衡。

  • Customizability: For games with additional custom requirements, we will enable fully custom match-logic in a managed environment later in 2019. It will be possible to deploy this match logic to your matchmaker from within the Unity environment, written in the standard Unity C# language. This adds great peace-of-mind to know that if the off-the-shelf solution is insufficient, there will be options to customize the match logic that’s unique for your game.

    可定制性: 对于具有其他自定义要求的游戏,我们将在2019年晚些时候在托管环境中启用完全自定义的比赛逻辑。可以从比赛环境中以标准Unity C#语言编写的方式将比赛逻辑部署到您的比赛媒人。 这让您高枕无忧,知道如果现成的解决方案还不够,那么将有一些选项可以定制您的游戏独有的匹配逻辑。

Short-term:

短期:

Open Match is readily available with its v0.1 release last week, and we will continue to work alongside Google and others in the community to grow this solution, both in terms of features and quality.

Open Match 上周发布了v0.1版本,现已上市,我们将继续与Google和社区中的其他人一起开发该解决方案,无论是功能还是质量。

In parallel, we will soon release a simple first version of the managed Matchmaker in the Unity ecosystem, which includes player count configuration, seamless integration with server allocation, client libraries in a package, and automated deployment. In this first version, a server will be seamlessly allocated once the player count is met, and the game clients will be connected to their server.

同时,我们很快将在Unity生态系统中发布托管的Matchmaker的简单第一个版本,其中包括播放器数量配置,与服务器分配的无缝集成,软件包中的客户端库以及自动部署。 在第一个版本中,一旦满足玩家人数,就会无缝分配服务器,并且游戏客户端将连接到其服务器。

服务器运行时:成本和模块化 (Server runtime: Cost and modularity)

Long-term:

长期:

When hosting dedicated servers, the biggest concern we hear about is related to costs. In a public cloud-environment like Google Cloud, the costs are based on a combination of the virtual machine specification, time used, networking bandwidth (egress) used, and license fees for the OS. In order to reduce costs, you need to:

当托管专用服务器时,我们听到的最大担忧与成本有关。 在像Google Cloud这样的公共云环境中,成本是基于虚拟机规范,所用时间,所用网络带宽(出口)和操作系统许可费的组合。 为了降低成本,您需要:

  • Minimize the consumption profile required for your server runtime so you can reliably run your game at top performance on the smallest possible VM spec.

    最小化 服务器运行时所需 的消耗配置文件 ,以便您可以在最小的VM规格下以最佳性能可靠地运行游戏。

  • Minimize server time used with server orchestration and matchmaking that only spins up and allocates a server when your game needs it to meet player demand.

    最大限度地减少服务器 编排和匹配中 使用的服务器时间 ,仅当您的游戏需要它来满足玩家需求时才启动服务器并分配服务器。

  • Minimize networking bandwidth with great simulation code (like delta compression) that only sends the most-relevant data that has changed since the prior frame.

    通过出色的仿真代码(例如增量压缩) 最大程度地减少网络带宽 ,该代码仅发送自上一帧以来已更改的最相关数据。

  • Run servers on Linux OS to avoid significant license fees for proprietary operating systems.

    在Linux OS 上运行服务器 可避免专有操作系统的大量许可费用。

  • Blend bare-metal with cloud bursting once your game reaches sufficient economies-of-scale to benefit from a constant baseline of bare metal servers.

    一旦您的游戏达到了足够的规模经济效益,就可以将 裸机与云爆发融合在一起 ,从而受益于恒定的裸机服务器基准。

We’ve already discussed solutions for the last four of these five points, and the server runtime consumption profile is also something we are very much focused on at Unity today. We believe that the new package management system, once fully implemented, should enable developers to run Unity as a server runtime with a very slim profile. This minimal profile will allow you to include only the packages your server requires to meet the goals of your game.

我们已经讨论了这五个方面中的最后四个方面的解决方案,并且服务器运行时消耗概要文件也是我们今天在Unity上非常关注的内容。 我们认为,新的 程序包管理 系统一旦完全实现,就应该使开发人员能够以非常苗条的配置文件将Unity作为服务器运行时运行。 这个最小的配置文件将使您仅包括服务器达到游戏目标所需的软件包。

Short-term:

短期:

We’re currently focused on optimizing the “headless” version of Unity Linux runtime by finding low-hanging fruit, such as removing any rendering, animations, and audio that are unintentionally still executing in “headless” mode. It’s our goal to minimize memory, build size, and CPU consumption while increasing stability and uptime in our current version of “headless” Unity.

当前,我们专注于通过发现低调的成果来优化Unity Linux运行时的“无头”版本,例如删除无意仍在“无头”模式下执行的所有渲染,动画和音频。 我们的目标是在当前版本的“无头” Unity中最小化内存,构建大小和CPU消耗,同时提高稳定性和正常运行时间。

In 2018.3 we’ve also added developer workflow improvements, with a new “Server Build” option for all standalone players that is headless by default and enables a new UNITY_SERVER define for separating server script logic.

在2018.3中,我们还增加了开发人员工作流程的改进,为所有独立播放器提供了新的“服务器构建”选项,默认情况下该选项是无头的,并启用了新的UNITY_SERVER定义以分隔服务器脚本逻辑。

保持联系 (Stay in touch)

  • Keep track of what we’re working on by visiting unity3d.com/connectedgames.

    通过访问 unity3d.com/connectedgames 跟踪我们正在进行的工作 。

  • Have feedback? Please share it in the sticky threads of the Connected Games forum.

    有意见吗? 请在 Connected Games论坛 的即时贴中分享它 。

  • Interested in alpha testing some of the new technologies? Contact us here.

    对Alpha测试某些新技术感兴趣吗? 在这里与我们联系 。

  • Keep watching the blog.  We’ll continue to share and communicate more.

    继续看博客。 我们将继续分享和交流更多。

翻译自: https://blogs.unity3d.com/2018/09/12/multiplayer-connected-games-first-steps-forward/

多人手柄联网游戏

多人手柄联网游戏_多人联网游戏:迈出的第一步相关推荐

  1. lia人是什么意思_“有的人手上没有斗”是什么意思,如何理解这句话?

    如何理解"有的人手上没有斗"?"斗"指手指的指纹,与此相对应的有"簸",共两种.但各地说法不一样,有的人把指纹的类型分得特别细,有的地方对指 ...

  2. 画质超高的仙侠java游戏_画质超高的游戏有哪些?顶级画质大型游戏盘点

    每个人都有每个人所喜欢的东西,一款游戏也一样,有的人喜欢打击感,有的人喜欢好剧情,有的人喜欢高画质等等等,游戏画面,特效,和战斗过程对显卡是考验,还有环境,画质,分辨率,有些有些可以调细节,细节越高越 ...

  3. 没有人会告诉你的小技巧,自学视频剪辑第一步要做什么?

    自学视频剪辑第一步要做什么?没有人会告诉你这个小技巧的. 相信很多人在做自媒体视频拍摄和剪辑的时候都是自学的,大周个人认为剪辑要稍微难一些. 视频拍摄有固定的技巧,但视频剪辑,10个人剪辑同一个素材, ...

  4. python 儿童 游戏_防止孩子玩游戏的Python小程序

    今天小编就带领大家来做一个防止孩子玩游戏的Python小程序.非常有趣,大家快来跟我一下看一下吧. 1查询电脑的所有进程 用Python循环检测电脑软件的运行情况,当发现游戏软件时弹出警告窗口,并截图 ...

  5. 剑网3选择人物后进入游戏就显示服务器断开连接,剑网3怎么进入游戏_剑网3进入游戏的问题_牛游戏网...

    安装好游戏之后,点击桌面游戏图标运行<剑网3>游戏更新程序.如果游戏需要更新,游戏更新程序将自动更新至最新版本.您也可以选择下载补丁包手动更新游戏. 游戏更新程序上可以快速注册帐号.付费充 ...

  6. java怎么制作放置游戏_从零开始实现放置游戏(前言)

    笔者从小学就开始打电脑游戏,大学读的是软件工程,毕业后工作内容涉及电商.金融.运维等领域,却一直未曾开发过游戏.作为一名游戏爱好者,始终是心中的一个遗憾. 然而,随着时代的变迁,出现了越来越多好用的工 ...

  7. 手机海豚模拟器怎么添加游戏_电脑组装模拟器游戏下载-电脑组装模拟器手机汉化版下载v1.0.0 安卓版...

    电脑组装模拟器手机汉化版想象考完玩家们的组装能力以及动手能力,顾名思义你需要逐步的进行组装一些电脑来完成各种的任务,一定要足够的耐心,千万不能犯错. 电脑组装模拟器手机版亮点 1.在电脑组装模拟器游戏 ...

  8. steam上快速游戏_如何将Steam游戏移动到另一个驱动器上

    steam上快速游戏 Steam offers multiple library folders, and you can choose where you want to install games ...

  9. testflight无法联网怎么办_互联网人最怕的,就是这一刻

    身为互联网人 有许多惧怕的东西 怕体检.怕脱发.怕裁员 怕到35岁... 不仅如此 每一天的工作里 都有让人恐惧的rush hour! 互联网人日常工作生活中最怕的 其实是这一刻-- 当然 互联网人的 ...

最新文章

  1. 2019天猫双11成交额达2684亿,盘点今年双11有哪些亮点!
  2. 如何在C中为一个数组分配空间?
  3. java for loop_Java for循环执行了两次
  4. Oracle:ORA-01789: 查询块具有不正确的结果列数 分析原因和解决办法
  5. 24小时学通Linux内核之构建Linux内核
  6. 用Python玩转统计数据:取样、计算相关性、拆分训练模型和测试
  7. Python机器学习:评价分类结果006precisoion-Recall曲线绘制
  8. 外贸独立站VS第三方平台?
  9. 迁移到云端之前需要考虑哪些问题?
  10. MySQL 服务的启动与停止
  11. 软件测试 接口测试 入门Jmeter 接口关联 提取器 断言 与fiddler配合使用 使Jmeter录制和创建脚本 操作数据库 持续集成测试
  12. 人人都是产品经理(互联网产品经理的第一本书,马云力荐!)
  13. 微信对账单 java_微信下载对账单
  14. php判断股票涨停,常用的五种股票打板思路与常见的几种涨停板打板判断依据
  15. java thread detach,C++语法学习笔记四十三:线程启动、结束,创建线程多法、join,detach...
  16. 如果这篇文章说不清epoll的本质,那就过来掐死我吧! (3)
  17. 2D卷积和3D卷积的区别及pytorch实现
  18. docker 小结
  19. java se1.6配套Jdk,javase 1.6与jdk1.6
  20. 优麒麟20.10 wifi 开关打不开解决方案

热门文章

  1. 2006世界杯32强人体彩绘队服样式(波兰)
  2. 2022.3.24 图论——拓扑排序算法
  3. python 内置函数 内置模块 标准库 第三方库 函数 模块 包 库
  4. Java开发面试简历这么写,提高命中率
  5. 网站变更检测、监控、警报丨WebSite-Watcher功能简介
  6. 三菱触摸屏常见3种故障问题和处理方法
  7. 什么是ghost server
  8. 利用ArcGIS 的Spatial Join统计斑块中的点数量
  9. python与数据挖掘 pdf_Python与数据挖掘
  10. McGan: Mean and Covariance Feature Matching GAN