将角色驱动的游戏引擎简化到不需要学习脚本/编程的地步是一个好主意吗?


9

我记得,而且我仍然认为,如果不使用庞大的工具(例如,统一性或不了解广泛的C ++编程,设计模式,像样的或基本的3D引擎等),甚至不能制作原型3D游戏来测试简单的行为。

现在我想知道,因为我了解编程,所以我是否比在知道如何制作东西之前需要学习编程的人还幸运。即使像Unity这样的脚本引擎也不适合孩子使用,就我个人而言,它们倾向于指示他们的处事方式。对于像Ogre或Irrlicht这样的引擎,情况并非如此。

现在,我认为角色驱动型游戏占据了游戏市场的很大一部分。您认为制作面向角色控制的游戏引擎只允许构建AI而不包含其他任何东西是一个好主意吗?

当我说原型时,我也指“通用”,即可以从一组游戏参数中快速选择,例如场景管理器,玩家的摄像机POV,控件,一些非常基本的碰撞/物理以及集成基本转向(例如OpenSteer)。主要思想是在3D模式下制作AI沙箱,因此可以在没有2D约束的情况下进行演示(也可以使其更适合3D项目而不是2D的3D原型)。


“基本” 3D引擎并不庞大,并且C ++对于原型制作而言非常糟糕。尝试使用Python。
共产党鸭子

Answers:


6

我真的很喜欢Blender中未被重视的游戏引擎。(http://www.blender.org)即使对于非程序员,传感器-控制器-执行器模型也很容易遵循,并且有可能制作出相当完整的游戏(移动动画角色,发射武器,摧毁目标,显示分数,跟踪健康状况,重置级别或移至新的级别),而无需进行任何编程。

当然,有些事情确实需要编程(特别是要获得FPS的鼠标输入。)但是,Blender已经集成了Python,并且Python脚本与模型非常紧密地绑定在一起,因此您无需用Python替换传感器执行器。相反,您只需从一个非常简单的“传递”控制器切换到一个完整的Python脚本即可读取场景中的所有传感器并将控制权传递给所有执行器。

几天之内在Blender中创建游戏原型是完全可行的(我去年在一个当地儿童博物馆的一个项目中做到了)。

当然,没有什么可以取代古老的编程知识,并且最终,开发人员确实需要了解编程。


将此游戏引擎与代码而不是框一起使用将是非常不错的……也许它不够干净,无法使用,但我想知道……
jokoon 2011年

4

无论采用哪种输入机制,最终,您仍然需要设置某种方式来告诉游戏逻辑是什么。为此,“脚本”是一个很好的口语化术语。因此,基本上我不同意这样的主张,即可以将某些事情简化到不需要知道“脚本”的程度。

话虽如此,并不是所有脚本都需要使用基于文本的编程语言来完成。制作可视脚本系统已经做了一些工作(但不是很多)。虚幻的关卡脚本工具Kismet是一个很好的例子。源引擎具有类似的机制,但是它使用的是世界上的实体,而不是在平面上。

基本上,您可以在具有输入和输出的某种环境中拖动框。如果需要某种分支输出,则可以使用一些具有一个输入和多个输出的框。这些输出可以转到绑定有数据的操作(即“移至此点”,“说这行”,“询问此问题”等)。通常,使用可视语言启动和运行某些东西的门槛要低得多,因为您不必知道关键字或语法,只需要选择一组有限的框即可从中定义行为,而您只需将它们连接在一起。

但是,我认为视觉脚本引擎并不值得。您需要能够结构化和逻辑化地思考,以便成功地告诉引擎您想做什么。如果您可以这样考虑,那么用脚本语言从具有输入/输出的框跳转到基本分支语句和函数调用就没什么大不了的。实际上,一段时间后它的视觉部分可能是一个障碍。另外,在引擎方面还有很多工作要做。您必须执行诸如撤消,复制/粘贴之类的操作,也许需要一些高级功能来组织脚本。使用基于文本的语言,您可以将所有内容留给IDE。


您是说像虚幻的Kismet?
DeadMG,2011年

1

通常这将是一个权衡。如果您确实想消除执行任何类型的脚本的需要,那么通常会谈论建立某种接口,该接口将在后台将脚本拼凑在一起(或仅连接逻辑对象或不连接逻辑对象)。整个游戏都指向它们,这是一个定义明确的环境,您可以在其中拖放功能以查看其如何与之交互。

但是,总之,这总是一个权衡。.尝试使界面越简单,通过该界面创建的内容就越简单。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.