通用游戏(RTS)脚本编写基础知识

| 我已经阅读了一些教程和链接,了解如何将脚本集成到游戏中,但是其中大多数对于我来说还不够早。我试图围绕有效脚本游戏的基本结构进行研究。以下是基本知识: 我正在努力用C ++启动一个基本的2D RTS游戏。游戏和图形的机制非常标准/简单,与标准RTS相比,逻辑和数据将极其复杂。显然,我有很多计划要做–实际上,重点是要学习C ++,脚本,游戏编程基础知识,而不是真正完成我的项目。 我试图弄清楚应该通过脚本处理项目的哪些元素,以及应该将其包含在我的核心“游戏引擎”中。 例如,功能强大的“游戏循环”-我是否将C ++作为引擎的一部分进行编程,还是将我的“引擎”完全用作显示图形(拼贴,字符等)的工具。 ),处理大量数据以及执行类似的任务-这些类被“插入”游戏循环中,该脚本具有脚本功能吗? 我想将C#用作脚本语言,据我了解,它提供了不错的速度,同时仍然允许我喜欢的VS中进行开发。但实际上,我更关心应该如何设置所有这些内容,更多的是从伪代码级别而不是实际的代码。到此为止,我可以使用大量资源,我只是在寻找有关如何构建整体的建议。 任何教程,资源,建议将不胜感激!谢谢!     
已邀请:
icnivad推荐的“通过示例编程游戏AI”是一项出色的建议,其中包含许多实用信息。 就实际引擎而言,Unity可以完成这项工作,并允许您使用C#编写脚本,但是对于像您这样的人来说,想要学习基本知识的人,它可能藏起来太多,为您做太多事情。 Irrlicht是一个非常可靠的C ++引擎,并附带许多教程,可帮助您入门。它也具有非常清晰的界面和活跃的社区。关于您要用C ++编写的内容和要编写脚本的内容,我建议认真研究一下实际需要编写的脚本-如果您根本不需要编写任何脚本。您可以用C ++编写整个程序,它具有易于调试的优点。说到这,如果您仍然不熟悉C ++和游戏开发人员,则可能一开始只想使用C ++(如果不是,请忽略此内容)。 \“可调试性\”是您应注意的事情之一,因为通常很难同时调试C ++和脚本代码(当您来回穿梭数据和指令时)。就是说,一旦您的框架启动并运行,实现新功能和进行调整就很容易了。 您可能想看看Lua作为一种脚本语言,因为它在游戏脚本中非常流行。 Luabind是一种流行的C ++和Lua绑定库,非常易于使用。 SWIG也可用(最近的简短教程在GameDev.net的博客中弹出)。 无论选择哪种脚本语言(如果有),请确保首先使用它们来处理一些单独的玩具程序。习惯于该语言并随便摆弄它。然后尝试使用最少的C ++ <->脚本互操作的小型程序。一次只执行几个步骤,这样您就可以发现错误并记下哪些有效,哪些无效。一旦您准备好开始将脚本集成到游戏中,请一次只执行一个步骤并对其进行测试,直到继续进行。说到这,请确保您还计划先如何将脚本连接到纸上游戏的方式和位置,这会使事情变得容易得多。 通常,您需要将所有繁重的工作都放在C ++的肩膀上(例如游戏循环,图形,寻路等)。我发现脚本通常最适合诸如配置文件,AI字符的行为代码,UI和事件处理之类的事情。基本上,如果您要进行很多调整/更改,或者希望其他人能够更改某些内容,则可以选择编写脚本(无需重新编译就可以了!)。只需记住,这很大程度上取决于您的特定游戏-如果编写脚本的过程太慢(使用分析器进行检查),过于繁琐等,请不要害怕用C ++进行操作并从脚本中调用它或者只是完全在C ++中完成。 希望有帮助!     
《 Programming Game AI By Example》这本书非常棒,它使用脚本(例如LUA)触及了您在游戏循环中寻找的内容,以及大量与您有关的示例。 顺便说一下,潜在相关的是Unity3D游戏引擎,它使您可以使用C#编写脚本。还有Garage Games引擎,包括可以帮助您创建RTS类型游戏的游戏构建器套件,我相信您也可以使用C#编写Torque。     

要回复问题请先登录注册