植绒代理算法

爱好项目的小更新 我可定制的植绒算法是我个人面临的挑战,它是创建一个单一的植绒行为脚本来在其代理上生成自发行为。 它考虑了凝聚力,分离力,游荡,攻击(对某些标记为可攻击的实体),回避和其他一些因素。 该算法基于我参加的Udemy课程,并据此制作了自己的增强版本。 分解动物行为动作并将其重新编写成代码,这是一个很棒的练习,它基于静态逻辑生成自然对羊群运动的随机性。 该算法允许复制一个实体,并使用相同的逻辑生成不同的行为。 这项练习帮助我增进了将复杂情况转换为编程逻辑所需的经验和知识。 同样,它也帮助我推进了游戏AI编程,这是我非常感兴趣的主题。 在我看来,使用代码来重现行为有助于增强分析能力,以开发满足特定需求的优质产品,同时考虑到人类习惯和行为以产生更好的结果。 该算法与97个克隆实体一起运行 它可以在机器可以处理的尽可能多的实体上运行,以保持帧速率,仿真是使用97个单位完成的。 如视频所示,所有参数均可实时配置。 为了使事情井井有条,克隆的单元在群游戏对象内部生成,避免了过多的对象填充“层次结构”面板。 也可以添加具有不同个性的实体(只需进行少量代码编辑,即可向系数中添加随机范围值,而不是使它们完全相同)。 遵循的例程是首先收集周围的单位(基于用户定义的半径),对于每次计算(内聚,分离,徘徊,回避,攻击等……),将确定“威尔”系数(该因素的权重)在最终方向上),并根据结果矢量计算最终属性(加速度,速度,方向),它们分别是权重。 这个想法开始是因为我想练习将真实的行为转换为代码,现在轮到我计划制作一款小型游戏(也许是VR),并以此为敌人AI的基础了。 简而言之,这是非常具有挑战性的,但是在我的业余时间开发这个业余爱好项目则更加令人满意。 玩得开心,学习适用于任何编程语言的新技术,创造新事物,并有动力以实现自己的目标为乐,继续学习,这是很棒的。…

我的工作流程示例

本文是制作着色器时的工作流程示例,尽管其背后的许多原理也适用于其他方面。 这对使用Tobii EyeTracker来解决魔术/心灵运动难题的游戏是一种效果。 如果gif在本文中无效,也可以在这里找到。 首先,我将要思考的效果发挥核心作用,以查看效果是否达到了预期的效果。 在这种情况下,我想制作一个魔术光环。 我首先在球体上放置了一个简单的透明且未照明的纹理,然后使用Unity的Time.time变量乘以一个速度变量,然后使用一些辅助脚本将其传递给着色器,在X轴和Y轴上对其进行UV滚动。附加到光环的GameObject。 在这种情况下,我喜欢核心,所以我继续第二步。 一旦对这个想法的核心感到满意,我便会从效果上添加一点点才可以真正出售它。 在这种情况下,我使用一个简单的正弦波将光环的颜色脉动。 这对效果有所帮助,但我认为效果不够。 为了修正效果的无聊性和“是的,看起来仍然像球体”的感觉,我添加了旋转的粒子效果,这些效果在球体表面生成并以随机方向浮动。 加上脉动的颜色和紫外线滚动,足以给我带来魔幻光环的氛围,但我仍然感觉到缺少特别的小东西,使我感到炫耀。 最后一次在边缘上的推动是一个非常透明的,稍大的球体,它在X轴上与基本球体相反地滚动,而在Y轴上不滚动。 然后,我根据Time.time的正弦波对顶点进行动画处理,该动画首先在X轴上然后在Y轴上轻轻地使球体变形。 这种变形会交替出现。 经过最后一次颠簸之后,我对将其放入游戏中的效果非常满意。 这个效果花了我大约两个小时的时间,并且在制作它的游戏中被广泛使用。…

问Unity专家:什么是ECS?

在本系列文章的第一篇中,我们将解释什么是Unity的ECS以及它可以为您的游戏做什么。 Unity ECS的主要优势是默认性能。 为了实现这一目标,ECS摆脱了传统的面向对象编程(即大多数Unity开发人员都熟悉的以GameObject和MonoBehaviour为中心的工作流程),转向了面向数据的设计。 为了说明它们之间的差异,让我们比较一下每种方法如何构建代表玩家角色的对象: 使用面向对象的编程,您将创建一个GameObject来表示玩家角色,然后附加MonoBehaviours以赋予GameObject功能,例如玩家控制器,健康状况和物理属性。 这些MonoBehaviours包含数据(例如生命值)和修改该数据的代码(例如,当玩家受到伤害时减少生命值)。 使用面向数据的设计,您将创建一个实体来表示玩家角色,然后附加组件以存储数据。 ECS组件不应与GameObject组件(例如MonoBehaviours)混淆。 与GameObject组件不同, ECS组件不包含任何逻辑,它们仅存储数据。 我们用于对实体及其组件执行操作的代码以系统的形式存在。 系统是脚本。 它们对世界上所有实体和组件都起着作用。 为了继续前面的减少生命值的示例,系统将对具有健康和损坏组件的所有实体进行分组,并相应地减少受影响的组件。 ECS有什么好处? 面向数据的设计的内存布局可确保ECS生成的代码在内存地址之间的跳转比传统的面向对象编程要少得多。 此外,由ECS引导的内存布局允许进一步利用缓存预取来优化代码,CPU使用此过程来确保在需要时已将下一个数据位加载到缓存中。…

利用Google Compute Engine进行低成本GPU渲染(以及耐心的其他有趣练习)

在开发Elliot&Ko(一个(希望)可爱的小游戏,您应该完全检查一下)的同时,我往往需要大量的GPU资源和时间。 我选择处理预高质量的渲染(因此需要资源),然后将其实时合成为2D图像,而不是处理使各种低端设备实时看起来精美的传统难题。具有虚假3D物理特性的资产。 除了我的GPU像土豆一样的事实之外,一切都很好。 借用了一位朋友的更好的硬件后,我颇具讽刺意味的是,他是一名开发人员Google Compute Engine,之后,我决定直接研究源代码,并在云硬件上设置一个低成本的远程系统。 通过远程处理高要求的作业来节省时间并释放PC资源(同时节省功耗) 3D渲染或烘焙,尤其是在Blender中 高GPU产量,例如After Effects渲染,各种Unity任务(预先计算的照明等) 如果您还不知道,当您首次注册其云平台时, Google会提供$ 300的信用额 。 再加上今年早些时候Google以较低的成本推出了“可抢占式” GPU,您可以获得以美分/小时的价格运行几千美元的硬件,第一次免费试用技术……谁知道要花多长时间。 成本和可用性因地区而异,但最终比诱人的信誉要便宜于亚马逊的“现场实例”。 不过,如果您对AWS感兴趣,那么这里概述的所有内容都适用于此,并且这里有一个精妙而相似的草案会详细介绍AWS设置。…