Questions tagged «scripting»

一种编程类型,通常意味着比更多的“传统”编程更容易学习。当性能不如易用性那么重要时,通常会使用脚本。脚本语言的示例包括:Javascript,Lua,Perl,Python和PHP。脚本语言通常被解释而不是编译,因此可以直接执行而无需生成机器代码。

6
Lua如何在游戏中用作脚本语言?
我对Lua到底是什么以及用C ++编程的游戏将如何使用它感到有些困惑。我主要是问它如何编译和运行。 例如,当您使用使用Lua脚本以C ++编写的程序时:Lua中的代码是否只是调用以C ++编写的主程序中的函数,并充当未编译的类,等待被编译并添加到C ++的内存堆中程序? 还是像Linux中的bash脚本那样工作,它只执行与主程序完全独立的程序?
67 c++  scripting  lua 

6
为什么我们在开发中使用脚本?
在我当前的项目中,Lua脚本由服务器端的C ++函数调用。之后,脚本再次调用仍在该解决方案中的C ++函数。为什么我们应该这样做而不直接调用C ++函数?在什么情况下需要脚本?
67 scripting 


6
允许在游戏内部进行编程的技术是什么?
有一些游戏允许玩家在游戏中编写/创建脚本,例如:太空工程师或Psi。 我想使用与任何一个相似的东西,但是我很难找到信息,所以我的问题是: 是否有一个编程分支涵盖了软件一旦编译后即可运行用户创建的新代码的能力? 在编程方面,我的意思是类似PTG(过程地形生成)。 为避免基于问题或观点的范围太广,请让我明确声明我不是在寻找指南或学习的地方,我想要所涉及技术的名称或定义(如果有的话)。


7
如何避免Unity中紧密的脚本耦合?
不久前,我开始与Unity合作,但我仍然在紧密耦合脚本的问题上挣扎。如何构造代码以避免出现此问题? 例如: 我想在单独的脚本中拥有健康和死亡系统。我还希望拥有不同的可互换步行脚本,这些脚本可让我更改玩家角色的移动方式(如Mario中的基于物理的惯性控件,以及Super Meat Boy中的紧致,抽搐控件)。Health脚本需要保留对Death脚本的引用,以便在玩家的Health达到0时可以触发Die()方法。Death脚本应该保留对所使用的walking脚本的一些引用,以禁止在死亡时行走(I厌倦了僵尸)。 我通常创建界面,比如IWalking,IHealth和IDeath,这样我就可以改变在心血来潮这些元素没有打破我的代码的其余部分。我希望它们由播放器对象上的单独脚本设置,例如PlayerScriptDependancyInjector。也许这脚本将会为社会IWalking,IHealth和IDeath属性,使依赖可以通过从检查关卡设计师通过拖放相应的脚本进行设置。 这样一来,我可以轻松地将行为添加到游戏对象中,而不必担心硬编码的依赖项。 Unity中的问题 该问题是,在团结,我不能在检查暴露的接口,如果我写我自己的检查人员,引用不会得到序列化,这是一个很大的不必要的工作。这就是为什么我只剩下编写紧密耦合的代码的原因。我的Death脚本公开了对脚本的引用InertiveWalking。但是,如果我决定要让玩家角色紧密控制,就不能只拖放TightWalking脚本,就需要更改Death脚本。糟透了 我可以应付,但是每次我做这样的事情,我的灵魂都会哭。 Unity中接口的首选替代方法是什么?我该如何解决这个问题?我找到了,但是它告诉了我我已经知道的,并且没有告诉我如何在Unity中做到这一点!这也讨论了应该做什么,而不是如何做,也没有解决脚本之间紧密耦合的问题。 总而言之,我觉得这些是为那些具有游戏设计背景来到Unity的人而写的,他们只是学习如何编写代码,而对于普通开发人员而言,关于Unity的资源很少。有什么标准的方法可以在Unity中构造代码,还是我必须弄清楚自己的方法?
24 c#  unity  scripting 

