<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[It's time]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shaocize</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shaocize]]></copyright><item><title><![CDATA[顶级NPC寻路方法 洪荒之力带你上天]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/90082704</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/90082704</guid><author>shaocize</author><pubDate>Fri, 10 May 2019 19:38:09 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/675163.html






NPC寻路也是个老生常谈的话题了，但是一说到NPC寻路，可能就有人迷茫了：哥们儿你说的寻路是什么意思？怎么个寻法？举个例子好不好？寻路这个词是游戏开发中专用的，映射到大家课本上学到的知识点，就是图(数据结构中的图结构)中两点之间的路径。这个路径不是特指最短路径，但它就专门指的就是图中两点之间的路径。
1、N...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法（6）长期和短期目标]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/90082694</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/90082694</guid><author>shaocize</author><pubDate>Fri, 10 May 2019 19:37:08 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/490119.html



我已经集中讲过了从一个地方到另一个地方寻找路径的任务。然而，一个与之同等重要的问题是：一旦我有一个路径，我该怎样沿着它移动？最明显的答案是从一个位置到另一个的位置的直线移动。然而，你可能想在曲线上移动，或者多次的移动。你可能想把位置偏离成为低优先级的目标。一个更高层次的问题是：你要去哪里？除非你先回答的是高层次的...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法（6）：地图表示]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/90082670</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/90082670</guid><author>shaocize</author><pubDate>Fri, 10 May 2019 19:36:09 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/489480.html



在本系列文档大部分内容中，我都假设A*用于某种网格上，其中的“节点”是一个个网格的位置，“边”是从某个网格位置出发的各个方向。然而，A*可用于任意图形，不仅仅是网格，有很多种地图表示都可以使用A*算法。地图表示可能对性能和路径的质量产生很大影响。寻路算法不是线性的，而是越来越差。如果需要行进的距离翻倍了，那么会消...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法（5）预先计算好的路径的所用空间]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/90082656</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/90082656</guid><author>shaocize</author><pubDate>Fri, 10 May 2019 19:33:50 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/488852.html



有时候，影响计算寻路路径的不是时间，而是计算路径所需的上百个单元格所占的空间。寻路是需要内存来运行寻路算法，还需要额外内存来存储寻到的路径。运行寻路算法（A*,开集或闭集）所需的临时空间经常会比存储这些寻到的路径所需的空间更大。通过在同一时间内只进行一条路径计算来限制游戏中的计算量，可以将你需要的临时空间降到最少...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法的分享（4）处理移动中的障碍物]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/90082644</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/90082644</guid><author>shaocize</author><pubDate>Fri, 10 May 2019 19:32:39 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/487419.html



一个寻路算法会计算出一条绕过静止障碍物的路径，但如果障碍物会移动呢？当一个单位移动到达某特定点时，原来的障碍物可能不在那点了，或者在那点上出现了新的障碍物。如果路线可以绕过典型的障碍物，那么只要使用单独的避障算法来配合你的寻路算法。寻路算法会寻找到期望的路径，并且在沿着路径的同时绕过障碍物。但是如果障碍物可以移动...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法的分享（3）：A*算法的实现]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89842378</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89842378</guid><author>shaocize</author><pubDate>Sun, 05 May 2019 11:51:38 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/486993.html



概述剥除代码，A* 算法非常简单。算法维护两个集合：OPEN 集和 CLOSED 集。OPEN 集包含待检测节点。初始状态，OPEN集仅包含一个元素：开始位置。CLOSED集包含已检测节点。初始状态，CLOSED集为空。从图形上来看，OPEN集是已访问区域的边界，CLOSED集是已访问区域的内部。每个节点还包含一...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法的分享（2）：Heuristics 函数]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89842324</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89842324</guid><author>shaocize</author><pubDate>Sun, 05 May 2019 11:49:23 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/485150.html



启发式函数h(n)告诉A*从任何结点n到目标结点的最小代价评估值。因此选择一个好的启发式函数很重要。启发式函数在A* 中的作用启发式函数可以用来控制A*的行为。

