09 03月 游戏开发者心得分享中心 揭秘《英雄联盟》的数据服务器 没有漂亮的界面 当然,我创建这个例子是为了强调一些我们在编辑.ini文件时遇到的一些共同的问题。这离用户友的界面相差甚远。编辑原始文本时非常容易混乱——缺乏重要的内容,而其他字段又重复。设计者们每天不得不处理这种混乱,这里总共有 977 种法术,这些功能(当然忽略)位于“MissileEffect...
09 03月 游戏开发者心得分享中心 对抗网络延迟 手游服务器实时同步方案分享 GameRes游资网授权发布 文 / 深圳-宝爷 网络延迟是所有实时同步的游戏都会遇到的问题,下面是关于实时同步问题的一些思考和处理方法。具体的解决方法可能比较特殊,首先这里的服务器并不跑定时器(除了一个游戏结束倒计时的定时器),由前端驱动,延迟的情况下主要是由前端来预测或纠正,服务器辅助,处...
07 03月 游戏开发者心得分享中心 台球类html5游戏的AI设计与核心算法的实现 本文想讲述下台球游戏中核心算法的实现, 以及游戏AI的设计技巧。 当然自己也有个小愿望, 希望能实现一个html5版的台球游戏。 基础物理知识: 1、摩擦阻力 其满足牛顿第二定律: f = m * a 速度与加速度关系公式: vt = v0 + a * t 地面摩擦力与运动物体的方...
03 03月 游戏开发者心得分享中心 《炉石传说》架构设计分析:卡牌技能数据 GameRes游资网授权发布 文 / 燕良@游戏开发 经过前面几次的尝试,我们对炉石的代码已经不陌生了。除了网络机制还没有了解以外,本机的逻辑已经比较熟悉了。 接下来继续向暴雪最NB的技能系统进发,我们的目标是: 分析技能的静态数据描述;分析技能的运行时数据、逻辑组织; 这篇笔记主要记录...
02 03月 游戏开发者心得分享中心 《炉石传说》架构设计分析:Gameplay与Asset管理 如上图所示: 炉石根据资源的不同类型进行分别的AssetBundle打包,一类资源对应一个或者多个资源包;(一类资源分多个包的规则不得而知); 有的资源包真的本地化单独打包,例如“fonts0.unity3d”==》“fontszhCN0.unity3d”; 在程序中,资源包的分类对应枚举...
02 03月 游戏开发者心得分享中心 游戏中常用的寻路算法(6)长期和短期目标 我已经集中讲过了从一个地方到另一个地方寻找路径的任务。然而,一个与之同等重要的问题是:一旦我有一个路径,我该怎样沿着它移动?最明显的答案是从一个位置到另一个的位置的直线移动。然而,你可能想在曲线上移动,或者多次的移动。你可能想把位置偏离成为低优先级的目标。一个更高层次的问题是:你要去哪里?除非你先回...
01 03月 游戏开发者心得分享中心 游戏编程设计模式——Double Buffer 这看起来很直观,但如果我们就保持这样,会带来问题。问题在于显卡驱动可以在任意时刻调用getPixels,甚至是在这里: buffer_.draw(1, 1);buffer_.draw(4, 1);// <- Video driver reads pixels here!buffer_.dr...
01 03月 游戏开发者心得分享中心 Medium开发团队谈架构设计 背景 说到底,Medium是个社交网络,人们可以在这里分享有意思的故事和想法。据统计,目前累积的用户阅读时间已经超过14亿分钟,合两千六百年。 我们支持着每个月两千五百万的读者以及每周数以万计的文章发布。我们不想Medium的文章以阅读量为成功的依据,而是观点取胜。在Medium,文章的观点...
01 03月 游戏开发者心得分享中心 Unity5实用教程:光照技术的使用技巧 unity5中的光照可以用整本书来说明,此文是过去几个月使用Unity5的简单汇总。下面主要分6个部分来讲解。 Forward(前向)与Deferred(延迟)渲染Realtime(实时)与Baked(烘焙)光照引擎的光照工具光照场景性能技巧后期处理 上述的大部分对于Unity制作的内容都是适用的...
01 03月 游戏开发者心得分享中心 《炉石传说》架构设计分析:启动流程与Scene管理 这是我猜测的这些类和游戏内容的对应关系,没有太仔细分析,可能有些对应是错误的: 下面我们就挑选一个简单的Scene来分析一下它的内部运作机制,我们来看一下AdventureScene吧。Adventure相关的Class很多,我们只做一个粗略的分析,只涉及到下面这几个类和接口: 首先我推测,...
29 02月 游戏开发者心得分享中心 分享:游戏新手引导程序框架设计3要点 GameRes游资网授权发布 文 / 傅建钊 新手引导确实是个麻烦事,逻辑杂乱,而且跟界面的逻辑常常交叉在一块,弄的不好的话代码里到处都是if else,保存各种临时状态变量。但这里面其实也是有规律可循的,不说完美解决了所有问题,但至少可以提供一个框架,一种问题解决的思路。这里面有3个关注点:...
29 02月 游戏开发者心得分享中心 游戏编程设计模式-state 恭喜,你已经创建了一个有限状态机(FSM)。这出自计算机科学的一个叫做自动机理论的分支。这个家族里里还有大名鼎鼎的图灵机。FSM是这个家族最简单地一个成员。要点如下: 1、状态机的状态集合是确定的。例如在我们的例子里,有站立、跳跃、下蹲和俯冲。 2、状态机在某一时刻只能处于一种状态。我们的h...
29 02月 游戏开发者心得分享中心 游戏中常用的寻路算法(6):地图表示 在本系列文档大部分内容中,我都假设A*用于某种网格上,其中的“节点”是一个个网格的位置,“边”是从某个网格位置出发的各个方向。然而,A*可用于任意图形,不仅仅是网格,有很多种地图表示都可以使用A*算法。 地图表示可能对性能和路径的质量产生很大影响。 寻路算法不是线性的,而是越来越差。如果需要行进...
29 02月 游戏开发者心得分享中心 移动游戏战斗系统实现方式探讨 GameRes游资网授权发布 文/zwg 腾讯一下出了两款MOBA游戏,全民超神,王者荣耀,玩了一下,效果不错,就分析了一下它底层的一些技术,发现一个是采用的状态同步,TCP协议,另一个是采用的帧同步,UDP协议。自从去年了解到即时游戏帧同步这门技术,我就一直关注使用这个技术的游戏,一直没有发...
25 02月 游戏开发者心得分享中心 游戏中常用的寻路算法(5)预先计算好的路径的所用空间 有时候,影响计算寻路路径的不是时间,而是计算路径所需的上百个单元格所占的空间。寻路是需要内存来运行寻路算法,还需要额外内存来存储寻到的路径。运行寻路算法(A*,开集或闭集)所需的临时空间经常会比存储这些寻到的路径所需的空间更大。通过在同一时间内只进行一条路径计算来限制游戏中的计算量,可以将你需要...
23 02月 游戏开发者心得分享中心 关于类DOTA游戏多样化技能系统的设计思考 GameRes游资网授权发布 文 / 洛城 在游戏里,每一个人物都有很多的技能。像DOTA,英雄联盟一样,技能也不都是单一的直线判断,而是有很多的花样。这类游戏的技能系统是如何设计的呢? 这里想从自动机的角度来抽象这个问题,以期得到一个更泛化的解决方案。因为我是引擎程序员而非game pla...
22 02月 游戏开发者心得分享中心 使用行动列表去创造简单且可扩展的AI 文/Jesse Crafts-Finch 作为人类,我们似乎总倾向于使用自己所熟悉的解决方法。我们总是会按照我们所知道的方式去做某些事,而不是按照做这些事的“最佳”方式。因为总是带着这种想法,所以我们很容易使用一些过时的技术,并使用那些同时代人所不理解,或者并不是那么有效的方式去执行特定功能。所以...
22 02月 游戏开发者心得分享中心 趣说游戏AI开发:曼哈顿街角的A*算法 那么A点到B点的实际距离是多少呢?考虑到我们只能沿着街道行走,而无法从街道围成的区块中穿越,因此在这种情况下A点到B点的实际距离并不是它们之间的直线距离,而是应该如下图所示的这样: 转换成数学语言就是这样: dis = abs(A.x - B.x) + abs(A.y - B.y) 对了,...
18 02月 游戏开发者心得分享中心 依赖注入 这样的坑游戏编程要谨慎 文/T2噬菌体 1 IGame游戏公司的故事 1.1 讨论会 话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的...
18 02月 游戏开发者心得分享中心 游戏中常用的寻路算法的分享(4)处理移动中的障碍物 一个寻路算计算出一条绕过静止障碍物的路径,但如果障碍物会移动呢?当一个单位移动到达某特定点时,原来的障碍物可能不在那点了,或者在那点上出现了新的障碍物。如果路线可以绕过典型的障碍物,那么只要使用单独的避障算法来配合你的寻路算法。寻路算寻找到期望的路径,并且在沿着路径的同时绕过障碍物。但是如果障碍物可...