总的来讲,游戏状态只由服务器来管理。客户端会发送他们的行为到服务器。服务器定期更新状态,然后将状态发回去,客户端只要显示可以了。  处理网络  傀儡客户端对于回合制游戏来讲能良好工作,比如策略游戏或者扑克牌。它在局域网下也会有不错的表现,通信几乎是立刻到达。但这对于因特网上互联的快节奏游戏来讲是...
文/姜雪伟创业公司技术合伙人,畅销书作者。CSDN社区专家,资深3D游戏引擎开发者,IT高级讲师,计算机图形学方向研究生。  前言  作为一个在IT行业工作十五年的老兵,笔者在这里将自己多年的学习游戏算法经验分享给读者,希望能够帮助那些想学习算法提升自己的读者。算法是IT产品研发的核心,在IT的任何...
笔者从事IT行业15年了,一直奋斗在一线编程,从普通程序员逐步成长到上市公司技术总监,目前在创业公司担任技术合伙人,主要负责公司整个项目团队的技术管理。在网上或者论坛上很多同学请教过我关于如何学习3D游戏编程,大部分人都是刚踏入游戏行业的,也有从2D程序转向3D程序的开发者。在这里我将自己的学习3D...
  文/游戏测试风云录 张敬峰  声明,本文所说内容仅针对游戏测试,软件测试并不适用。  Bug通常是我们测试人员日常处理的最多的工作,在一个游戏中可能存在各种层次的bug,今天我们就简单聊一聊,除了我们日常处理的内容,还有哪些内容可以挖掘分析?  首先我们把游戏中的bug简单分下类,这里并不以常见...
  文/破晓べ  作为一个饱经风霜的程序员,你一定早就习惯了游戏开发中的反复。记得刚来公司的时候就听师兄讲过一个故事:策划在国庆节前突然想模仿微信做一个红包系统,还没等他实现完毕,红包二期的案子就已经写好了。不巧,这个幸运的师兄碰巧要去同学聚会,就暂时没有做。等他请假2天回到公司的时候,惊奇地发现红...
  文/FOXhunt  海洋,溪流,湖泊等水体的模拟在游戏中是十分常见的技术,每个开发人员或多或少都听说过几种制作水体的方法。不过想要把水体模拟做好,做出高质量,其中还是有很多值得注意的地方。这篇文章就是总结一下个人制作水体模拟的心得,以及一些平时阅读技术论文和开发中容易忽略的细节。  首先要说一...
文/FayeWang  怪物AI应该说是这是一个程序问题,如果从策划的角度来说,作为设计者,则需要了解怪物AI整体的设计流程,这样才能提出自己的需求,从而让游戏战斗的整体体验符合设计预期,毕竟怪物AI也是属于战斗和体验的重要部分。  AI的设计,如果从程序口中说,可能会跳出诸如“行为树”“ 决策树”...
文/何小成  前言  这一年左右的时间,我参与并完成了一款SLG手游的研发,我负责游戏的服务端研发。这是一款以三国为题材的游戏,除了有三国名将的卡牌养成、多种多样装备养成、PVE,玩家竞技场等常见玩法外,我们的游戏的主打特色是国战和军团战,目前我们正在进行国战部分的开发和优化,军团战部分仍在策划中。...
  文/周恺华  FPS游戏中,在玩家的延时都不一样的情况下是如何做到游戏的同步性的?  下面会大量使用CSGO作为例子,这是因为Valve在多人游戏的网络通信方面做得较好,可以当做一个典型来分析。  先讲多人竞技游戏中客户端和服务器是如何互动的吧。  游戏中所有的逻辑判定都是由服务器完成的,客户端...
  文/xlturing  儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典的马里奥形象出现。平时我们都是人来玩马里奥游戏,能否可以让马里奥智能的自己闯关个呢?OK,利用人工智能的相关算法来进行自动化通关一直...
  由于历史原因,第一个版本的结算被我改成了图中所示的结构,乍一看好似也很清晰,但是这个结构中存在2个致命的问题:  1.战斗类型的增加导致代码和UI无法维护  由于最初的几个结算界面显示是极其相似的,大概涉及到几种固定的类型:文本、可滚动的数字、砸星动画、获得的货币列表、获得的道具列表、人物经验进...
联盟客户更新验证系统架构  文化  成功的测试自动化在很大程度上是一种文化和心理学。技术在其中只是起到次要的作用。  无论我们有多少技术,我们仍然需要鼓励正确的人类行为,致使自动化测试成功。每一次测试失败,人们必须正视它并判断这个失败是否是正在测试项目中一个真正的失败、还是一个行为不端的编写差的测试...
  每个回合,被指定的主机将会分析回合结束的消息包,计算出一个目标帧率及网络延迟的调节因素,主机将会发送一个新的帧率及通讯回合长度给所有客户端使用,图3到图5显示了通讯回合在不同条件下的分解情况。  通讯回合粗略的预估为一个消息往返的响应时间(RTT),这个响应时间分分解了若干的模拟帧,执行这些模拟...
  由于Condition和Objective都定义成了树结构,所以我们就可以很方便的组织逻辑,下面是一个具体Condition的例子,Objective也可用同样的方式定义出来。  这样接任务和更新任务就变的很简单。  所以我们只需要定义出单个的逻辑片段,然后游戏设计去拼搭任务逻辑就可以了,和行为...
在之前发布过《MMO移动游戏性能分析报告:渲染、UI、逻辑代码和内存》,近日,侑虎科技对提交测试(登陆www.uwa4d.com)的所有ARPG手游进行了客观的分析和汇总,并将其具有属性特征的几大性能模块数据在此分享,希望能给相关行业的研发人员一些更为明确和建设性的意见。  总体性能  (1)iOS...
文/TECHO  本次对引擎(真正意义上的游戏引擎)的历史回顾将主要围绕动作射击游戏的变迁展开,动作射击游戏同3D引擎之间的关系相当于一对孪生兄弟,它们一同诞生,一同成长,互相为对方提供着发展的动力。  1992年,3D Realms公司/Apogee公司发布了一款只有2兆多的小游戏——《德军司令部...
文/江流  写这篇随笔的动机,在于最近看了不少对于游戏中概率事件的提问  在这些相关讨论里,总是能频繁看到“真随机”和“伪随机”这两个词汇。  其中最常见的句子则莫过于宝典一般的——“程序里没有真随机”。  这句话本身当然是没有问题的。  但是大多数时候,用这句话去回复别人的疑问就有点风马牛不相及了...
  文/云风  前面一篇谈了放置类游戏的网络同步,我想把其方法推广到类型的游戏,比如 MMORPG ,比如动作游戏。尤其是动作类游戏,非常需要客户端可以即时处理玩家的操作,而不能等待服务器确认。  我们来看看这些类型的游戏和放置类游戏的不同点。  放置类游戏大部分是玩家个人和服务器在玩,不涉及第三方...
文/毛星云  游戏开发过程中,各种游戏状态的切换无处不在。但很多时候,简单粗暴的if else加标志位的方式并不能很地道地解决状态复杂变换的问题,这时,就可以运用到状态模式以及状态机来高效地完成任务。状态模式与状态机,因为他们关联紧密,常常放在一起讨论和运用。而本文将对他们在游戏开发中的使用,进行一...