一种极端情况，如果h(n)是0，则只有g(n)起作用，此时A* 算法演变成Dijkstra算法，就能保证找到最短路径。
	如果h(n)总是比从n移动到...]]></description><category></category></item><item><title><![CDATA[游戏中常用的寻路算法的分享（1）：A*算法介绍]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89842266</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89842266</guid><author>shaocize</author><pubDate>Sun, 05 May 2019 11:46:15 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/484360.html



物体的移动算法似乎显得很简单，然而寻路规划问题却十分复杂。考虑下面这个例子：



这个单位的初始位置在地图的下方，想要到达地图的顶部。如果物体所能侦测到的地方（粉色部分所示）并没有障碍，那么物体就会直接向上走到它的目标位置。但在距离顶端较近的位置时，物体侦测到了障碍，因而改变了方向。该物体将不得不行进一个“U”...]]></description><category></category></item><item><title><![CDATA[游戏中的寻路算法研究：关于网格]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89792857</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89792857</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 23:40:03 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/832181.html



网格通常用于游戏中，用于表示游戏区域，如地图（在“文明”和“魔兽”等游戏中），游戏界面（如游泳池，乒乓球和扑克等游戏），运动场（棒球和足球等游戏），棋盘（在象棋，Monopoly和Connect Four等游戏中，以及抽象空间（在俄罗斯方块之类的游戏中）。我试图在这些页面上收集我对网格的看法。我避免实现细节（例如...]]></description><category></category></item><item><title><![CDATA[网格沉思——游戏中的网格系统探究]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89792800</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89792800</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 23:30:49 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/655527.html




			
			介绍
			Amit Patel 撰写过一系列有关游戏算法的可交互教程。本文为其六角网格系列中的一篇。引言
			用网格系统来呈现与区域相关的要素的例子在电子游戏中不胜枚举。
			具体来说：譬如有文明系列与魔兽争霸系列中的地图；撞球、台球和德州扑克中的游戏界面；一些球类游戏中的交互范围；象棋，...]]></description><category></category></item><item><title><![CDATA[游戏编程：向量数学在游戏中如何使用]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89789632</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89789632</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 17:39:16 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/669787.html



对于一个初学者来说，三维空间的几何似乎有点让人望而生畏。在纸上可以画出来的二维空间几何就已经足够难以理解了，但是现在我们竟然要使用和掌握三维空间的几何？好消息是在图形学中直接使用三角形是非常罕见的并且有很多方法可以用来避免这么做。我们有其他更好理解和使用的工具来代替。你可能在下图中已经认出我们的老朋友-向量（ve...]]></description><category></category></item><item><title><![CDATA[技术干货：赛车游戏中最短路径和最小曲率路径算法]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89786264</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89786264</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 11:49:51 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/492096.html



最近参与了一个非常蛋疼的业余时间小项目：给定赛道和赛车模拟程序，求赛车跑完赛道的最快的办法。对于这个问题，我一开始的想法是：就像Google的自动驾驶一样，给定足够的训练数据，然后汽车对前方的画面做出判断决定当前时刻的驾驶策略。不过查了查文献，从游戏开发的角度，似乎一般都是用先找出赛车的最优路径，然后沿着路径驾驶...]]></description><category></category></item><item><title><![CDATA[关于制作赛车游戏的一些入门知识]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89786233</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89786233</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 11:46:50 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/484339.html





在过去的几个月里，我拉着几个死党一起搞了一个iOS赛车游戏。由于当时还在上班，所以我一边白天上班，一边晚上＋周末倒腾这个游戏。尽管这只是一个很简单的2D游戏，但我却在里面用了一些比较‘有趣’的方法来使这个游戏能看上去比较生动，这其中包括了一些真实的车辆驱动原理以及一些基础的物理受力分析。接下来我准备用几篇文章...]]></description><category></category></item><item><title><![CDATA[游戏服务端开发：如何精确计算MMO游戏技能攻击区域？]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89784475</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89784475</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 01:40:51 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/493846.html



游戏技能攻击区域的计算，关乎服务端的效率。需要确保正确，简洁地计算攻击区域，才能快速寻找攻击对象。今天只讨论地图上距离的问题。一般情况下攻击区域分为以下几种：1.点对点，对个人进行攻击2.射线攻击，其实就是矩形区域3.扇形攻击4.圆形攻击当然，还有其他情况，例如多区域和其他奇奇怪怪的形状。不过考虑的实际观赏价值，...]]></description><category></category></item><item><title><![CDATA[服务端构架干货：快节奏多人游戏的技术实现]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89784469</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89784469</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 01:34:31 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/480116.html



一、简介序：本文是探索如何制作快节奏多人游戏相关技术和算法的系列文章中的第一章。如果你熟悉多人游戏背后的概念，可以放心跳过本章 - 接下来是一些介绍性的讨论。作弊问题一切都始于作弊。做为游戏开发者，通常不会关心是否有人在你的单人游戏中作弊，因为他的行为只会影响他自个儿。作弊的玩家可能不会按照你设计的过程来体验游戏...]]></description><category></category></item><item><title><![CDATA[游戏编程实用技能：2D游戏中坐标转换]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89779598</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89779598</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 00:46:24 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/494103.html



游戏里面经常用到坐标转换，例如地图、战斗技能等。一、直角坐标和极坐标的转换前提条件：1、两坐标系原点重合2、两坐标系x轴正半轴重合3、两坐标系单位长度相同变量关系：






如上图，M的直角坐标为(x,y)，极坐标(ρ,Θ)。由图中关系可以得出ρ^2 = x^2 + y^2 (勾股定理)tanΘ = y/...]]></description><category></category></item><item><title><![CDATA[干货分享：游戏场景管理的八叉树算法解析]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89774798</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89774798</guid><author>shaocize</author><pubDate>Fri, 03 May 2019 00:29:10 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/665565.html



八叉树（octree）是三维空间划分的数据结构之一，它用于加速空间查询，例如在游戏中：1.加速用于可见性判断的视锥裁剪（view frustum culling）。2.加速射线投射（ray casting） ，如用作视线判断或枪击判定。3.邻近查询（proximity query），如查询玩家角色某半径范围内的敌...]]></description><category></category></item><item><title><![CDATA[真的看不见我？ 潜入类游戏敌兵AI的界定]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89764325</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89764325</guid><author>shaocize</author><pubDate>Thu, 02 May 2019 20:01:36 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/653170.html



在潜入类游戏近年来日渐式微，Sam Fisher们纷纷祭出全武行才能在“枪枪枪”的大潮下苟延残喘的市场格局之下，《潜龙谍影5》和新《杀手》两部重磅作品的到来，再度燃起了屏幕前的“低调大师”们的潜行欲望。我们为什么要玩潜入游戏？因为它能够提供命悬一线的紧张感。从游戏机制来说，潜入游戏利用敌我双方账面实力的极端不对等...]]></description><category></category></item><item><title><![CDATA[开放世界游戏中的大地图的实现——内容制作篇/异次元篇]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89764264</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89764264</guid><author>shaocize</author><pubDate>Thu, 02 May 2019 19:55:49 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/304464.html

     https://www.gameres.com/304808.html



二、内容制作篇：设计和创造（Content Design &amp; Creation）聊完了程序方面的内容，我们来简单讲讲超大规模世界在设计和制作方面的一些情况。这方面因为我不是专家，只是做一下简单的介绍，不足之处，...]]></description><category></category></item><item><title><![CDATA[开放世界游戏中的大地图的实现——程序技术篇]]></title><link>https://blog.youkuaiyun.com/shaocize/article/details/89764233</link><guid>https://blog.youkuaiyun.com/shaocize/article/details/89764233</guid><author>shaocize</author><pubDate>Thu, 02 May 2019 19:52:09 +0800</pubDate><description><![CDATA[转自：https://www.gameres.com/304072.html



一、程序技术篇：算法和架构（Programming Algorithms &amp; Architecture）1. 无限循环的平铺地图（Infinite Tiling）我们就从最平淡无奇的无限循环平铺地图说起吧。这应该是最原始，也是最没有技术含量的开放世界构筑方式了。技术上由于过于朴素，也没什么好说的，就是在同...]]></description><category></category></item></channel></rss>