郑州信息港
历史
当前位置:首页 > 历史

从滚出娱乐界到励志女神对袁姗姗为何黑转粉照片

发布时间:2020-03-27 16:14:33 编辑:笔名
从游戏脚本语言说起,剖析Mono所搭建的脚本基础 0x00 前言    在平常的工作中,很多程序员能遇到这样的问题:“为什么游戏脚本在现在的游戏开发中变得不可或缺?”。那末这周我就写篇文章从游戏脚本聊起,分析一下游戏脚本因何出现,而mono又能提供怎样的脚本基础。会通过摹拟Unity3D游戏引擎中的脚本功能,将Mono运行时嵌入到一个非托管(C/C++)程序中,实现脚本语言和“引擎”之间的分离。
    0x01 Why?从为什么需要游戏脚本开始    首先聊聊为何现在的游戏开发需要使用游戏脚本这个话题。

    为什么需要有脚本系统呢?脚本系统又是因何而出现的呢?其实游戏脚本并不是一个新的名词或技术,早在暴雪的《魔兽世界》开始火爆的年代,人们便熟知了一个叫做Lua的脚本语言。而当时其实有很多网游都不谋而合的使用了Lua作为脚本语言,比如网易的大话西游系列。

    但是在单机游戏流行的年代,我们却很少听说有甚么单机游戏使用了脚本技术。这又是为何呢?由于当时的硬件水平不高,所以需要使用C/C++这样的语言来尽可能压榨硬件的性能,同时,单机游戏的更新换代并不如网游那末迅速,所以开发时间、版本迭代速度并不是其斟酌的要素,因此可以使用C/C++这样开发效力不高的语言来开发游戏。       但是随着时间的推移,硬件水平逐年水长船高,压榨硬件性能的需求已经不再迫切。相反,此时网游的兴起却对开发速度、版本更迭提出了更高的要求。所以开发效力并不高效,且投资巨大风险很高的C/C++便不再适应市场的需求了。而更加现实的问题是,随着java、.net乃至是javascript等语言的流行,程序员可以选择的语言愈来愈多,这更加致使了的C/C++程序员所占比例愈来愈小。而网游市场的不断扩大,这类对人材的需求也一样越来越大,这就造成了大量的人材空缺,也就反过来提高了使用C/C++开发游戏的本钱。而由于C/C++是门入门容易进阶难的语言,其高级特性和高度灵活性带来的高风险也是每个项目使用C/C++进行开发时,所不能不考虑的问题。    而一个可以解决这类窘境的举措便是在游戏中使用脚本。可以说游戏脚本的出现,不但解决了由于C/C++难以精通而带来的开发效力问题,而且还下降了使用C/C++进行开发的项目风险和本钱。从此,脚本与游戏开发相得益彰,相互增进,逐步成为了游戏开发中不可或缺的一个部分。    而到了如今手游兴起的年代,市场的需求变得更加庞大且变化更加频繁。这就更加要求需要有脚本语言来提高项目的开发效力、下降项目的本钱。     而作为游戏脚本,它具体的优势都包括哪些呢?    易于学习,代码方便维护。合适快速开发。开发本钱低。由于上述点,由于易于学习,所以可以启用新人,同时开发速度快,这些都是降低成本的方法。    因此,包括Unity3D在内的众多游戏引擎,都提供了脚本接口,让开发者在开发项目时能够摆脱C/C++(注:Unity3D本身是用C/C++写的)的束缚,这其实是变相的下降了游戏开发的门槛,吸引了很多独立开发者和游戏制作爱好者。    而Mono则提供了这类脚本机制实现的可能性。即允许开发者使用JIT编译的代码作为脚本语言为他们的运用提供拓展。

    目前很多脚本语言的选择趋向于解释型语言,例如cocos2d-js使用的javascript。因此效力没法与原生代码相比。而Mono则提供了一种将脚本语言通过JIT编译为原生代码的方式,提高了脚本语言的效率。例如,Mono提供了一个原生代码生成器,使你的运用的运行效力尽量高。同时提供了很多方便的调用原生代码的接口。

汉森四磨汤口服液是中药吗
夜尿增多吃什么好
月经有血块吃什么好点
得了宫颈炎怎么治
友情链接