Visual Scripting与编码

时间:2014-11-28 00:39:31

标签: c++ game-engine unreal-engine4

感恩节快乐, 首先,我一直在寻找知道Visual Scripting是否是为游戏引擎制作的新东西。 让我向您展示一些可视化脚本visual scripting

的示例

另一件事就是在IDE中编写c ++代码等常规编码 现在我尝试了他们两个,但我一直想弄清楚的问题是, 因为我尝试了它们两者似乎可视化脚本更容易,并且至少对我来说更容易理解我认为当我连接节点时将它与我编写代码时的“播放器控制器”相比更有意义 我会告诉你我写了一个敌人控制器多久了! 在c ++中为播放器控制器编写代码我花了大约2个小时 虽然我花了一个小时连接节点来制作一个使用可视化脚本的播放器控制器,但即使这是一个简单的过程而且速度很快,我感觉不太好,我开始更多地思考什么是优势编写c ++代码而不仅仅是连接节点? 所以这是一个问题: 编写代码有什么好处? 使用Visual脚本有什么好处? 两者有什么缺点? 我知道这个 Visual Scripting的优点并不像编写c ++代码那么复杂

编写代码也会比“已创建的脚本”(Visual Scripts)更快

最后一个问题,你是否必须在选择Visual或编写代码之间做出选择?

注意:我决定在这里提问而不是游戏引擎网站,因为在这里我可以找到“程序员”,在大多数游戏引擎网站中,他们都喜欢“快乐的方式”,因为他们称之为(视觉)脚本)而不是“编写代码”的“悲伤方式”

我希望这次我没有问一些会导致太多负面投票的“坏”问题:)对我来说很容易就是感恩节;)

更新: 这里有一些关于我在虚幻引擎中使用的Visual Scripting的更多信息,我是从虚幻引擎网站获得的 “虚幻引擎中的Blueprints可视化脚本系统是一个完整的游戏性脚本系统,它基于使用基于节点的界面从虚幻编辑器中创建游戏元素的概念。该系统非常灵活和强大,因为它提供了能力设计师几乎可以使用通常只供程序员使用的全套概念和工具。 通过使用蓝图,设计人员可以对几乎任何游戏元素进行原型设计,实现或修改,例如: 游戏 - 设置游戏规则,调整游戏条件等。 玩家 - 使用不同的网格和材质或角色自定义创建变体。 相机 - 在游戏过程中动态创建新的相机视角或动态更换相机。 输入 - 更改播放器控件或允许玩家将输入传递给项目。 物品 - 武器,法术,拾取器,触发器等 环境 - 创建随机道具或程序生成的项目。“ 我不认为有这样的事情,如果你必须做一些复杂的事情,你需要为它编写代码(我的意见)

3 个答案:

答案 0 :(得分:7)

如果你看一下UML,它是一种建模语言,它几乎涵盖了你可以用代码做的所有事情,它非常适合于对系统进行建模,但是当它用于程序生成时却不尽如人意。基本上,描述真正复杂的交互比编写等效代码需要更多的图表和更多的图表。

采用简单的5路开关语句。易于编写,绘制复杂。通过系统建模不同的路径可能会变得非常麻烦,非常快。

当存在简单的数据路径时,代码生成的拖放连接模型非常有效,但是一旦您谈论状态机之间的复杂交互,它就变得非常复杂。在过去,我注意到这些可视化建模系统最终会在连接上编写脚本来满足复杂性,这通常会使它们比直接代码更难以理解,并且更难以找到发生的事情。

最后,语言越高,在性能和控制方面就必须做出更多的权衡。所以这些越重要,选择的语言水平就越低。如果您正在编写一个高度时间关键的设备驱动程序功能,您可能最终编写汇编程序,而自动化的高级菜单系统可以用脚本语言编写。视觉语言是一种非常高级的语言,因此权衡取舍可能相当高。但是,上市时间往往会下降到语言水平越高。因此,你想投入多少时间和精力也会成为一个因素。

答案 1 :(得分:6)

Visual Scripting经常用于许多游戏引擎,如Unity,Construct 2,虚幻引擎等。

为什么?因为它更容易。
用VS编写的代码更容易理解,通常单个节点可以替换100行普通代码 除此之外,它更易于理解,更容易理解正在发生的事情。
更重要的是,它易于学习,因此知识渊博的人实际上可以使用它。
有很多在这些脚本背后发生的事情,你实际上不需要知道使用它发生了什么。

当您键入普通代码时,您需要知道自己在做什么,它允许熟练的用户获得更大的灵活性和性能(可视化脚本通常缺乏这一点)。虽然组织这样的项目要困难得多,但代码很容易失控。但是,性能和灵活性,这是一件非常重要的事情。

例如,在某些引擎中,您可以只编写Player Jump或类似的内容,而您并不关心它是如何发生的,您甚至不必了解游戏机制,物理机制等。

如果我必须选择一个,我会根据项目选择。这是同一个问题:
如果您可以在游戏引擎中创建游戏或使用代码从头创建游戏,您会选择哪一个?

我们所有人都有自己的喜好。大公司倾向于创建自己的技术和引擎,以便他们能够更快地工作,并使工作更轻松。

Adv / Disadv:

VS:
 +快速发展  +易于维护
 +易于学习
 +轻松在团队中工作
 +通常是便携式的  +隐藏了许多你不必关心的东西  +更清楚了  +通常不包含“代码错误”
 +笨拙友好(你不会忘记分号)
  - 缺乏灵活性
  - 你真的不知道发生了什么事   - 您将学习如何解决问题,但您无法在特定引擎之外进行解决   - 通常比代码慢得多   - 你不能做性能更新
  - 取决于发动机(每种都使用其他编码方式)
  - 您需要了解每个引擎的工作原理   - 如果有引擎错误,你无法修复,你必须等待补丁
  - 他们经常付钱,或者他们缺乏可能性   - 哦,对,有限的可能性

代码:
 +让您学习如何实际做某事  +给你更多的可能性  +如果你学习如何编码,你可以编码任何东西 (如果你学习引擎脚本,你只限于它,你不会写任何其他应用程序而不是游戏)
 +基本上没有限制(技术内容之外)
 +如果您学习1种语言,则更容易理解任何其他现代语言  +你实际上控制着正在发生的事情  +为您提供有关如何编写算法和程序的真正知识  +代码独立于公司
 +大多数东西都是免费的  +它比脚本更快   - 更难学习先进的东西
  - 更难维护大项目
  - 你可以笨手笨脚地摧毁东西   - 其他人通常很难理解   - 不像Visual Scripting那样清晰   - 在某些时候很难维持   - 许多平台相关的东西
  - 要实际做一些事情,你需要学习相当多的东西

选择取决于情况,公司,团队偏好,截止日期,平台,目标等。

我希望我能为你排序:)。

答案 2 :(得分:3)

" Visual Programming"既不是新的"概念,也不是游戏编程的新手。

它也是一个非常广泛的概念:"视觉编程的概念"在许多不同的领域都有很多应用。

您已经提到了#34;游戏编程"。另一个是"教育"。例如:

Hour of Code: Coding with Anna and Elsa

相关问题