首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本语言和游戏开发/编程

脚本语言和游戏开发/编程
EN

Stack Overflow用户
提问于 2011-09-15 16:28:21
回答 10查看 8.8K关注 0票数 16

好的,我已经进入了2D游戏开发/编程,很多我见过的游戏也使用了某种脚本语言。所以我想知道-在游戏中使用脚本的目的是什么?我知道没有一个简单的原因,我一直在考虑所有的可能性。以下是我“认为”到目前为止我知道的情况:

1)脚本允许改变游戏而不必重新编译。

2)脚本更便于非程序员使用。

3)脚本允许我将引擎与游戏本身分开,让我能够更快地制作具有相同组件的其他游戏?

我只知道这些。我的下一个问题是,如果我要单独开发/编程一个游戏-我真的需要使用脚本吗?或者,我可以使用类似python或ruby之类的工具对游戏进行原型,以便进行快速测试,然后用C++重写代码以节省时间和编译器错误等等?

我想知道的另一件事是,我最好还是使用Ruby或Python,因为我在这些方面最有经验吗?或者我应该使用Lua,Perl或其他什么,如果它更适合我的目标?说到这个问题,我到底应该用脚本做什么?我是否应该使用它们来定位和模拟游戏菜单UI,写/读保存文件,加载地图级别,保存数组或游戏术语的结构,如“新游戏”或“退出”,所有这些,以上都没有?

如果我使用脚本,这难道不允许最终用户编辑游戏机制吗?或者有一种方法可以将脚本打包到引擎可以读取的一个压缩文件中?

基本上,我在想:

我应该在游戏中使用脚本来做什么?为什么?

如果我是单独工作还是与程序员一起工作,我需要使用脚本语言吗?

如果我要制作平台、RPG,或者你是什么?,我应该使用什么脚本语言?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-09-15 16:51:56

您的前三个原因都是100%正确的,是使用脚本语言和你的游戏引擎的主要原因。

就我个人而言,我只是通过Luabind和Lua有过真正的经验。这是有点棘手的设置,但这是值得的。您可以使用脚本语言公开您希望“用户”在本例中能够使用的数据结构和/或功能。一般来说,唯一可以修改的游戏机制是你允许他们做的。

我应该在游戏中使用脚本来做什么?为什么呢?资产加载,公开特性/类型,即对于我们的游戏引擎(用c++编写),我们有一个基本级别,然后从它继承了许多不同类型的级别,例如波形级别、死亡匹配等等。用户只在脚本中简单地说明他们需要的级别类型,然后在这里丢弃资产。在我的演示中我们有;

Level=“小波”

-敌人的初始数目

EnemyNumbers="3“

-波浪总数

WaveNumbers="4“

-波系数

WaveCoeff="1.1“

-地形大小

TerrainSize="256“

-地形档案

TerrainFile=“资源/模型/山地”

别太担心数字和所有这些。

正如您所看到的,这样做既可以加载资产,也可以确定级别类型。

我们还为脚本提供了大量的人工智能控制,事实上,数据结构几乎完全暴露在Lua中。

如果我是单独工作还是与程序员一起工作,我需要使用脚本语言吗?

是的,也许吧?当然,我们都更喜欢“真正的”编码。如果你能让你的游戏引擎足够抽象,仅仅用Lua构建完全不同的游戏,那就意味着你已经做了很好的工作,并且设计得非常好。

另一件事你必须考虑,特别是如果你是游戏引擎是相当庞大的,让我们面对它,没有真正的一个小,每一次你编译,它可能需要几分钟!是链接器在这里花时间。

如果我要制作平台、RPG,或者你是什么?,我应该使用什么脚本语言?

我只用过Lua,所以这是我在这里唯一能给出的建议。

希望这是对你有帮助的信息。

票数 11
EN

Stack Overflow用户

发布于 2011-09-15 16:37:56

老实说,这听起来像你第一次尝试一场比赛,你甚至不应该担心这类事情。相反,我会更担心把你的项目范围降低到一个你有一个雪球的机会真正完成一些事情的水平。如果你还没有在Tac脚趾或Pong的水平上做过什么,那就先做。你在那里学到的东西比担心脚本语言更有价值。

哦,如果你正在做一个RPG作为你第一次尝试一个游戏。不要。即使对于专业开发人员来说,他们也是最难做的游戏,他们拥有的资源是他们可用资源的很多倍。保持简单,并以此作为一种学习经验。

回到你的问题:如果你是唯一一个谁会看到你的游戏,你的选择是否使用脚本语言。如果这样会节省您的时间,或者您想要学习如何将脚本与代码集成,那么就去做吧,但是要注意,这将是一个有点浪费时间的问题。

是/不是/取决于你的第二个。如果游戏的范围很小,脚本就不那么重要了。如果您单独执行此操作,那么脚本编写就不那么重要了。

您的选择,您知道什么,或您的引擎将支持什么(或什么引擎工具,您cna购买支持)。Lua很受欢迎,但是即使是手工滚动的脚本也能工作。它更多地是关于将数据从代码中分离出来,设计类型的工作与engineer类型的工作分离。

以上各点适用。脚本将非编码者排除在代码之外,并允许团队中的任何人轻松地更改代码中应该包含的与数据相关的内容。脚本也是一种非常高级的语言,允许在控制的方式下进行大量游戏级别的更改,如果放在代码中,这些变化看起来会很难看。我个人也做过两种方式的游戏。在游戏周期结束时,脚本游戏更容易维护--如果脚本支持代码已经成熟,并且已经运行过一些调试周期。新的脚本支持代码比直接编码更难调试,因为有更多可能的失败点。没有脚本编码的游戏往往会更快地完成,但需要更多的程序员/工程师时间,这意味着所有事情的范围都必须限制在预算上。

我要说的是,精心设计的脚本和整体游戏系统将始终优于直接编码。关于脚本和代码以及其他所有东西如何耦合到一个允许非常快速的游戏开发的光滑界面的例子,请看联合。

票数 6
EN

Stack Overflow用户

发布于 2011-09-15 16:36:05

我应该在游戏中使用脚本来做什么?为什么?

你引用的理由是好的。您可能需要理解的一件事是,大多数专业游戏仍然是用C++构建的,如果代码库很大,那么改变它的灵活性就差了。因此,如果您使用C++,您将需要脚本语言进行快速更改,在这里允许您根据所列出的原因进行相应的更改。

如果您不使用C++,那么您可能使用一种能够快速吸收更改的语言,从而使脚本的主要目的不那么明显。例如,我不会在Flash或Python游戏中使用脚本语言。

如果我是单独工作还是与程序员(而不是开发人员)一起工作,我需要使用脚本语言吗?

正如我先前的回答:这取决于改变的时间。认为游戏的核心规则很少改变,但是与水平设计相关的一切都会,而且应该是可测试的。如果你能用游戏的编程语言来做这件事,为什么还要费劲呢?如果你做不到,那么任何加速变化整合的方法都将付出代价。

如果我要制作平台、RPG,或者是你,我应该使用什么脚本语言?

坦率地说,没有解决任何问题的办法。我个人使用猎鹰和ChaiScript,Lua是众所周知的,但任何脚本语言,可以用于您的游戏编程就可以了。这是一个已经问过的问题,如果你有疑问,只要选择Lua,因为它是最常见的游戏。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7434267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档