b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

[杂谈]脚本语言在游戏发展中的作用

电脑杂谈  发布时间:2020-03-07 09:00:31  来源:网络整理

游戏 脚本语言 python_游戏脚本语言有哪些_lua游戏脚本语言入门

之前提到要写一篇关于脚本语言技术的文章,我也确实认真的写了,只是完成以后我看到,这篇文章实

在是很“”了一些。且不说读者是否还能理解游戏脚本语言有哪些,单就创意而言,这篇文章只是索然无味。

我想,其实脚本语言只是游戏研发中的专有技术,而是普遍应用于各种工具项目的一种技术。如果单独

介绍这些技术,未免会摆脱与游戏相关的话题。所以我决定重新立题,以专门介绍脚本语言在游戏开发

中所起至的作用为立意,重写这篇文章。于是,便有了下面这篇拙文。还望你们多多指正。

作为引擎科技中的一项分支技术,脚本语言是一个非常重要的模块。那么,这种科技针对游戏业的发展

起到了哪些影响?请耐下新来听我渐渐讲述这个过程。

我想大家都明白,早期的游戏制作人、监制、或者说的时髦些叫做导演也好,至少是半个程序员,而且

往往还是懂得“汇编语言”这种“甲骨文”的那个。因为那时候的开发工具和环境都非常简陋,如果一

个制作人想要实现自己设想,最直接的方法就是自己把代码写下来!但,假使这位制作人(比如宫本茂

先生)对于编程一窍不通,那么他只好尽可能地跟负责程序编写工作的上司进行交谈,让程序员通过代

码将制作人的看法叙述出来。固然,程序员可能难以很好地理解制作人的动机,最初编写的游戏运行结

果可能跟制作人的表述有所区别。不过这并不是什么大问题,制作人可以进一步跟程序员进行沟通,对

程序进行更改。如果这些沟通工作做得足够好的话,毫无疑问,制作人的企图最终会准确地表现在游戏

游戏脚本语言有哪些_lua游戏脚本语言入门_游戏 脚本语言 python

中。

至少在PS之前,制作人和程序员都在以这种的方法良好地合作着。然后,SS和PS来了,3D来了,大容量

CD来了,空前复杂的游戏逻辑来了,然后,问题随之而来了。

我们可以想象一下,问题最早是在这么的一种情形下爆发的:

某天晚上,我们制作人愉快地来到了程序员的办公桌旁,像以往一样问道:“程序君,请你修改一下勇

者手中宝剑的作用,我希望当这把宝剑砍中敌人的之后,会使敌人造成中毒的效果。”

程序员:“咕~~,事实上这或许要花些时间,你或许应等上3个小时后才会发现结果。”

制作人:“什么!3个小时!!我也是改动一把宝剑的用处就要花上3个小时!!!可是今天你把宝剑的

攻击力从15改为34的之后只花了几分钟而已啊。”

程序员:“是的,那并非削弱一个数值而已,我只应该修改一下数据文件而已。但是,‘产生中毒效果

’是一个‘逻辑事件’,如果我应设置该‘逻辑事件’的话,就需要再次编译程序,这个编译过程或许

要花费3个小时。”

制作人:“为什么?为什么修改该数据不需要重新编译,而更改该逻辑事件’却应再次编译?”

程序员:“这个难题很难用一两句话解释明白。”(出于相同的缘由,我也不准备向大家解释这个问题

游戏脚本语言有哪些_游戏 脚本语言 python_lua游戏脚本语言入门

,否则这篇文章往往会成为一篇超过5万字的技术论文。)

制作人:“但也不至于要3个小时吧,之前开发SFC项目的之后,你每天不是只花了十几分钟就编译好了

么?”

程序员:“这个问题也很难用一两句话解释明白。”(同上)

制作人:“哦,天啊,如果改动一点点逻辑都要如此长时间的话,我们如何调试游戏呢!!!”

事实上,以上的场景是一个十分极端的事例,但凡一个合格的制作公司,都不可能到了PS时代还在延续

SFC时代的开发方法。但,这个事例确实体现当年游戏开发中的一个普遍问题:由于游戏越来越复杂,编

译一个游戏所要花费的时间也就越来越长。由于当年技术的落后,程序员往往会把游戏中的“逻辑事件

”直接写在代码中。这样一来,当“逻辑事件”改变时,代码就需要改写,而改写后的代码就需要再次

