标签:开发技术
unity5中的光照可以用整本书来说明,此文是过去几个月使用Unity5的简单汇总。下面主要分6个部分来讲解。 Forward(前向)与Deferred(延迟)渲染Realtime(实时)与Baked(烘焙)光照引擎的光照工具光照场景性能技巧后期处理  上述的大部分对于Unity制作的内容都是适用的...
  这是我猜测的这些类和游戏内容的对应关系,没有太仔细分析,可能有些对应是错误的:  下面我们就挑选一个简单的Scene来分析一下它的内部运作机制,我们来看一下AdventureScene吧。Adventure相关的Class很多,我们只做一个粗略的分析,只涉及到下面这几个类和接口:  首先我推测,...
  GameRes游资网授权发布 文 / 傅建钊  新手引导确实是个麻烦事,逻辑杂乱,而且跟界面的逻辑常常交叉在一块,弄的不好的话代码里到处都是if else,保存各种临时状态变量。但这里面其实也是有规律可循的,不说完美解决了所有问题,但至少可以提供一个框架,一种问题解决的思路。这里面有3个关注点:...
  恭喜,你已经创建了一个有限状态机(FSM)。这出自计算机科学的一个叫做自动机理论的分支。这个家族里里还有大名鼎鼎的图灵机。FSM是这个家族最简单地一个成员。要点如下:  1、状态机的状态集合是确定的。例如在我们的例子里,有站立、跳跃、下蹲和俯冲。  2、状态机在某一时刻只能处于一种状态。我们的h...
在本系列文档大部分内容中,我都假设A*用于某种网格上,其中的“节点”是一个个网格的位置,“边”是从某个网格位置出发的各个方向。然而,A*可用于任意图形,不仅仅是网格,有很多种地图表示都可以使用A*算法。  地图表示可能对性能和路径的质量产生很大影响。  寻路算法不是线性的,而是越来越差。如果需要行进...
  GameRes游资网授权发布 文/zwg  腾讯一下出了两款MOBA游戏,全民超神,王者荣耀,玩了一下,效果不错,就分析了一下它底层的一些技术,发现一个是采用的状态同步,TCP协议,另一个是采用的帧同步,UDP协议。自从去年了解到即时游戏帧同步这门技术,我就一直关注使用这个技术的游戏,一直没有发...
  有时候,影响计算寻路路径的不是时间,而是计算路径所需的上百个单元格所占的空间。寻路是需要内存来运行寻路算法,还需要额外内存来存储寻到的路径。运行寻路算法(A*,开集或闭集)所需的临时空间经常会比存储这些寻到的路径所需的空间更大。通过在同一时间内只进行一条路径计算来限制游戏中的计算量,可以将你需要...
  GameRes游资网授权发布 文 / 洛城  在游戏里,每一个人物都有很多的技能。像DOTA,英雄联盟一样,技能也不都是单一的直线判断,而是有很多的花样。这类游戏的技能系统是如何设计的呢?  这里想从自动机的角度来抽象这个问题,以期得到一个更泛化的解决方案。因为我是引擎程序员而非game pla...
文/Jesse Crafts-Finch  作为人类,我们似乎总倾向于使用自己所熟悉的解决方法。我们总是会按照我们所知道的方式去做某些事,而不是按照做这些事的“最佳”方式。因为总是带着这种想法,所以我们很容易使用一些过时的技术,并使用那些同时代人所不理解,或者并不是那么有效的方式去执行特定功能。所以...
  那么A点到B点的实际距离是多少呢?考虑到我们只能沿着街道行走,而无法从街道围成的区块中穿越,因此在这种情况下A点到B点的实际距离并不是它们之间的直线距离,而是应该如下图所示的这样:  转换成数学语言就是这样:  dis = abs(A.x - B.x) + abs(A.y - B.y)  对了,...
文/T2噬菌体  1 IGame游戏公司的故事  1.1 讨论会  话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的...
一个寻路算计算出一条绕过静止障碍物的路径,但如果障碍物会移动呢?当一个单位移动到达某特定点时,原来的障碍物可能不在那点了,或者在那点上出现了新的障碍物。如果路线可以绕过典型的障碍物,那么只要使用单独的避障算法来配合你的寻路算法。寻路算寻找到期望的路径,并且在沿着路径的同时绕过障碍物。但是如果障碍物可...
  图集还有一个一个妙处就是可以增强游戏绘制性能,在WebGL渲染方式下,图集的使用可以减少绘制时图集的频繁切换,形成批量绘制,让游戏表现更流畅。但是要达到批量绘制的效果的话,UIImage节点就需要尽可能的排布在一起,为什么这么说呢,在游戏中少不了有文字的存在,如果在一堆的UIImage节点中添加...
假设你已经读过烂代码系列的前两篇:了解了什么是烂代码,什么是好代码,但是还是不可避免的接触到了烂代码(就像之前说的,几乎没有程序员可以完全避免写出烂代码!)接下来的问题便是:如何应对这些身边的烂代码。  1. 改善可维护性  改善代码质量是项大工程,要开始这项工程,从可维护性入手往往是一个好的开始,...
  GameRes游资网授权发布 文/逍遥剑客  VR中的”延迟”, 特指”Motion-To-Photon Latency”, 指的是从用户运动开始到相应画面显示到屏幕上所花的时间。  这中间经过了大概这么几个步骤:  传感器采集运动输入数据采集到的数据进行过滤并通过线缆传输到主机游戏引擎根据获取...