AngelScript脚本语言
用了一下午的时间去看这一个让我一开始懵的语言“AngelScript”,但是慢慢查询网上资料,也开始变得慢慢清晰起来:AngleScript是一个专门为扩展应用程序功能而开发的跨平台的脚本库。其实它的底层就是C++,与Lua(底层是C)正好算的上是难兄难弟,像Lua之面向C,用原始API,注册一个复杂点的函数到C中,得写得手抽筋,所以就有各种各样的Lua绑定库。而AngelScript的官方API只需要一行。可以看出作者是很用心在为C++服务。它甚至还能注册C++模板。
支持接口,继承,多态,操作符重载,多线程,垃圾回收,枚举,typedef,函数指针,模块插件,单步执行调试,动态编译加载……简直就像是C++的翻版。性能支持二进制编译。
如果你的游戏本体是C++的话,用AngelScript,意味着脚本只是你本体的一个延伸,其基本的架构和思路是一以贯之的。而用C++和Lua的话,你得在强类型面向对象和弱类型Table的灵活中不停的转换脑袋。
有利也有弊,AngelScript贴合C++的代价是,它不能很好的移植到其他的语言平台上去,比如和C#,java绑定,应用面就会受限,虽然想做的话也可以通过一个小的C层也可以简单的实现,但毕竟从脚本风格上来说不如Lua那样自身毕竟纯粹,AngelScript太有C++味道了。而Lua因为小而美,学的人用的人,掌握的概念不多,不折腾,就更容易传播。
用双重标准来说,跟mono C#比,AngelScript显然功能要弱得多,但是要小得多,源码只有几十个文件。跟Lua比,AngelScript功能要强大的多,体积性能上大家差不多。AngelScript是中间的选择,所以有时候也很尴尬。
用双重标准来说,跟mono C#比,AngelScript显然功能要弱得多,但是要小得多,源码只有几十个文件。跟Lua比,AngelScript功能要强大的多,体积性能上大家差不多。AngelScript是中间的选择,所以有时候也很尴尬。