标签:开发技术
  文/武龙飞  前言  由于服务器需要做客户端战斗模拟,我们的服务器是用python写的,理所当然我们战斗服务器也采用python重写了一套战斗服务器,遇到了哪些问题:  1、浮点数运算精度问题  2、运行效率问题  3、Unity核心库源码问题  奇思妙想  我们团队内部想,既然客户端有现成的代...
  GameRes游资网授权发布 文/肥宝传说之路  游戏里面经常用到坐标转换,例如地图、战斗技能等。  一、直角坐标和极坐标的转换  前提条件:  1、两坐标系原点重合  2、两坐标系x轴正半轴重合  3、两坐标系单位长度相同  变量关系:  如上图,M的直角坐标为(x,y),极坐标(ρ,Θ)。 ...
  GameRes游资网授权发布 文 / 肥宝传说之路  游戏技能攻击区域的计算,关乎服务端的效率。需要确保正确,简洁地计算攻击区域,才能快速寻找攻击对象。  今天只讨论地图上距离的问题。  一般情况下攻击区域分为以下几种:  1.点对点,对个人进行攻击  2.射线攻击,其实就是矩形区域  3.扇形...
  首先是通过接口定义通用状态机接口,然后定义了单间的接口。这种方式统一让所有的状态实现三个函数,这三个函数分别对应切入状态,在状态中,退出状态,需要执行的逻辑分别放在这三个函数里执行,通过这样的分割,状态很容易扩展,也不会混乱。具体代码实现,请看下面说面里面github的地址。  在StateMa...
AtomCat物理引擎程序由C++开发,渲染是基于OpenGL,内嵌于Cocos2d-x。这款引擎在原子(分子)级别上模拟物理运动和受力碰撞的,擅长模拟软体,流体,比如果冻,泡泡,皮筋,细胞,微生物,还有液体表面的波纹等等。这个引擎不只是视觉特效层面的,也可以在运用在游戏的逻辑层面。 一般的非物理引...
  GameRes游资网授权发布 文/Ron Ngai  场景背景  毫无疑问,策划都喜欢多人同屏战斗。什么万地图,这肯定是策划的最爱了。可是对于游戏来说,这并不是什么非常好的设计。即使解决了服务端计算的性能压力,客户端显示的性能压力。万万没想到的是我们游戏在客户端网络带宽上面遇到了压力。  假设1...
  如图所示, 其抽象为6个球袋和6个边框构成, 球袋是球落入的目标, 边框则限定了台球的活动范围。  边框抽象  台球边框相对简单, 其可视为静态物体。 其物理形状就是一条边。  // 设置为静态物体类型wallBodyDef.type = b2Body.b2_staticBody; // 采用多...
  分段的办法是在轮廓中心线上取间隔相等的垂直线段,然后将赛道上的控制点坐标表示为在垂直线段上的相对位置。比如上面这幅图中的第i个线段,假设这个线段的上面端点叫 ,下面的端点叫 ,令 ,则线段上任意一点 可以表示为:  这样做的好处是把需要用二维点坐标表示的赛道转化为一维的在赛道上的相对位置...
  文/鱼骨头  一般来讲,网络游戏的AI历来就是很简单的AI。相比之下,很多单机游戏的AI就要得复杂一些。而笔者并未从事过大型单机游戏的AI设计,所以也就不班门弄斧了。但至于网游的AI,还是略知一二。  目前游戏中的AI,都是事件引发行为的机制。它们并不会自我学习和成长,都是写死的一些事件(条件)...
  一个类似的技术需要使用供过渡的tile,比如草地-水,草地-荒漠等如上图所示的块。但是,把这些过渡块手工放置在合适的位置工作量非常大。一个复杂的地图编辑器会允许用户标记哪些块,然后自动混合。  自动拼接  大部分自动拼接几何包括14个块,包括内部块和外部块(比如全部是草地和全是水的)、上、下、左...
没有漂亮的界面  当然,我创建这个例子是为了强调一些我们在编辑.ini文件时遇到的一些共同的问题。这离用户友的界面相差甚远。编辑原始文本时非常容易混乱——缺乏重要的内容,而其他字段又重复。设计者们每天不得不处理这种混乱,这里总共有 977 种法术,这些功能(当然忽略)位于“MissileEffect...
  GameRes游资网授权发布 文 / 深圳-宝爷  网络延迟是所有实时同步的游戏都会遇到的问题,下面是关于实时同步问题的一些思考和处理方法。具体的解决方法可能比较特殊,首先这里的服务器并不跑定时器(除了一个游戏结束倒计时的定时器),由前端驱动,延迟的情况下主要是由前端来预测或纠正,服务器辅助,处...
  本文想讲述下台球游戏中核心算法的实现, 以及游戏AI的设计技巧。 当然自己也有个小愿望, 希望能实现一个html5版的台球游戏。  基础物理知识:  1、摩擦阻力  其满足牛顿第二定律:  f = m * a  速度与加速度关系公式:  vt = v0 + a * t  地面摩擦力与运动物体的方...
  GameRes游资网授权发布 文 / 燕良@游戏开发  经过前面几次的尝试,我们对炉石的代码已经不陌生了。除了网络机制还没有了解以外,本机的逻辑已经比较熟悉了。  接下来继续向暴雪最NB的技能系统进发,我们的目标是:  分析技能的静态数据描述;分析技能的运行时数据、逻辑组织;  这篇笔记主要记录...
我已经集中讲过了从一个地方到另一个地方寻找路径的任务。然而,一个与之同等重要的问题是:一旦我有一个路径,我该怎样沿着它移动?最明显的答案是从一个位置到另一个的位置的直线移动。然而,你可能想在曲线上移动,或者多次的移动。你可能想把位置偏离成为低优先级的目标。一个更高层次的问题是:你要去哪里?除非你先回...
  背景  说到底,Medium是个社交网络,人们可以在这里分享有意思的故事和想法。据统计,目前累积的用户阅读时间已经超过14亿分钟,合两千六百年。  我们支持着每个月两千五百万的读者以及每周数以万计的文章发布。我们不想Medium的文章以阅读量为成功的依据,而是观点取胜。在Medium,文章的观点...