编译。如此一来,每一次改动“逻辑事件”都意味着漫长的编译过程。

诸位玩过“暗黑破坏神”的玩家可以想象一下,暗黑中的装备平衡性都经过了漫长的检测和调试。如果

暗黑采用的是之前的事例描述的方法来开发的话,那么上百件武器的每一次调整都要经历艰难的编译过

程,这是如此可怕的事情......

而脚本语言就是为了解决这个难题而被采用到游戏研发科技中来的,关于脚本语言的实现原理,我不在

lua游戏脚本语言入门_游戏脚本语言有哪些_游戏 脚本语言 python

这里做具体的表明。各位只要明白,有了脚本语言后来,游戏中的逻辑事件可以成为一种资源被加载。

简单地说,“会使敌人造成中毒的效果”这个事件不再是写在游戏的代码中,而是写在一个独立的文件

中。当游戏中的勇者使用宝剑的之后,游戏的核心程序中的“脚本语言解释器”会去调用这把宝剑所对

应的事件文件,如果事件文件中写着“会使敌人造成中毒的效果”,那么宝剑就会获得“会使敌人造成

中毒的效果”的能力。而即使制作人突发奇想,想要这把宝剑才能让对手被传送到某地,那么程序员只

要将这个文件中的内容改为“能够让对手被传送至某地”即可,而不用重新编译整个程序。这一功能极

大地方便了游戏的调试和研发,可以想象如果没有这种技术,复杂的游戏几乎没有被开发起来的可能性

。(这里我要表明一下,虽然我之前以暗黑为例,但暗黑采用的不是脚本语言技术,实际上解决一个问

题有很多种方法,脚本语言也只是适用于所用情况的“万用技术”。)

说道这里,如果你是一个思维敏捷的人,应该会很容易想到,其实不仅仅宝剑的属性,游戏中的所有逻

辑都可以用脚本来表述。那么当所有的逻辑都被以脚本来表述的之后,游戏程序中剩余的核心代码还剩

下些什么呢?应该只有绘图,声音播放,输入输出等功能了,当然,一定还包含一个用于解析这种脚本

语言的模块。如此一来,剩下的这种核心代码不就正是一个“引擎”了么!于是,很自然地,引擎技术

将脚本语言成为一个子模块引入了过来了。有了这一科技,引擎更是如虎添翼。如果抽象地解释这一作

游戏 脚本语言 python_游戏脚本语言有哪些_lua游戏脚本语言入门

用,大家或许很难理解。大家可以回忆一下CS,这个游戏是有两个高中生在暑假完成的。两个高中生为

什么才能在这么短短的时间内使用原本第一流的3D引擎完成一个如此复杂且有有趣的游戏呢。原因就在

于CS所使用的HL引擎采用了一套非常规范的脚本语言。有了脚本语言后来。这两位高中生不再要考虑如

何合理地调用引擎中的各类接口,而即使用脚本语言表述自己所要制作的游戏中所包括的规则即可。HL

引擎中的类库语言解释器会读取这种规则,并向引擎的核心层解释这种逻辑。核心层按照游戏逻辑去自

动处理复杂的底层操作。

之前的一篇文章中讲到,引擎屏蔽了软件层跟一些更底层的复杂操作,而脚本语言进一步屏蔽了引擎的

最底层的复杂操作。于是,现在的游戏开发者只要描述游戏的规则就能,而且鉴于脚本语言远比传统语

言简单,所以唯有一点程序基础的人,都可以用脚本语言编写出复杂的游戏来。这不但因而传统游戏开

发行业大大受益,也是的长期的独立制作人得以蓬勃发展。可以说,没有脚本语言,就没有今天种类如

此丰富数量极其之多的游戏。

最后想说一点,和所有的技术一样,脚本语言也有特点,最显著的一点就是,使用脚本语言大的游戏游戏脚本语言有哪些,运行效率相对较低。因为脚本

语言解释器会消耗大量的平台。虽然,这些消耗对于PS3或360级别的主机也是九牛一毛,但是针对NDS等

掌机或移动系统来说还是不小的。不过这即将不再本文讨论范围之内。谈到这种也并非想使你们了解到

,现在针对游戏的改进终于不可能像FC时代这样1k内存那样的完胜了。事实上,有时候为了游戏的整体

效果跟开发的便捷性,必须牺牲一部分性能。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-143300-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...