游戏脚本的设计与开发
文章平均质量分 81
简单说,游戏脚本就是依据一定的格式编写的可执行文件,游戏可以通过脚本中自定义的语句来执行相应的逻辑。逐步说明一下如何具体开发一款游戏脚本,大家可以从中了解到如何开发一款大型的SLG游戏和RPG游戏。
lufy
从事web开发和游戏开发多年,精通html5和flash等技术。html5开源游戏引擎lufylegend.js的开发者,著有HTML5 Canvas游戏开发实战一书,利用html5和flash等技术独立开发了大型网页游戏アイドルバトルflash游戏ポイガチャ多平台游戏三国记系列,以及数十款手机小游戏,游戏开发经验十分丰富。
展开
-
《游戏脚本的设计与开发》-(RPG部分)3.8 通过脚本来自由控制游戏(一)
一个RPG游戏中会触发各种各样的剧情,让某个人物的动作改变,或者让某个人移动到另一处,或者让某个人物从战场上消失,或者会播放一段动画,或者会切换游戏场景,等等吧,这些都要通过脚本来动态的控制。我在序章中就已经说了,一个优秀的游戏脚本,通常能控制游戏中的一切。本次先来实现一下几个游戏指令,以后会再进行扩展。・人物角色按照绝对坐标进行移动・人物角色以自己为参照物,按照相对坐标进行移动・人物角色以指定人物为参照物,按照相对坐标进行移动・人物方向和动作的改变(等待动作结束)・人物方向和动作的改变(不等待原创 2014-09-02 21:31:01 · 18324 阅读 · 10 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.7 战斗系统之自动战斗(一)
所谓自动战斗系统就是战斗从开始到结束无需任何操作,其实自动战斗的胜负结果在战斗开始的时候已经决定了,战斗的画面只是还用来显示或者说回放这一战斗的过程,这种战斗方式开发成本较低,而且因为不用长时间的操作,很适合上班族们玩,所以这种战斗方式被广泛应用于页游中,比如《神仙道》,比如《三十六计》,再比如《修仙三国》。对于单机游戏来说,这种方式是不太可取的,但是我这个脚本最终也并不一定用来做单机,而且有朋友急着要一个战斗系统,我就先在这里简单的实现一下这种战斗,而传统的可操作的RPG回合制战斗方式我后面会花大功夫来讲原创 2014-04-15 10:56:02 · 16858 阅读 · 21 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.6 队员列表和人物属性
队员列表的作用就是保存我方能够参战的人员的信息,简单来说一个数组就可以完成。但是我们需要考虑,这个数组里需要保存哪些信息,对于早期简单的RPG游戏来说,比如《勇者斗恶龙》,《吞食天地》等,每个人的相应等级的能力是固定的,所以对于这些游戏来说,只需要保存人物的ID和等级就足够了。但是现在游戏都讲究多样化,如果还这样做,恐怕就该被吐槽了。当然,不怕被拍砖的话,你可以说,我们是资深的剧情派,只要剧情好,其他的都是浮云。我的脑袋已经是扁的了,不能再被拍了,所以我希望这个功能可以相对的容易扩展一些,能够满足我后面的一原创 2014-03-31 13:08:39 · 14767 阅读 · 16 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.5 游戏背包和任务系统
背包系统在游戏中是必不可少的,在游戏中,所有获得的物品都会储存在背包里面。背包的种类,我一般将它分成两大类,一种是类似于《吞食天地》的“个人背包”,在游戏中每个人物都有一个背包,每个人的背包都互不影响,并且每个人只能使用自己背包中的物品。另一种是“集体背包”,游戏中所有己方的人物都共用一个背包,大多数游戏都采用这种形势。下面我们就来实现一下“集体背包”。原创 2014-03-24 11:29:08 · 39425 阅读 · 29 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.4 地图跳转
地图跳转,顾名思义,就是从一张地图跳转到另一张地图(这不是废话嘛),体现在游戏程序中,就是当人物走到了某一个坐标区域,或者在游戏中触发了某事件之后,游戏程序将当前地图和地图上的所有东西清除,简单说就是清空画面,然后再加载另一张地图并显示。我们把游戏中事件的触发归类到任务系统中,本次来实现人物移动到某个坐标区域后的地图跳转,要实现这一过程,大约是下面的四个步骤:1,地图跳转的坐标区域的设置。2,人物移动时,与地图上所设置的坐标区域的判定。3,画面清空。4,新地图加载。原创 2014-03-16 12:40:33 · 8465 阅读 · 29 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.3 加入多个人物以及对话实现
上一节中 给地图加入了遮挡功能,尝试着加入了一个可以控制的测试人物,并且实现了人物行走时的各个动作变换的控制。本节中接下来要做的事情就是把之前的工作全部脚本化,并且使用游戏脚本加入多个人物角色。另外,一个RPG游戏怎么能够没有对话呢,本节中通过点击地图上的人物,来实现游戏中的对话功能。文章中贴出的只是部分主要的代码,你在看的时候,有些代码可能会不理解,这个不要紧,最后我会放出完整源码的下载。原创 2014-01-12 16:36:59 · 9737 阅读 · 9 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.2 地图遮挡和人物行走
上一节中已经介绍了RPG游戏中地图怎么实现,在RPG游戏的地图中通常有各种遮挡,比如人物站在房屋的后面的时候,房子应该遮挡住人物,这就涉及到各种建筑物和人物的排序显示。另外,上一节中我为了测试地图,已经添加了一个简单的人物类Character,这个类是我从其他游戏中拷贝过来的,本次除了介绍地图上的遮挡之外,也会详细介绍一下一个人物类的具体实现方法,包括它的动作改变,方向变换以及行走。原创 2014-01-02 05:54:02 · 21724 阅读 · 16 评论 -
《游戏脚本的设计与开发》-(RPG部分)3.1 RPG地图到底怎么做?
我之前也写过一个短篇系列《零基础开发RPG游戏开源讲座》,介绍的也比较简单,这次我会更深入也更具体的介绍一下RPG游戏的开发过程。话说好久没有更新博客了,其实这段时间主要是工作忙,没时间。那又是什么刺激了我呢,为什么又有时间了呢?原因有两个,第一个,前两天看到一款战棋网游《三国志を抱く》,这款游戏和我在家偷摸儿设想的游戏竟然出奇的相同,原来我一直想要做的事儿,在我还在抱怨没有时间的时候,已经被其他人做了,这着实让人感慨,也极其让人不爽。这也让我觉得,我再不做点儿什么的话,自己可能会遇到更不爽的事儿。有原创 2013-12-19 16:30:11 · 18343 阅读 · 10 评论 -
《游戏脚本的设计与开发》-(战棋部分)2.4 物理攻击
终于到了攻击部分了,战棋游戏中的攻击,主要分为物理攻击和法术攻击,本章就先从物理攻击讲起。物理攻击又分为普通攻击,连击(双击),以及致命攻击,再复杂一点的还有其他特殊攻击,比如我的《三国记-乱世群雄》游戏里面,张飞的三次攻击,关羽的多人攻击等特殊的技能攻击。我依然从简单开始,先来看看如何来实现一下普通攻击,攻击的过程是,1,A对B进行攻击。2,B受伤或者档格。3,如果A在B的攻击范围之内,则B会进行一次反击。4,A受伤或者档格。原创 2013-08-12 10:32:59 · 14127 阅读 · 24 评论 -
《游戏脚本的设计与开发》-(战棋部分)2.3 战场上的寻路和移动
上次已经让我军,友军和敌军都出现在了战场上,本章来说说如何让一个部队在战场上进行移动。在战棋游戏中,我军回合行动的时候,点击我军的某一个部队,会出现选择列表,选择【部队移动】一项后,会出现该部队可能移动的范围,然后点击范围内的某一位置,则部队就会向着这个位置移动。在这一过程中涉及到两个算法,一个是部队移动范围的搜索,另一个就是部队移动时的寻路算法。复杂指数来说,寻路算法相对复杂一些,之前研究AS3的时候,曾经写过一篇A*寻路的分析文章<a href="http://blog.csdn.net/lufy_le原创 2013-07-22 06:56:01 · 18764 阅读 · 4 评论 -
《游戏脚本的设计与开发》-(战棋部分)2.1 快速显示一张战场地图
今天开始脚本设计的第二部分,战棋游戏的开发。战棋游戏中我尤其喜爱光荣的英杰传和曹操传,我的多平台游戏三国记,也是以三国志曹操传为模板而开发的。本次也不例外,就从曹操传的移植为基础来开发,再进行扩展,从而实现自己的战棋游戏的开发。熟悉曹操传的朋友们都知道,曹操传分为R剧情部分和S战场部分,R剧情部分是以讲故事的形式展开的,好的游戏离不开好的剧情,所以我认为R剧情在游戏中是非常重要的。当然,也有很多玩原创 2013-07-01 07:03:47 · 17171 阅读 · 11 评论 -
《游戏脚本的设计与开发》-第一章总结 文字脚本的功能扩展和一个游戏测试
脚本系列文章写了好几篇了,大家可能都不清楚这些脚本有什么用,游戏中如何能应用到这些东西。当然,目前所介绍的内容还只是个简单的开头,说到做游戏还远远不够。不过,本次就使用前几章所介绍的内容,先来尝试一下如何使用脚本来制作一款简单的游戏(其实也算不上游戏了)。打字机效果对话在游戏中是很常见的,在开始本章的内容之前,先来扩展一下ScriptText类,加入一下三个标签,来控制打字机效果显示文字。/*游原创 2013-06-24 12:14:21 · 10092 阅读 · 16 评论 -
《游戏脚本的设计与开发》-1.6 按钮,脚本的暂停和标签
按钮按钮在任何程序中都是必不可少的,本次先来看看如何脚本来实现按钮的各种功能。文章中要实现的几个脚本如下。/*游戏脚本的设计与开发 第六章*///添加按钮Button.add(layer01,button01,null,50,50,ok_button_up,ok_button_over,null);function function_test01(); //移除按钮 Button.r原创 2013-06-17 11:01:10 · 6225 阅读 · 4 评论 -
《游戏脚本的设计与开发》-1.5 显示层,绘图
我不止一次在文章中说过游戏分层的重要性,处理好游戏显示层的划分和这些显示层的顺序,就可以完美控制游戏中各元素的显示和遮挡,本章来使用脚本来实现游戏显示层的划分,并且在显示层上绘制各种图形。文章中要实现的几个脚本如下。/*游戏脚本的设计与开发 第五章*///添加显示层Layer.add(-,layer01,100,100);//清空显示层Layer.clear(layer01);//移原创 2013-06-10 06:53:55 · 6414 阅读 · 2 评论 -
《游戏脚本的设计与开发》-1.4 图片的读取显示
本章来实现一下如何用脚本来读取一张图片,将其显示到画面中,并且对图片进行一些缓动变换等操作。本章预备实现一下几个脚本/*游戏脚本的设计与开发 第四章*///读取图片数据Load.img(backdata,lufy_legend.jpg);显示图片Img.add(-,backimg01,backdata,0,0,100,100,1);对图片进行缓动操作Img.transition(b原创 2013-06-04 10:03:06 · 7424 阅读 · 2 评论 -
《游戏脚本的设计与开发》-1.3 基础语法(注释,变量,函数,条件语句)
本章来解析一些无论在任何语言中都必不可少的脚本语法,分别是注释,变量,函数,条件语句,脚本格式如下。/*游戏脚本的设计与开发 第三章*///设定变量num的值为5Var.set(num,5);//条件语句脚本测试if(@num>10); Var.set(name,lufy);elseif(@num>4); if(@num==5); Var.set(name,你好); els原创 2013-05-27 06:17:02 · 10690 阅读 · 8 评论 -
《游戏脚本的设计与开发》-1.2 文字显示[Hello world]
上一章介绍了如何读取和解析一个脚本,其实,对于一个游戏来说,文字的显示和操作是最基本的组成元素之一,本章进入正题,就先从文字显示开始讲解一下。显示一个文字,就是将文字绘制到游戏界面上,而在lufylegend.js引擎中,要显示一个文本,只需要将LTextField对象添加到LSprite对象之上。首先,为了便于操作游戏中的所有对象,我们来新建一个“仓库”LScriptArray,用于保存游戏中各原创 2013-05-20 06:08:22 · 9243 阅读 · 11 评论 -
《游戏脚本的设计与开发》-1.1 读取和解析一个脚本文件
上一篇《游戏脚本的设计与开发》-序中我介绍了游戏脚本的基本概念和准备工作,本篇来说说具体如何解析一个脚本所谓解析脚本,就是按照自己定义的语法,将每一个脚本命令还原成不同的代码逻辑进行执行,比如,我规定绘制一个矩形的脚本draw rect和一个绘制圆的脚本draw arc那么,当我读取到了字符串“draw rect”的时候,就在屏幕上画一个矩形,读取到了字符串“draw arc”的时候,就在屏幕上画原创 2013-05-13 11:32:29 · 20281 阅读 · 23 评论 -
《游戏脚本的设计与开发》-目录&序
简单说,游戏脚本就是依据一定的格式编写的可执行文件,游戏可以通过脚本中自定义的语句来执行相应的逻辑。举个例子,舞蹈演员随着音乐翩翩起舞,其实音乐在这里就担当了脚本的角色,音乐里记录了每一个舞蹈动作,舞蹈演员根据自己的专业知识,将这些音乐转换为优美的舞姿。游戏也一样,游戏脚本里记录了游戏的控制语句,游戏引擎将这些控制语句进行解析,转换为生动的游戏画面。原创 2013-05-06 09:01:03 · 69880 阅读 · 44 评论