游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3093|回复: 3

请问? 有没有哪位前辈可以给我比较全面形象地介绍一

[复制链接]

19

主题

106

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2003-10-10 20:59:00 | 显示全部楼层 |阅读模式
有没有哪位前辈可以给我比较全面形象地介绍一下“脚本”呢?
“脚本”到底是什么东东,或者起什么作用呢?
我只知道javascript可以用在html里,但是到底是什么原理呢?

55,也许我用很菜的词问诸位,但是我的确是想了解一下,呵呵。

无论如何,请诸位不吝赐教哦。呵呵

谢谢了。 [em19]

0

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2003-10-10 23:44:00 | 显示全部楼层

Re:请问? 有没有哪位前辈可以给我比较全面形象地介绍

描述语言。
没有描述语言,所有的描述和扩展将都压在程序员身上,... ...

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2003-10-11 00:33:00 | 显示全部楼层

Re:请问? 有没有哪位前辈可以给我比较全面形象地介绍

首先声明,小弟一不是高手,二不是前辈,本来是轮不到我说话的。不过这几天从这里载了太多好东西了,一直潜水实在是感觉过意不去,所以斗胆写一点东西。以下内容有些来自其他资料,有些是自己的想法,如果有错误还请各位前辈高人不吝赐教,千万不要怪小弟我误人子弟啊^_^

==========================================
     所谓脚本(Script)语言的概念源于UNIX系统,在UNIX系统中,将主要以行命令组成的命令集称为Shell脚本程序(Shell就是UNIX的命令行界面)。Shell脚本程序具有一定的控制结构,可以带参数,由

系统解释执行。除了Unix Shell Script外,在UNIX环境下,具有强大字符串处理能力的Perl语言也是脚本语言的典型代表。

     大家可能都不是很熟悉UNIX系统,不过接触电脑比较早的一些对DOS仍有印象的朋友,应该能记得在DOS6.0版本推出的时候,在CONFIG.SYS以及Autoexec.BAT文件中可以采用一些特殊语法以达到不同的启动

方式(比如加载EMS或XMS等)。而且DOS里面的.Bat文件也都是可以带参数以及使用一些控制结构的,这也可以算是一种脚本语言吧。

     像JavaScript,VBScript这类脚本语言是用于Web页面及程序设计的脚本语言,它们通常是嵌入式(嵌入到HTML文本中)的、具有解释执行的特征。根据脚本程序被解释执行的地点的不同,可将它们分为客户端脚本和服务器端脚本,前者由浏览器负责执行,主要用来实现一些网页特效以及与用户交互的功能,后者由Web服务器负责执行,用于服务器端编程,通常用于对客户端传来的数据进行处理并动态生成网页传回客户端,还有连接数据库的功能,像现在我们用的这个论坛就用到了ASP服务端程序(ASP默认采用VBScript语法)。JavaScript,VBScript既可作为客户端脚本语言,又可作为服务器端脚本语言,而Perl,PHP等则通常是服务器端脚本语言。

     综上我们可以看出脚本语言的一个大概特征,就是多采用解释执行方式,一般来说语法比较简单,具有易用性,灵活性等优点,但由于解释执行的特点,其速度和效率远比编译执行的C,C++等语言来的差,多数情况下是不会用来设计应用程序的。不过也不是绝对,比如最近风行的P2P软件Bit Torrent(BT)就是用一种脚本语言Python写成的。Python支持许多新的技术和特性,不过速度就差了一点。

     
     以上讲的是专门的脚本语言,不过在这个论坛里讲这些似乎是有点跑题了。因为游戏设计中一般讲的脚本(Script)跟上文中提到的那些脚本语言比起来,当然也有一些相通的地方,不过基本上是两回事了。游戏中用到的脚本(Script)似乎更接近这个英文单词本来的意思,即“剧本”。也就是说,主要是用来描述游戏中所会发生的各种事件等等要素的。每个游戏都可能采用自己的数据格式,来构成自己的脚本。我们知道,游戏分为许多种类型,而多数类型的游戏都需要有脚本来描述游戏中的各种数据。

     比如说国人最喜欢的角色扮演游戏(RPG)。其中的情节,主人公去哪里会发生什么事件,所有的对话,甚至地图的数据,什么地方站着什么人(NPC),这些NPC的活动等等,都是写在脚本里的。再比如说日本人最擅长做的文字AVG(比如《秋之回忆》,《Air》等),这类游戏里的种种对话,每个对话对应那个音频文件(即播放哪个MM的哪句语音),种种事件的触发,以及决定你最后能追到哪位美女的判定条件等等,都是写在脚本里的。其他类型的游戏,也有许多要用到脚本的地方。

     也许你要问,为什么要用脚本来存储这些数据呢?因为如果不用脚本的话,总不能直接写死在程序里,那样的话,后期要想修改的话就不是一般的麻烦了,而且也很容易发生错误。采用脚本的话,就可以很容易地做出地图编辑器,情节编辑器等等工具,以便于游戏的开发。

     既然使用了脚本,游戏中就得有解释这些脚本的模块,以支持游戏的正常运行。这类模块读取脚本文件,分析其结构,并对其进行解释,将得到的数据和控制命令传给游戏主程序,这样我们才能看到李逍遥在屏幕上走来走去,偷看赵灵儿洗澡,被赵灵儿用雷魔法惩罚后吓得跪地求饶这样的经典情节。至于分析和解释脚本的具体方法,就涉及到字符串处理,分段等问题,以及编译原理里面的一些比较麻烦的细节,我也没学过的,就不乱讲了吧。

     那些有对话的游戏自然不愿意让你直接通过脚本文件看到对话啦,所以一般都对脚本文件进行了加密,压缩,打包等处理。在游戏运行的时候再解开。顺便说一句,现在一些民间小组在对一些日文游戏进行汉化的时候,破解加密脚本文件的格式是其必须要做的第一步,在破解以后,对脚本文件中的对话文本进行替换,将日文改成翻译出的中文,必要时还得hack主程序以使其支持中文。再压缩打包成主程序支持的格式,这样汉化包就做出来了。

     零零碎碎的写了这么多,这些基本上是在下对脚本的所有认识了,不知对楼主有没有帮助。小弟才疏学浅,对制作游戏只是心存向往,却根本未曾入门,各位高人如果觉得小弟什么地方说错了,或是写得非常荒谬的地方的话,还请千万不吝赐教,免得被在下误人子弟,也好让在下多学一些东西。多谢多谢!

90

主题

797

帖子

833

积分

高级会员

论坛版主

Rank: 4

积分
833
QQ
发表于 2003-10-11 11:30:00 | 显示全部楼层

Re:请问? 有没有哪位前辈可以给我比较全面形象地介绍

最近我在研究脚本引擎,建议上ftp下载game scripting mastery book
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-22 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表