赖勇浩(恋花蝶)的博客

坐观天下风云涌,笑拥美人言语懒。

赖勇浩ID:lanphaday
301883次访问,排名171好友122人,关注者130
网络游戏程序员,略懂python、C++;不太懂网络编程、数据库编程;不懂C语言、3D。
lanphaday的文章
原创 58 篇
翻译 14 篇
转载 12 篇
评论 564 篇
赖勇浩的公告
Google
最近评论
caoi:我也想下载大会的PPT,但是不知道在哪里。
caoi:我也想下载大会的PPT,但是不知道在哪里。
ark:囧.....没东西看.为了一个项目花了2天啃DIP.....第一个例子看下来的确需要毅力.不过倒是勾起了继续学Python的兴趣.本来准备用完就扔的................
lanphaday:试验一下是不是无法评论。
Joyfish:DIP是我看完 Python Tutorial 后的第二个Python教程,其实感觉还不错,可能和在这之前我有多年的C++ & Java基础有关,支持博主
文章分类
收藏
    相册
    编程语言
    TIOBE 流行度
    性能排名
    我创建的开源项目
    VisualPyTune
    我的其它博客
    程序员的小厨房
    过去的博客
    非技术博客
    友情链接
    CP(图形学)
    DarkSpy
    一刀
    丫头
    沈公,仙人也!
    超哥之奋起版
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 游戏中的脚本语言收藏

    新一篇: 《时间管理》培训笔记 | 旧一篇: C与C++之争是两小儿辩日?

    本文最初发表于《游戏创造》(http://www.chinagcn.com)2007年8月刊。版权所有,侵权必究。如蒙转载,必须保留本声明,和作者署名;不得用于商业用途,必须保证全文完整。
    网络版首次发表于恋花蝶的博客(http://blog.csdn.net/lanphaday),与杂志版本稍有不同,略作删改。
    游戏中的脚本语言
    网易广州       赖勇浩
    http://blog.csdn.net/lanphaday
    游戏业中的脚本
           脚本不是游戏业的新技术,但脚本为业外的人所知悉,却应归功于《魔兽世界》(以下简称Wow)在世界范围的流行。通过Wow伟大的自定义界面系统,Lua这一脚本语言一举成名天下知。
           虽然Lua的出名有点横空出世的感觉,但游戏业内早就使用脚本来开发游戏了。即便是在国内,我们所熟悉的网游大多数是用脚本开发的。此前已有人士透露,网游的长青树《梦幻西游》和《大话西游2》就大量应用了脚本技术;特别是《大话西游2》,比Wow早几年做了基于Lua脚本的游戏开发。可以说,国内与国外在脚本技术上并不存在差距,大家都是站在同一起跑线上的,这为国内游戏行业赶超国际水平提供了强大的保障。
           回顾过去,我们发现单机版游戏时代很少听到脚本这个词。那么,为什么在网游时代脚本成了业界宠儿?原因是多方面的。比如在单机时代,无论游戏机还是PC的性能都非常低下,需要具有更高执行效率的编译型语言来“压榨”机器性能。但硬件性能的提升并不是脚本流行开来的决定性因素,真正的原因是市场的需要。
    网游时代的市场需求快速变化、竞争激烈,如果延用单机时代一年半载才出一个新版本的开发方式,那必然会被市场淘汰。正是这种快速变幻的市场需要和低效的开发工具之间的矛盾,引发了开发工具的革命——脚本语言风生水起。脚本的兴起因为游戏业中传统的编译型语言(asm/C/C++)的性能优势在硬件性能大幅攀升的今天已经不复存在。在网游时代,游戏业中的主要矛盾已经由性能低下的硬件与游戏执行效率之间的矛盾转变为快速变化的市场需要与低效的开发工具之间的矛盾,脚本在网游时代的辉煌是历史的必然。
           除了市场和硬件因素外,还有一点不能忽略。那就是C/C++进行游戏开发的高成本性和高项目风险。随着java/.net逐年流行,大学生中学习C/C++编程语言的人越来越少。物以希为贵,人亦如是。C/C++程序员新鲜血液补给少,而网游开始流行,巨大的网游市场需求造成大量的人才空缺,这时也就带来了C/C++的高成本。即便是资本雄厚的公司,可以雇佣大量C/C++程序员开发游戏,也不能无视C/C++高级特性和高度的灵活性带来的高项目风险。C/C++是易学难精的编程语言,应用在大型项目的时候极容易因为程序员的水平参差不齐而引起沟通不畅,还有滥用的高级特性也容易引入大量的bug。游戏公司希望找到一个方案以解决高成本、高风险的问题——这个方案就是在游戏中使用脚本。
    脚本的现状
           脚本解决了C/C++无法解决的开发效率难题,而且降低了成本和风险。脚本在游戏业中就此蓬勃地发展了起来,现在脚本技术已经成为游戏业中不可或缺的一环。横看当前脚本技术,一片大好形势就如同八九点钟的太阳。不仅语言百家争鸣,而且书籍也层出不穷;不仅在游戏业开花结果,在web等其它应用也大放异彩。
           首先,我们来看看现在比较流行的脚本: Python、Lua、ruby和Erlang。Python和Lua是网络游戏开发的中坚力量;ruby凭借ruby on rails的web开发框架的强劲力量,不可小瞧它在游戏业的前途;erlang在高并发性上的原生优势吸引了无数追求高性能的网游服务器的开发人员的目光。
           然后让我们来看看书籍和资料方面。大家都知道,文档对语言的普及起到正向催化剂的作用,甚至可以看作是语言的有机组成部分,必不可少。Python经过基金会的多年经营和在NASA、Google得到重用的原因,书籍方面比较丰富;ruby随着RoR的流行水涨船高,这两年行情看好,书籍也出版得越来越多了;反观Lua,虽然流行度一直走高,但出来的书却没有几本,跟他苦涩的接口设计和缺乏针对大型应用的原生支持不无关系;Erlang是典型的少众语言,但随着多核时代的来临和高并发网络应用的需求,有着光明的发展前景,现在《Programming Erlang》等书已经在策划出版了。
           最后把焦点重新聚集到游戏开发行业中来,可以发现脚本言语已经在游戏业中开发结果,硕果累累。除了前文提到的《魔兽世界》和网易经典“西游系列”都使用了脚本外,现在大多数流行程序都使用脚本,如腾讯的《QQgame》和搜狐的《天龙八部》等。现在的游戏引擎也都提供了脚本接口,无论是商业的Unreal引擎还是开源的OGRE,无一例外。
    脚本的优势
           脚本在游戏业中找到自己的一席之地,是因为网游市场需要一个快速开发方案来避免C/C++开发带来的项目高成本和高风险。那么,具体而言脚本相对于C/C++这类编译型语言有什么优势呢?
    一、易于学习、代码可维护性强。通常脚本的语法都非常简单,也没有太多高阶的特性,学习的门槛较C/C++低得多。如Python号称只需要花一个下午即可学会。这使得游戏开发公司可以招聘完全没有脚本编程经验的新手,通过低成本的培训,迅速走上工作岗位。除易于学习外,脚本代码也有更好的可维护性(尽管写出没有人看得懂的Lua代码也非难事)。因为脚本不会有很多高阶特性(如C++里的模板元编程就是高阶特性),所以脚本程序员有更多精力关注架构、模式、重用和测试,从而提高了代码的质量;相应地,没有那么多让人困惑的高阶特性,也使得代码“简洁”不少。
    二、降低开发成本。如第一点所言,脚本易于学习,使得游戏开发公司可以大量应用新手,是降低成本的有效手段。那么如何来保证新手写的代码的质量呢?这需要我们辩证地看问题。从经验上看新手写的程序无论用什么言语,bug肯定不少。但一个C新手编写的代码和Python新手编写的相同功能的代码相比,C版本应该会有更多的bug。由于C程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除bug方面脚本也有先天的优势,这使得脚本在低成本的同时能够更好地保证代码质量。
    三、形成人才壁垒。软件开发行业是一个动荡的行业,无数的程序员都在跳槽和谋划跳槽的状态中过日子。使用脚本开发,形成人才壁垒是游戏业减少人才流动的有效手段。因为脚本现在除了在游戏业中大红大紫外,并没有在其它行业形成杀手级应用(虽然在web开发方面也有燎原之势,但终究不似在游戏业中的地位高尚)。这就让游戏程序员很少会考虑非游戏业的职位,而其它行业的程序员却可能会因为脚本的易学习性转投游戏业。脚本除了能有效形成行业间的人才壁垒外,也能有效地形成企业间的人才壁垒。因为现有的脚本种类繁多,不同公司往往有不同的选择,甚至有些公司使用自己开发的脚本语言。程序员从公司A跳槽到公司B可能就要学习使用另一种脚本,这提高了跳槽的成本,从而使人才流动减少。
    脚本的发展趋势
           依照目前的趋势来看,脚本语言也一定会更加普及开来,而且会渗透到其它行业中去。随着网游从业人员的增长,脚本程序员也一直相应地增长着,而且Web2.0热潮引起的网络需求,也促生了一批批新的脚本程序员。网游市场就像一个正在滚动的雪球,带动着脚本的普及。
           随着脚本在游戏业中越来越流行,市场就会需要更高的生产效率。脚本虽然一定程度上缓解了市场与生产工具之间的矛盾,但仍然不够彻底。由于市场竞争趋于激烈,而网游在很多功能实现都相差无几:如网络、数据库、图形甚至部分逻辑。这必然会催生网游生产组装化——大量的中间件相互组合形成新的网游。从现在来看,Bigworld、PhysX和Unreal等都是比较流行的网游中间件。脚本语言是粘合各个中间件的良好胶水语言,所以随着网游生产组装化,脚本有良好的发展空间。
           那么,当脚本发展到如日中天的时候,会取代C/C++这些编译型语言吗?我认为不会。脚本语言和编译型语言在生产效率和执行效率上各擅胜场,网络游戏既需要能快速应变的脚本,也需要能快速执行以提供更绚丽游戏效果的编译型语言,在未来,它们之间会保持长久的和谐互补关系,相辅相成。
    结语
    综上所述,网游时代是上帝赐予脚本语言的绝好时机,脚本语言很快将迎来自己光芒四射的世代。脚本语言拥有编译型语言无可比拟的生产效率优势,它们将并肩奋战在游戏最前线。
     
    作者简介:
    赖勇浩,现供职于网易广州。现致力于游戏人工智能和高效Python开发的研究,喜在博客(http://blog.csdn.net/lanphaday)上分享心得。邮箱:lanphaday@126.com
     

    发表于 @ 2007年10月08日 19:04:00|评论(loading...)|编辑

    新一篇: 《时间管理》培训笔记 | 旧一篇: C与C++之争是两小儿辩日?

    评论

    #lgkobe 发表于2007-10-09 10:13:52  IP: 219.142.202.*
    不错,很有意思的一篇文章,考滤一下学学Python
    2007-10-10 21:33:08作者回复
    嗯,像某牛人说的,程序员必须得会一门编译型语言和一门脚本语言。支持。欢迎交流。
    #LLBSY 发表于2007-10-09 12:48:42  IP: 222.178.10.*
    我也有同感啊,但是没学过Python,不知道这个语言怎么样,但是就我用C++写游戏的经验来看,辛苦啊
    2007-10-10 21:31:04作者回复
    嗯,脚本的确是能减轻游戏开发的痛苦。估计从事过游戏开发的都知道。
    #abc 发表于2007-10-09 20:47:25  IP: 121.8.10.*
    在网游时代,游戏业中的主要矛盾已经由性能低下的硬件与游戏执行效率之间的矛盾转变为快速变化的市场需要与低效的开发工具之间的矛盾.

    文风似曾相识.
    #dkink|棼紫 发表于2007-10-10 07:30:02  IP: 60.174.129.*
    完全 不能 同意 这个 观点~~
    越高级的 东西 入门 容易 精通 难~~

    也没见 哪个 游戏公司 随便找些人 培训 一下 就 写 游戏脚本。

    到目前为止,脚本工具 也只是 少数 高手 手中的 工具~
    2007-10-10 21:35:20作者回复
    欢迎交流你的观点。<br />不过目前游戏公司写脚本的程序员以前大多没写过脚本。
    #irplay 发表于2007-10-10 07:52:51  IP: 58.210.71.*
    考虑一下午学一下Python...不错的文章
    #ttkk1024 发表于2007-10-10 15:47:58  IP: 218.26.251.*
    python群:40565870
    #neil78duan 发表于2007-10-10 19:55:51  IP: 121.69.70.*
    一派胡言,脚本是给策划用的
    2007-10-10 21:37:06作者回复
    业内人士了,呵呵。<br />既然你说到策划,我说一句:可能我前世无修,机缘未到;还真不知道哪个策划能够写好脚本集成到游戏中直接使用。甚至能用好Word/Excel的策划也很少见。
    #Mephisto_76 发表于2007-10-10 20:15:02  IP: 221.6.3.*
    由于C程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除bug方面脚本也有先天的优势,这使得脚本在低成本的同时能够更好地保证代码质量。

    对于这一点完全不能认同。python固然很简单,可用的高级组件也很多,但是现在完成一个程序并不一定比C/C++快(自己的感觉),我想原因就是大量的时间浪费在错误的检查上。
    由于需要运行时错误才能显示出来,往往导致了没有完全的单元测试覆盖率,就不可能保证程序的稳定性。不要告诉我你的代码的单元测试覆盖率是100。
    无论是动态语言还是静态语言,都需要尽早的发现错误,修正错误,才能正确的方法。不通过在编译期找出错误,而期望在运行时发现错误不过是一种鸵鸟策略,出来混总是要还的。

    一直在想,如果python能够有一种在运行期前用来做检查的工具,写好程序后啪的跑一把,把一些隐晦的语法方面的错误检查出来,那肯定会省掉很多的时间。因为python是强类型的语言,它完全可以做到运行期之前的检查(注意是检查不是编译)。

    不要说这个不重要,机器比人效率高,也比人更不同容易粗心大意。这样在运行期只有逻辑错误,那么python编码的效率将大为提高。
    2007-10-10 21:42:59作者回复
    个人认为Python开发速度比C/C++快得多。虽然我的单元测试覆盖率达不到100%,但py的单元测试的确比C++的单元测试代码更容易编写,更容易测试。<br />运行时检查工具可以使用PyCheck,跟你的需求一致。<br />但我从来不用。写脚本人的很少调试程序,因为出错之后虚拟机输出的信息很容易让人定位错误。
    #peng 发表于2007-10-10 22:07:35  IP: 58.63.144.*
    说实话,没有看明白...
    作者说大话西游2等游戏用了脚本,是指开发者使用脚本写任务之类的应用吧..这种东东,早期的MUD游戏不都是这样的么?我那时候还不懂编程,下载了一个单机MUD服务器端,里面的源文件,现在想起来,好像是一个一个类似于C语言的文本文件.

    感叹一下,网易的 大话西游3 让人蛮失望的...
    国产游戏我觉得技术上都不差,天下2 的画面我觉得不比WOW差哪里去....可是游戏本身却...

    我好像扯远了...这里是技术哈..
    #moonmoon4 发表于2007-10-11 11:06:07  IP: 125.120.197.*
    个人觉得Lua的轻巧更适合做网游脚本
    #chena224503 发表于2007-10-11 14:16:31  IP: 218.80.115.*
    同意neil78duan
    用脚本写个类似跑跑卡丁车的游戏的策划我都见过。
    关键是程序员要包装的适合策划使用,让策划只需要关心逻辑的部分。

    楼上还有个人说脚本是高手用的,别的方面不知道,在游戏开发中,脚本就是为了快速,灵活,节省程序和策划的交流成本。越简单越好,如果高手才能用那绝对是失败。
    #BlueDog 发表于2007-10-11 23:24:20  IP: 123.253.203.*
    我正在做一个脚本引擎,我觉得目前通用的脚本存在几个问题
    1、最大的问题,不安全。所谓的不安全是指脚本宿主很难控件用户利用脚本来做些什么东东。比如最近的QQ场景漏洞。其实IE也是存在这个问题,脚本的运行不易受控,而且脚本的运行与IE是同在一个进程里,一个恶意的脚本很容易让IE当掉。
    2、第二个问题是脚本语言的熟悉度。实际上任何一种语言要精通是很难的。比如程序员常常最看不上的VBA,实际上要精通也是很难的。如果每一个游戏,每个工程都有自已的脚本语言是很难被用户接受的。因为不是每个用户都会去阅读你写的长长的README
    3、脚本定位不清楚。脚本好象可以做很多,但是它的效率是制约它的根本。我觉得用脚本来表现业务逻辑之类的非常适合,但如果让来计算一个0攻0防的狂徒对一只1防的Zerg的伤害就会有点问题。
    4、脚本是不是一定需要动态语言。嗯,现在动态语言大行其道,大家都在讲动态语言的优势。可能我是一个传统的程序员,不太喜欢这种动态的东东。我觉得一个byte一个byte在内存里的表示方法更便于理解。不过这个方面我倒觉得各取所需,如果你认为动态脚本很方便,使用也没什么问题,我只是认为不并是一个C脚本会比js脚本更难用。
    5、脚本的形式。其实脚本无非是脚本引擎对其进行编译或解释执行。那么它并不一定要以源代码的形式存在,也可以本身是一个二进制文件,只要你有一个对应的脚本编辑器就好了。从这个意义上说,普通的EXE文件也可以认为一个脚本,它的引擎就是操作系统本身,debug就可以算是它的一个脚本编辑器。
    呵呵。随便想到哪就说到哪。
    #oldmanzhao 发表于2007-10-12 00:32:45  IP: 124.248.4.*
    “比如在单机时代,无论游戏机还是PC的性能都非常低”,胡扯!
    #JackMSK 发表于2007-10-12 07:52:15  IP: 61.240.245.*
    由于C程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除bug方面脚本也有先天的优势,这使得脚本在低成本的同时能够更好地保证代码质量。
    ------------------
    哈,这个搞笑.
    #DGE 发表于2007-10-12 10:25:57  IP: 124.237.98.*
    早在传奇流行的时候就有脚本了
    #Mephisto_76 发表于2007-10-15 20:24:43  IP: 221.6.3.*
    python比C/C++开发快的多,这话可不能乱讲。在规模中等偏下的程序中,脚本可能得心应手。但是在规模较大的程序中,这种话就未必能够成立了。
    C/C++如果有成熟的库支持,开发速度绝不比动态语言慢多少,至少不是宣扬的10倍。

    我们来自不同的开发阵营,可能考虑问题的观点不同。受传统观念的影响(尤其是C++的影响),我认为错误应该尽量有编译器在编译期找出来。
    2007-10-15 21:32:09作者回复
    谢谢大家的客观评论。今天刚好跟同事讨论过什么样的技术才能增强团队的生产力。我跟他都认同C++代码在大量应用STL、boost等优质库来开发的话,写出来的代码不会比python短多少(跟你说的开发速度差不多殊途同归)。所以如果只一个人开发项目,用py跟用C++ + stl + boost开发效率差不多少(假设都是熟练掌握的)。问题在于如果存在一个团队,你之前用C++ + STL + boost开发的代码交给一个新同事(甚至可能是应届生),那么需要花费大量的成本来培养一个能写好C++代码的程序员,这样从一个团队来看,效率就低得多了。所以,后来我们认为能够增强团队的生产力的,是算法,是设计模式,是测试驱动开发,是结对编程,是极限编程,是敏捷开发,但绝不会是某一语言占了主要原因。
    #ljqboyayuziqi 发表于2007-10-24 08:57:44  IP: 219.131.159.*
    强!
    #irplay 发表于2007-10-29 12:32:08  IP: 58.210.70.*
    程序员啊.这个整天学习啊学习....活在别人的概念里...
    #ufo 发表于2007-10-29 17:29:06  IP: 218.72.184.*
    单机游戏也用脚本的,做好一个引擎,然后写脚本来做剧情。比如几年前的仙剑3,网上出现过一个脚本解密工具,可以把游戏脚本抽出来查看。里面类似这样的:role1.play(0,1)
    游戏运行到这一句,就会让指定人物做一个指定动作。
    #analyst 发表于2007-10-29 17:54:04  IP: 222.66.66.*
    管中窥豹,对脚本语言的认识太肤浅了。
    建议去读一下SICP这本书,认识一下脚本语言的开山鼻祖LISP,脚本语言这潭水其实很深...
    2007-10-30 22:04:06作者回复
    多谢指点。
    #Yu Wang 发表于2007-10-29 22:46:08  IP: 124.79.71.*
    虽然我觉得作者能力不错,涉及的面也很广,不过我还是要说脚本编程远没有作者写的那么美好...人才壁垒更是无从说起...
    2007-10-30 21:59:55作者回复
    欢迎异见。不过现在很多公司脚本程序员比系统编程程序员收入还要高也是事实。
    #sgzwiz 发表于2007-11-11 13:50:53  IP: 222.188.33.*
    感觉作者前言不搭后语。

    在脚本的优势第一条中说“通常脚本的语法都非常简单,也没有太多高阶的特性,学习的门槛较C/C++低得多。”

    第三条却说运用脚本容易“形成人才壁垒”。

    要形成壁垒,先决条件当然是难,而前面又说门槛低。

    这种文章的写作水平只能算是不及格。
    2007-11-14 22:37:47作者回复
    你觉得我前言不搭后语的话,可以再看一次形成人才壁垒方面的理由。想跟你探讨一下的是你说“要形成壁垒,先决条件当然是难,而前面又说门槛低。”未免太武断了些,举个例子,联通和移动,他们之间的壁垒是什么,当然不可能是入联通或者入移动网络相当难,而真正的壁垒是离开的成本高。我说脚本容易“形成壁垒”也是这样的。
    #Kiven 发表于2007-11-20 12:49:55  IP: 210.76.108.*
    不敢苟同!!脚本易于调试吗?调试脚本是件巨头疼的问题。我想没有一个C++程序员愿意去使用脚本,除非他脑子进水。使用脚本目的是便于策划使用,能够很快速的更改设计。
    2007-11-25 20:08:07作者回复
    写的好的脚本根本不用调试。不客气地说,我写脚本从来没有调试过。另,我是一个脑子进水的 C++ 程序员。
    #efdev 发表于2007-11-29 09:47:42  IP: 60.20.3.*
    2007-11-25 20:08:07作者回复:
    写的好的脚本根本不用调试。不客气地说,我写脚本从来没有调试过。另,我是一个脑子进水的 C++ 程序员。

    从来没有调试过?……无语……
    #Element 发表于2007-12-15 14:05:01  IP: 121.8.49.*
    前辈啊~ 多谢分享经验~ ^^ 会好好学习的,一定向您看齐!(另,转载了您的文章,谢谢!)
    2007-12-19 22:32:30作者回复
    别客气,Element 同学。祝你进步。另,我的文章只要声明转载自我的 blog 就可以随便转载。
    #cppof286 发表于2007-12-22 21:40:49  IP: 207.46.92.*
    是不是大家似乎都把编译器检查错误看成差错的大头了?但是就我的工作而言C/C++里检查起来最麻烦最耗时的bug基本上都是诸如buffer overrun/内存泄漏/死锁之类的。死锁这种东西各种语言调起来都差不多,但是另外两种对脚本来说出现的几率相对就少一些,这一点上脚本还是有优势的。

    我同意大项目里脚本不见得比纯C++的开发效率高。我在公司里自己做的东西是10000行的JScript加接近10000行的C++(还没完成),7个月的进度下来,和其他同事的C#项目比起来,感觉上开发速度也没有自己预料得那么好(主要时间花在给JScript写COM组件封装API了)。不过至少JScript的部分从来没有诸如buffer overrun之类的麻烦,有的一般就是变量名写错之类的,虽然有点琐碎但是查起来省心多了。
    2007-12-31 14:16:40作者回复
    目前我的项目都是纯PYTHON完成,感觉的确是效率更高.特别是与界面有关的还有不关注性能的业务逻辑,用脚本可以做得非常完美.
    #不知道 发表于2008-04-05 10:49:04  IP: 210.21.68.*
    Err...脚本的运用,其中一点理由是因为开发效率问题,但更重要的理由是“沙盒”,呵呵

    另外,单机游戏已经有脚本的运用了,不过和目前的有一点不一样。以前的RPG,很多都是用简单的脚本来写上层逻辑的。

    这文章很久了,估计没啥人留言了,俺留一个,哈哈
    #llxisdsh 发表于2008-05-11 17:58:19  IP: 116.224.239.*
    对于服务器来讲, 用脚本不一定能提高开发效率.
    除去性能外, 还有几点:
    1. 貌似脚本很简单, 其实不简单, 很多脚本是弱类型的, 反而造成困扰.
    2. 调试较差, 相比VS, 除了print, 没有更好的方法调试.
    3. 写脚本一样要很好的逻辑能力, 否则很容易写出相当垃圾的代码, 而很好逻辑的人, 也不是到处都有. 多数策划并不具备这样的能力.
    4. 脚本和引擎之间的API需要相当精力进行封装. (当然即便用C++写, 也需要对模块进行封装, 才能把引擎和游戏逻辑清楚分离)

    我觉的脚本以下情况下还是用处很大的,
    1. 所见即所得的开发, 比如UI, AI, 技能等, 这些模块需要频繁调节程序来获得更好的表现.
    2. 开放式开发, 比如魔兽世界的UI lua, 魔兽争霸的Jass等, 毕竟脚本的台阶较低.

    如果需要写的脚本比较简单, 只是单纯的想叫策划去写, 你可以让策划写C++, 或者干脆去配置.
    #远行 发表于2008-06-15 18:00:26  IP: 119.19.160.*
    前辈你好,你是网易公司的吧。向你请教几个问题,网易一般是用什么脚本开发游戏呢?目前什么游戏脚本比较流行?如果要学习游戏脚本,您对我有什么建议?希望您能指点一二,谢谢!
    2008-06-16 00:06:01作者回复
    我已经从网易离职了,网易开发游戏用的脚本目前有 lua 和 python 两种,如果要学习,我的建议是挑其中一种来学,不要学两种。如果喜欢C语言那就学lua,如果喜欢 C++ 就学 python。
    #远行 发表于2008-06-18 20:59:00  IP: 59.42.176.*
    谢谢!
    请问游戏脚本策划在游戏制作中是属于策划类的职位呢还是属于程序开发类的职位呢?
    2008-06-22 13:32:40作者回复
    嗯,脚本策划这个职位不是很常见,我不太了解。sorry。
    #远行 发表于2008-06-24 17:41:17  IP: 59.42.176.*
    请问一般是由策划人员写脚本的多,还是由开发人员写脚本的多呢?谢谢!
    2008-06-24 23:30:41作者回复
    我服务过的公司都是开发人员写脚本
    #远行 发表于2008-06-27 12:04:22  IP: 59.42.176.*
    前辈,请问,如学lua,需要非常了解C吗?还是了解一点就行?谢谢!
    2008-07-04 22:33:00作者回复
    我对lua不了解,不敢妄言。不过我觉得C不是必学的,学 C++ 未尝不可。
    #JCheung 发表于2008-07-17 04:41:51  IP: 221.223.130.*
    战地2 这个游戏就是用pyton做的脚本,大家可以看下。
    呵呵。
    #ljbjnh 发表于2008-07-22 12:15:47  IP: 210.51.244.*
    俺正在学习alu,郁闷中,,,
    #气温天气  发表于2008-07-22 12:40:42  IP: 61.132.133.*
    哈哈 学会了 以后玩什么都可以自己做外挂了
    现在正在玩 天龙 艘户 完了
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 赖勇浩