zoukankan      html  css  js  c++  java
  • 网络游戏中的基本问题

      网络游戏中对延迟要求比较高的两类游戏是:第一人称射击(FPS)和即时战略(RTS),在RTS类游戏中,延迟低于500ms是可以忍受的,在FPS类游戏中可以忍受的延迟在100ms到150ms之间。通常在实时网络游戏中会采用相应的算法来避免网络延迟对游戏可玩性的冲击。
    1、实时网络游戏中存在的主要问题

       在实时网络游戏中存在的主要问题有:全局时间问题、带宽问题、延迟问题,丢包问题、同步问题以及安全问题等。

    (1)全局时间问题

         这个问题在多线程和分布式系统中是众所周知的问题,在多人在线游戏中同样存在,这个问题可以引发一系列的问题比如:同步问题、可扩展问题、安全性问题等等

    (2)网络延迟问题

            网络延迟是指用户发出请求到远端系统对该请求做出响应传回给用户的这一段时间。一般路由处理、数据包的传输、服务器的计算都会导致延迟。

          网游对延迟要求较高,通常要求低于500ms。一般可采用相应算法弥补延迟带来的冲击。目前解决延迟最好的方案是采用航位推测(Dead Reckoning)技术。该技术允许在客户端流畅无中断的运行,它采用预测的方法来处理未到达的移动消息,并通过相应的算法来平滑移动。

    (3)丢包问题

           一种解决丢包问题的方法是使用有保证消息协议如TCP/IP。不幸的是,TCP有一些行为特征使得对于实时性要求很高网络通信将是一个错误的选择。对于第一人称射击类游戏来说,对实时性要求高,因此在这类游戏中一般不使用TCP的方式,而采用UDP的方式进行网络通信

    (4)同步

             以上问题都会导致同步问题,当前的措施都是采用一些同步算法来减少网络不同步带来的影响,这些同步算法都是从分布式军事仿真系统中借鉴过来的。
    (5)安全问题

             即外挂问题。

     

    2、网络游戏的基本架构

         主要分P2P,C/S两种结构。

    (1)C/S结构

          服务器性能本身会成为一个瓶颈,但是会有较高的安全性,因为服务器必须确认每个客户端的每个移动,所以它们有权否定某种请求。

    (2)P2P结构

           P2P游戏中存在大量的通信流,所以可能占用较大的网络带宽。但是这样的结构带来的好处是,系统较为稳定,如果一个节点崩溃,另外的节点仍然可以正常运行。在网络通信的服务形式上,一般采用浮动服务器的形式,即其中一个玩家即是客户端又扮演服务器的角色,一般由创建游戏局的玩家担任服务器。

         


     

  • 相关阅读:
    LeetCode 链表题总结
    分布式系统 MIT 6.824 Lab 1: MapReduce 准备
    Consul 入门(二)
    Consul 入门
    IDEA批量修改变量快捷键
    Spring源码解析-JdbcTemplate
    SpringMVC源码解析-HTTP请求处理和分发
    SpringMVC源码解析-DispatcherServlet启动流程和初始化
    发现一个网站可以看英文版的harry potter小说,好东西分享一下哈
    TypeSrcript如何引入第三方库 如果加d.ts以及async await如何使用 demo,只有代码,文字后续补充
  • 原文地址:https://www.cnblogs.com/steven_oyj/p/2050582.html
Copyright © 2011-2022 走看看