下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

游戏脚本的设计与开发目录,前言自序

作者:课课家教育     来源: http://www.kokojia.com点击数:983发布时间: 2019-05-06 14:36:29

标签: 游戏的设计设计开发设计教程教程内容

  在日常的工作中,我偶尔能遇到这样的问题:“为何游戏脚本在现在的游戏开发中变得不可或缺?”。那么这周我就写篇文章从游戏脚本聊起,分析一下游戏脚本因何出现,而mono又能提供怎样的脚本基础。最后会通过模拟Unity3D游戏引擎中的脚本功能,将Mono运行时嵌入到一个非托管(C/C++)程序中,实现脚本语言和“引擎”之间的分离

  从现在开始,我将通过一系列的文章,来讲解一下游戏脚本的设计和开发,这是一个比较大的话题,并不是一两篇就能讲完的,所以这可能是一个大坑,如果你不小心掉了进来,那就跟着我一点点的来了解一下吧。

  一,什么是游戏脚本

  简单说,游戏脚本就是依据一定的格式编写的可执行文件,游戏可以通过脚本中自定义的语句来执行相应的逻辑。

  举个例子,舞蹈演员随着音乐翩翩起舞,其实音乐在这里就担当了脚本的角色,音乐里记录了每一个舞蹈动作,舞蹈演员根据自己的专业知识,将这些音乐转换为优美的舞姿。

  游戏也一样,游戏脚本里记录了游戏的控制语句,游戏引擎将这些控制语句进行解析,转换为生动的游戏画面。

  二,为什么要将游戏脚本化

  游戏脚本,可以令我们的游戏动态化,比如当我们开发了一款rpg游戏,里面的剧情,事件以及地图等,我们如果将这些全部写进程序里,当然是可以的,但是一旦出现问题,哪怕几个错别字,我们需要先将这几个错别字改正,并且将整个程序重新编译发布一遍,这个过程是相当令人反感的,因为如果游戏的程序跟着游戏的内容不断进行修改的话,那只会使你的程序越来越复杂。但是如果我们将这些可重复的数据,都定义到游戏程序之外的文件里面,当游戏引擎开发完毕,我们的游戏通过读取这些外部文件,来执行相应的剧情和事件,那么,像上述当我们的游戏出现了问题,我们只需要改动这些外部文件就可以了,并不需要重新编译整个程序,这样便使得我们的游戏开发,变得便利简洁。(熟悉我博客的朋友们是不是看着这段话眼熟?我直接拷贝了《HTML5游戏开发-零基础开发RPG游戏-开源讲座》系列文章中的解释)

  游戏脚本化的另一个好处,就是将游戏引擎和游戏内容分离。游戏的脚本语言,最大的有点就是简单易懂,如果再为这个脚本语言提供了编辑器的话,就算是不会编程的人也能很容易上手使用。

  三,游戏脚本能够实现哪些功能

  一个优秀的游戏脚本,通常能控制游戏中的一切。游戏中所有可变的数据,都应该通过脚本来控制,例如RPG游戏中的剧情任务,人物对话,不同角色的成长,道具的属性,甚至游戏中的按钮等等。

  四,我要设计一款什么样的游戏脚本

  既然是自定义脚本,你可以任意绝对脚本的格式,比如我曾看到过下面一种脚本。

  [ruby]viewplaincopy在CODE上查看代码片派生到我的代码片

  @@message你好,欢迎来到脚本测试

  @@drawgraph50100human.png

  上面的脚本第一行是一个打字机效果的对话内容的显示,第二行是在坐标50,100的位置上显示了一张图片,脚本中利用空格将每一行的脚本语句进行分割,然后通过分割后的第一个字符串作为命令的种类,不同的命令再进行不同的解析,最后通过画面显示出来。

  我在开发flash游戏引擎的时候,设计了一款脚本引擎,叫做L#,并成功使用这个脚本开发了《三国记》系列游戏,《三国记-乱世群雄》和《三国记-经典战役版》。下面是游戏中的两个画面

  L#除了预计提供的RPG,SLG两大功能外,开发一些小应用也是很方便的,例如在L#中显示一行文字只需要下面一行脚本

  [ruby]viewplaincopy在CODE上查看代码片派生到我的代码片

  游戏的设计_设计开发_设计教程_课课家教育

  为了提高flash端引擎的效率,最近打算使用Starling将flash端的L#脚本进行优化重构,顺便打算在HTML5中实现一下L#脚本的开发。于是接下来我会把这一过程中的HTML5部分记录下来,来说明一下如何具体来开发一款游戏脚本,大家可以从中了解到如何开发一款大型的SLG游戏和RPG游戏。

  五,准备工作

  1,lufylegend.js引擎下载

  我在下面的开发过程是建立在HTML5游戏引擎lufylegend.js的基础上的,当然你用其他语言,如C,C#,java等也是一样的,只要了解了原理,实现过程都不是问题。

  下面是lufylegend.js引擎的官方网址

  http://lufylegend.com/lufylegend

  2,一个本地的服务器

  因为涉及到脚本文件的读取,所以如果你也是跟着我用HTML5来实现这一过程的话,为了实现ajax读取文件,你需要在自己的电脑上安装一个本地服务器。我推荐你安装xmapp,这个工具非常方便,安装这个工具很简单,你可以百度一下,或者到我的这个帖子里,下载《HTML5Canvas游戏开发实战》一书中的试读章节,里面第一章里面有xmapp的安装介绍。

  编写脚本时请注意,脚本只干属于自己最重要的事情,就跟代码中的函数一样,只干最重要的事情。切记和该条脚本无关的事情不要去管,不要在脚本中做过多的相互连带工作,让所有连带工作的话都放在全局单例脚本中来做。

  

赞(16)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程