6
实现自己的脚本语言是否可行?
我正在用C ++编写节拍游戏,现在是时候为事件,触发器,过场动画等实现脚本了。我已经在互联网上阅读并获得了很多信息。我的首选解决方案是实施自己的脚本语言,例如Cave Story中的脚本语言。我已经看到了这个建议,但是大多数人都建议使用lua,但这似乎与我的编程类型不符。 您是否制作了自己的脚本语言?您为什么选择自己滚动而不使用现有的?您在开发过程中咨询了哪些资源?
21 scripting 

3
如何在游戏中实现智能脚本编制?
我正在开发一个游戏引擎。它应该是一个基于实体/组件的实体。为了开发游戏本身,我想使用某种脚本语言来实际创建实体。 例如,如果我想添加一种对玩家具有侵略性的怪物,它将是一个具有多个组成部分的实体。这些组件会随着怪物类型的变化而变化,因此,如果我有一百种不同类型的怪物,那么在我的游戏中,我就不必直接在游戏代码中为每个怪物创建新的方法。 我应该使用脚本语言来描述该实体,还是使用组件?更一般而言,我应该如何在游戏中使用脚本?

4
我该如何避免在整个代码中出现一次性标记和检查?
考虑一个纸牌游戏,例如《炉石传说》。 有成百上千种卡片可以做各种各样的事情,其中​​有些甚至对于一张卡片来说都是独一无二的!例如,有一张牌(称为Nozdormu)可将玩家回合减少到仅15秒! 当您具有如此广泛的潜在影响时,如何在整个代码中避免幻数和一次性检查?如何避免PlayerTurnTime类中的“ Check_Nozdormu_In_Play”方法?以及如何组织代码,使得当您添加更多效果时,您无需重构核心系统即可支持以前从未支持过的东西?

