CaV*_*MaN 3 c++ game-engine unreal-engine4
感恩节快乐,首先,我一直在寻找知道Visual Scripting是否是为游戏引擎制作的新东西.让我向您展示一些可视化脚本的示例
另一件事就是在IDE中编写c ++代码的常规编码现在我尝试了它们,但我一直试图弄清楚的问题是,因为我尝试了它们两者,看起来可视化脚本更容易,更容易理解至少我觉得当我连接节点时将它与我编写代码时的"播放器控制器"进行比较是有道理的我会告诉你我花了多长时间编写一个敌人控制器!在C玩家控制器++编写代码,我花了大约2个小时,而我花了仅一小时连接节点使用可视化脚本它来进行玩家的控制器,但即使这是一个简单的过程,速度快,我没有感觉良好,我开始更多地考虑编写c ++代码而不仅仅是连接节点的优势?所以这里有一个问题:编写代码有什么好处?使用Visual脚本有什么好处?两者有什么缺点?我知道Visual Scripting的这些优点并不像编写c ++代码那么复杂
编写代码也会比"已创建的脚本"(Visual Scripts)更快
最后一个问题,如果您必须在您选择Visual或编写代码之间做出选择?
注意:我决定在这里提问而不是游戏引擎网站,因为在这里我可以找到"程序员",在大多数游戏引擎网站中他们都喜欢"快乐的方式",因为他们称之为(可视化脚本)而不是(悲伤的方式)是(写代码)
我希望这次我没有问一些会导致太多负面投票的"坏"问题:)对我来说很容易就是感恩节;)
更新:这里有一些关于我在虚幻引擎中使用的Visual Scripting的更多信息我从虚幻引擎网站获得它"虚幻引擎中的Blueprints可视化脚本系统是一个完整的游戏性脚本系统,基于使用基于节点的概念从虚幻编辑器中创建游戏元素的界面.该系统非常灵活和强大,因为它使设计师能够使用通常只供程序员使用的几乎所有概念和工具.通过使用蓝图,设计师可以进行原型设计,实现或修改几乎任何游戏元素,例如:游戏 - 设置游戏规则,调整游戏条件等.玩家 - 创建具有不同网格和材质或角色定制的变体.相机 - 原型新相机视角或动态更改相机玩输入-改变播放器控件或允许玩家通过输入笔数-武器,法术,皮卡,触发器,等环境 - 创建随机道具或程序生成的项目."我不认为有一样,如果你必须做出一些复杂的,你需要编写代码为它(我认为)这样的事情
如果你看一下UML,它是一种建模语言,它几乎包含你可以用代码做的所有事情,它非常适合于对系统进行建模,但是当它用于程序生成时却不尽如人意.基本上,它需要更多的图表,以及更多的图表来描述真正复杂的交互,而不是编写等效代码.
采用简单的5路开关语句.易于编写,绘制复杂.通过系统建模不同的路径可能变得非常麻烦,非常快.
当存在简单的数据通路时,代码生成的拖放连接模型非常有效,但是一旦您谈论状态机之间的复杂交互,它就变得非常复杂.在过去,我注意到这些可视化建模系统最终会在连接上编写脚本来满足复杂性,这通常会使它们比直接代码更难以理解,并且更难以找到发生的事情.
最后,语言越高,在性能和控制方面就必须做出更多的权衡.所以这些越重要,选择的语言水平就越低.如果您正在编写一个高度时间关键的设备驱动程序功能,您可能最终编写汇编程序,而自动化的高级菜单系统可以用脚本语言编写.视觉语言是一种非常高级的语言,因此权衡取舍可能相当高.但是,上市时间往往会下降到语言水平越高.因此,您想要投入多少时间和精力也成为一个因素.
Visual Scripting经常用于许多游戏引擎,如Unity,Construct 2,虚幻引擎等.
这是为什么?因为它更容易.
用VS编写的代码更容易理解,通常单个节点可以替换100行普通代码.
除此之外,它更容易理解,更容易理解正在发生的事情.
更重要的是,它易于学习,因此知识渊博的人实际上可以使用它.
这些脚本背后有很多东西,你实际上不需要知道使用它发生了什么.
当您键入普通代码时,您需要知道自己在做什么,它允许熟练的用户获得更大的灵活性和性能(可视化脚本通常缺乏这一点).虽然组织这样的项目要困难得多,但代码很容易失控.但是,性能和灵活性,这是一个非常重要的事情.
例如,在某些引擎中,您可以只编写Player Jump或类似的内容,而您不关心它是如何发生的,您甚至不必了解游戏机制,物理机制等.
如果我必须选择一个,我会根据项目选择.这是同样的问题:
如果您可以在游戏引擎中创建游戏或使用代码从头开始创建游戏,您会选择哪一个?
我们所有人都有自己的喜好.大公司倾向于创建自己的技术和引擎,以便他们可以更快地工作,并使工作更轻松.
所以Adv/Disadv:
VS:
+快速开发
+易于维护
+易于学习
+在团队中轻松工作
+经常携带
+隐藏很多你不需要关心的东西
+更清晰
+通常不包含"代码错误"
+笨拙友好(你不会忘记分号)
- 缺乏灵活性
- 你真的不知道发生了什么
- 你将学习如何解决问题,但你不能在特定引擎之外做到这一点
- 通常比代码慢得多
- 你不能做性能更新
- 引擎相关(每个使用其他编码方式)
- 你需要了解每个引擎的工作原理
- 如果有引擎错误,你无法修复,你必须等待补丁
- 他们经常付钱,或者他们缺乏可能性
- 哦,对,有限的可能性
代码:
+允许你学习如何实际做某事
+给你更多的可能性
+如果你学习如何编码,你可以编码任何东西
(如果你学习引擎脚本你只限于它,你不会写任何其他应用程序而不是游戏)
+基本上没有 限制(在技术之外)
+如果你学习1种语言,它更容易理解任何其他现代语言
+你实际上控制着正在发生的事情
+给你真正的知识如何编写算法和程序的东西
+代码是独立的公司
+大多数东西都是免费的
+它可以比脚本更快
- 学习高级东西
更难 - 维护大型项目更难
- 你可以笨拙并破坏东西
- 通常很难让别人理解
- 不像Visual那么清楚脚本
- 在某些时候很难维护
- 很多平台依赖的东西
- 要实际做一些你需要学习相当多的东西
选择取决于情况,公司,团队偏好,截止日期,平台,目标等.
我希望我能为你排序:).