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)处理移动中的障碍物 一个寻路算计算出一条绕过静止障碍物的路径,但如果障碍物会移动呢?当一个单位移动到达某特定点时,原来的障碍物可能不在那点了,或者在那点上出现了新的障碍物。如果路线可以绕过典型的障碍物,那么只要使用单独的避障算法来配合你的寻路算法。寻路算寻找到期望的路径,并且在沿着路径的同时绕过障碍物。但是如果障碍物可...
18 02月 游戏开发者心得分享中心 一个菜鸟程序员的游戏开发心得 图集还有一个一个妙处就是可以增强游戏绘制性能,在WebGL渲染方式下,图集的使用可以减少绘制时图集的频繁切换,形成批量绘制,让游戏表现更流畅。但是要达到批量绘制的效果的话,UIImage节点就需要尽可能的排布在一起,为什么这么说呢,在游戏中少不了有文字的存在,如果在一堆的UIImage节点中添加...
17 02月 游戏开发者心得分享中心 迷宫寻路系列常用算法逻辑探究 关于该问题,大家肯定不假思索的提到: 宽度优先遍历(BFS)。 // 1).初始化工作// 1.1). 把源节点坐标放入队列中queue.push((x, y,step=0));// 1.2). 标示该节点访问过visited[(x, y)] = true // 2).BFS procedur...
17 02月 游戏开发者心得分享中心 魔方游戏实现:任意阶魔方的表示 图2.1 魔方六面的空间位置 由此确定了各个面的空间方位,给SurfaceClass添加如下定义: <summary>当前表层的相邻表层(顶、底、左、右、前和后)</summary>Public NeibourSurface(5) As CubeSurfaceClass图2...
17 02月 游戏开发者心得分享中心 关于烂代码的那些事(下) 假设你已经读过烂代码系列的前两篇:了解了什么是烂代码,什么是好代码,但是还是不可避免的接触到了烂代码(就像之前说的,几乎没有程序员可以完全避免写出烂代码!)接下来的问题便是:如何应对这些身边的烂代码。 1. 改善可维护性 改善代码质量是项大工程,要开始这项工程,从可维护性入手往往是一个好的开始,...
17 02月 游戏开发者心得分享中心 数独游戏求解:解法适用于任意阶数的数独 2)9阶(可填数字范围1~9,宫格3阶) 3)16阶(可填数字范围1~16,宫格4阶) *见附录 1、数独的表示 对于N阶数独可以用一个N*N的二维数组表示 1)数独阶数GridRank=N 2)宫格阶数SubGridRank=Sqrt(N) 3)数独包含宫的阶数SubGridIn...
16 02月 游戏开发者心得分享中心 游戏物体的力与运动:用unity实现磁体相互吸引和排斥的效果 GameRes游资网授权发布 文 / Xylitogum 本文基于Unity 5.3版本和C#语言,使用前请注意本文未必适用于其他的版本。 前言 我们知道在诸如Unity此类的游戏引擎中,游戏内物体是已经有现成的力与运动的物理模型的。我们可以调用相关的API来对物体施力(比如Unity的A...
16 02月 游戏开发者心得分享中心 游戏中常用的寻路算法的分享(3):A*算法的实现 概述 剥除代码,A* 算法非常简单。算法维护两个集合:OPEN 集和 CLOSED 集。OPEN 集包含待检测节点。初始状态,OPEN集仅包含一个元素:开始位置。CLOSED集包含已检测节点。初始状态,CLOSED集为空。从图形上来看,OPEN集是已访问区域的边界,CLOSED集是已访问区域的内部...
16 02月 游戏开发者心得分享中心 VR游戏制作中“延迟”的优化方法 GameRes游资网授权发布 文/逍遥剑客 VR中的”延迟”, 特指”Motion-To-Photon Latency”, 指的是从用户运动开始到相应画面显示到屏幕上所花的时间。 这中间经过了大概这么几个步骤: 传感器采集运动输入数据采集到的数据进行过滤并通过线缆传输到主机游戏引擎根据获取...