4
游戏引擎:在架构上实现脚本支持的一种不错的方式?
我正在开发一个简单的游戏引擎(如果重要的话,请使用C#),但我想不出足够好的体面的方法来实现架构方面的脚本。 这是一种简单的基于回合的策略,带有用于战斗的自定义,独立于逻辑的动画。它具有用于系统/低级内容的全局体系结构层,最重要的是,两个主要模块-逻辑和游戏视图物-使用事件管理器进行通信。 事实是,我真的很想让脚本同时影响与游戏逻辑相关的内容(更改单位参数等)和与游戏视图相关的内容,例如用于战斗的特殊动画/对话可能取决于某些脚本触发器。 (说实话,理想情况下,我希望脚本控制游戏流程,只将核心机制/图形留给逻辑/视图,但是我对此并不陌生,所以我不确定现在是否可以这样做) 我一直在想三个选择: 只是让脚本保留在逻辑中,但让它了解游戏的图形方面。但这会使逻辑/视图划分非常模糊,不是吗? 将脚本编写为一个单独的模块,该模块将使用同一事件管理器与其他模块交换事件。但是,我想这需要非常小心事件同步,并且还要向管理器中添加大量事件类型。(仍然,个人最爱) 首先将脚本编写为模块,这样它就可以直接影响/调用逻辑/视图的功能。这允许固有地更广泛的功能,但要以某种方式破坏整个事件交换方案的代价,并且担心脚本即使在实际上不应该破坏的情况下也可能破坏东西。 因此,我既无法决定其中之一,也无法想出插入脚本模块的更好方法...有任何建议或有用的链接吗? 谢谢! ps感谢您移植问题,不知道有专门针对gamedev的部分

6
您会为C ++游戏项目推荐哪种脚本语言?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 5年前关闭。 这里所说的脚本不仅意味着将配置数据放入脚本中,还意味着对项目的某些部分进行脚本化,例如一些类方法,测试特定的游戏循环等。这不仅是为了加快开发速度,而且还允许玩家看到其中的一些内容。脚本来调整游戏的某些方面。 诸如Lua之类的语言具有诸如luabind之类的包装器,但是当我过去使用它时,它会遇到问题,因为它不支持继承上下文中的方法重新定义。 您对使用或不使用的语言/包装有什么建议?

2
实施MMO任务机制的提示?
您将建议使用哪些工具,模式或最佳实践来实现下面列出的要求中给出的任务机制? 我正在谈论软件体系结构(应该是多么通用)以及对象连接,事件订阅和条件表示的选择。欢迎提及您成功使用的工具/库。 编辑:如果您正在使用脚本,您推荐什么设置? 要求: 简单的2D mmo(rpg) 所有游戏数据(包括任务)都存储在关系数据库中 游戏中的任何事件都可能触发玩家的新任务或推进现有任务 任务可以具有任意数量的条件,玩家可以使用该任务 一个任务可以包含任意数量的具有任意条件的子任务/步骤 任务范围很简单: 与A交谈-杀死5 B-与A交谈-永久增加健康 相当投入: 使用X区域中的物品-转到Y区域-机器人会产生-杀死机器人而不会造成超过10%的伤害-机器人掉落物品-拾取物品-传送门解锁-将物品传送到传送门后面的J-获得金钱和经验-允许再次通过传送门-锁定此玩家的传送门 可能存在关卡实例(玩家可以团队或孤立地完成某些任务,这只会为那些参与者生成关卡位置) 最好使用世界编辑器来管理任务,而无需脚本或编程知识(编辑:不过,通常不提倡脚本) 我假设C ++是实现的语言 我当时在想,如果我可以将事件和条件的任何链条结合起来,我们就可以对更复杂的模型进行建模,从而可能进行更具吸引力的探索。我尝试过使用自己的ECA(事件,条件,动作)引擎进行滚动实验,但这可能有点过分。在不使用任何脚本的情况下对通用条件进行建模特别困难。


3
没有线程的脚本和电影
我一直在努力在游戏引擎中实现脚本。我只有几个要求:应该是直观的,我不想编写自定义语言,解析器和解释器,并且我不想使用线程。(我确定有一个更简单的解决方案;我不需要多个游戏逻辑线程的麻烦。)这是一个示例示例,使用Python(又称伪代码)编写: def dramatic_scene(actors): alice = actors["alice"] bob = actors["bob"] alice.walk_to(bob) if bob.can_see(alice): bob.say("Hello again!") else: alice.say("Excuse me, Bob?") 那段史诗般的讲故事带来了实现问题。我不能立即评估整个方法,因为这walk_to需要花费时间。如果立即返回,爱丽丝将开始走到鲍勃,然后(在同一帧中)打个招呼(或打招呼)。但是,如果walk_to有一个阻塞呼叫在她到达Bob时返回,那么我的游戏就会卡住,因为它阻塞了使Alice走动的执行线程。 我考虑过让每个函数加入一个动作- alice.walk_to(bob)将对象推入队列,无论爱丽丝到达鲍勃,无论他身在何处,该队列都会弹出。这更巧妙地被打破了:if分支立即得到评估,因此鲍勃可能会向爱丽丝致意,即使他的背对着她。 其他引擎/人员如何在不创建线程的情况下处理脚本?我开始在非游戏开发领域中寻找想法,例如jQuery动画链。似乎应该有一些解决此类问题的好的模式。
12 scripting 

7
用于脚本的领域特定语言
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 众所周知,Lua和Python等语言的嵌入式解释器被广泛用于编写游戏逻辑脚本,但是我没有看到有关使用特定于领域的语言编写脚本的人们的大量信息,例如构建一些逻辑脚本“方言”。在游戏其余部分使用的语言之上,使用宏或流畅的编程等。 所以我的问题如下: 您在现实游戏中看到过哪些此类DSL的示例? 遇到什么问题? 您会在其他情况下向其他游戏开发商推荐这种方法吗? 您是否认为随着游戏开发向更易于元编程的语言(例如Boo)发展,这种情况变得越来越普遍?
12 scripting 

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.