使用C#作为Cocos2dx引擎脚本语言进行游戏开发

  Mono是众所周知的跨平台.net运行环境,使得C#语言运行于各个平台。目前mono跨平台的实例已经很明显的显现在各个平台,甚至移动平台。如Xamarin移植与实现应用框架的跨平台;著名游戏引擎——Unity3D,都有跨移动平台,主机平台的身影,国内的开源引擎genesis-3d也是使用mono做脚本引擎底层,引擎正在飞猛发展。

  很多软件框架都会使用脚本,在游戏领域,绝大部分引擎都支持使用脚本开发,其中lua语言,javascript语言使用得最多,著名的大型网络游戏《魔兽世界》便是使用lua开发,,Cocos2dx的主要支持开发语言也是lua。lua的简单易用,深的让各个软件开发上喜爱。

  但如果单纯使用lua进行游戏开发,也会产生很多不便的地方,lua默认是面向过程的,让很多面向对象的开发者转过来会碰到设计思想上的麻烦。即使lua支持表拷贝的方式得以支持类似面向对象的继承,但相比面向对象的继承,还是难以实现继承的多态性。使用lua开发,一般用于实现简单的游戏逻辑,比如游戏的部分人工智能,游戏剧情等,如果实现复杂的逻辑思想,还是需要C++提供更多的接口。

  本文章将会介绍使用C#作为Cocos2dx引擎的脚本开发语言,并后续提供各种扩展功能的例子。使用C#语言作为脚本,不但能使用常用的面向对象功能,还能使用丰富的脚本引擎,C#也有lua引擎的支持库,能让不太熟悉C/C++的程序员迅速上手开发程序,不需要进行学习C++的工程。文章将介绍使用Mono框架作为C#脚本引擎。

  使用mono做为脚本语言有很大优势:

  一、开发者数量优势。使用了mono做脚本,可以使用C#语言进行开发,熟悉C#的程序员无数,java平台的程序员都可以很快的转到C#平台进行开发。

  二、多又强大的IDE工具和程序库支持。C#开发有各种强大的IDE支持,并且C#默认系统库已经提供强大的程序库,第三方开源库多不胜数,算法可以很好的重复利用。

  三、稳定的底层技术和跨平台技术。使用mono跨平台的事实大家都非常清楚,有著名的Unity3D游戏引擎,Xamarin应用开发框架,使用稳定的技术做脚本可以大大提高开发效率。

  四、方便使用C#进行开发游戏工具,利用WPF等之类的框架,能快速开发想要的工具。现在有不少公司使用C#进行开发游戏工具,使用C#做脚本,可以很好重复利用游戏和工具公用的逻辑。

  使用mono做脚本绑定器有两种方式,

  第一种方式是动态加载dll(P/Invoke)的方式:

  P/Invoke是C#和C/C++交互最常见的方式,这种方式不单是mono支持,并且微软官方的.net也很好的支持。使用这个方式,可以在手机端用mono作为底层,windows开发环境用MS .net进行底层,也可以用mono windows版作为脚本底层,如果使用ms .net做底层,可能写脚本绑定的时候注意绑定跨平台方面代码和程序库的使用,但多数情况下都是可以兼容的。文章会进行简单介绍P/Invoke的调用方式。

  第二种是公共运行时内部绑定(Internal Calls,Embedded applications)

  这种方式直接绑定到mono的公共运行时上面,也就是说运行时加载的时候,已经把所有相关内部调用的函数都绑定于mono。目前本文章将侧重介绍mono的公共运行时内部的绑定。由于P/Invoke大多数资料都是windows相关的(Linux之类也支持),使用内部绑定函数的为了减少mono在不同平台上的动态链接库使用的差异性,也一定程度上提高程序的运行效率。

  本文绑定方式先在windows环境下进行接口绑定,再移植到手机平台测试。

  Mono官方有关做脚本的介绍

  

『 不可能 』只存在於蠢人的字典里

使用C#作为Cocos2dx引擎脚本语言进行游戏开发

相关文章:

你感兴趣的文章:

标签云: