2006_06_26

本文探讨了游戏开发中数据帧与视频帧的概念及其作用,并详细解释了游戏内部循环的工作原理。此外,还介绍了简单的网络同步机制,包括服务器与客户端之间如何进行时间同步和数据更新。

因为返修的硬盘搞到手了,所以这几天在重装系统,以及把备分在其它地方的数据整理进来。

 

游戏分为数据帧与视频帧,数据帧就是游戏时间,视频帧只能更新画面的时机而已。
游戏的时间是以一个游戏的数据帧为基本单位,而这个数据帧的产生就交由一函数来完成,而这函数的时间不一定是系统时间。
那么游戏的内部循环看起来就应该是这样子:
while(gameloop)
{
      if (数据帧是否触发)
     {
           获取输入
          更新游戏数据          
     } 
    
    if (视频帧是否触发)
      更新游戏画面
}

游戏的录象数据片段则可能是这样的:
帧序号   操作       数据
102        输入        玩家1 按下"上"
102        输入        玩家1 按下"右"
102        输入        玩家1 按下"A"
105        输入        玩家2 按下"B"
...............

 

而网络中的数据同步也很简单,下面S是服务器 C是客户机,当然这种方式肯定有得改进,但至少它能工作。
   
S-->C时间同步第 4001 帧,数据大小100
S-->C数据1
C-->S数据更新完毕
S-->时间同步第 4002 帧,数据大小50
S-->C数据2
C->S数据更新完毕

当然,上面写得过于简单了,其实在服务器发送同步帧之前,应该先把所有客户端在下一帧的改变数据先收集起来,然后再发送同步帧一次进行同步。

说白了网络功能的实现其实就是做了两件事:
1.由服务器产生时钟,而不是由本地机器产生时钟。
2.各客户端的输入数据由改由网络接收,而不是直接由键盘接收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值