虚拟实验室引擎的开发和实现(一、序言)

 

什么是引擎

引擎是使用素材,响应用户输入,处理简单运算、调用远程数据的程序集。在虚拟实验室里,引擎负责调用图片素材、渲染场景、接收用户鼠标点击事件、相应事件,以及和后台通信:

 

image

 

这就像网络游戏的引擎一样。网游的引擎集成在Client客户端中,利用DirectDraw或Direct3D来渲染素材,利用DirectInput和鼠标键盘交互,利用Socket和游戏服务器进行数据传输。

虚拟实验室引擎类似于传统CS架构下网游的引擎,但是又有着不同:虚拟实验室是基于BS架构的,客户端嵌入在网页中,我们通过在浏览器中输入网址来访问它。

使用什么语言

嵌入在网页中的对象有很多中,我们该用哪种语言来开发虚拟实验室引擎呢?

ActiveX或Applet

也许你会选择ActiveX这个“爷爷”级的技术,没错,它很快,部署很方便,市面上关于这方面的书海了。此外,可以使用C++来实现,对“唯性能论”者来说基本上是最好的选择。不过我却不喜欢:ActiveX太老了,在上面绘制一副图片都需要写一大段代码,更别说制作出绚丽的效果。这个世界,性能固然重要,不过可以通过硬件升级来获得相应提高,不过如果效率太低的话,估计是没得救了!

至于Applet,参考ActiveX。我想,即使是James Gosling也不会用来编写网游引擎吧。

Javascript

Web进入到2.0时代,Javascript这个原本几乎被人们遗忘的东西仿佛一夜春风,又出现在人们的视野中。各种Javascript框架仿佛雨后春笋般冒了出来,现在互联网上已有了不少利用Javascript制作的游戏。和ActiveX相比,Javascript不需要安装,跨浏览器,跨平台。开发简单,部署方便,甚至不需要下载安装任何插件。

不过我依旧没有选择Javascript作为引擎开发语言,因为它太灵活,缺乏面向对象原则,根本不适合我这种“死板”的人。另外,Javascript缺乏良好的开发环境和测试环境,也是我放弃的原因。

Flex

作为Adobe收购Macromedia后主推的一门RIA技术,Flex继承了Flash的全部优点。同时,ActionScript 3.0还是一门面向对象的语言,至少让我在使用上非常顺手。Flex最大的优点就是能和Flash编译生成的SWF文件无缝拼接在一起,简直就是太强大了!现在市面上关于Flex的教程也渐渐多了起来。

去年我曾用Flex制作了一个虚拟商城的引擎,对Flex有了一定的了解。如果本引起还是用Flex来完成,未免有重复劳动的嫌疑。再加上学习了一段时期的Silverlight后,我不可遏制地喜欢上了后者。虽然Flex同样强大,不过,有时候,开发就像恋爱一样,感觉很重要。

Silverlight

作为微软主推的RIA技术,Silverlight一出来就被拿来和Flex对比。二者相似的地方不说,我觉得和Flex相比,Silverlight有以下两个吸引我的地方:

  1. C#:没错!和ActionScript那个四不像相比,C#是我在RIA领域中使用过最优雅,最具魅力的语言。(JavaFX没用过)
  2. Visual Studio:这个毫无疑问。Visual Studio 2008在易用性上比Adobe的Flex Builder 3好很多。对我来说,开发同样效果的东西,Silverlight比Flex快了足足一半。

当然,Silverlight毕竟刚起步,和Flex相比,还有很多东西实现起来比较麻烦,比如不能直接打开摄像头,缺乏像Flash那样强大的美工软件与之相结合。不过,这里我依然要套用郭富城的一句广告词:因为难,才好玩。结果,重要吗?

工欲善其事

既然选用了Silverlight,我们就必须知道,Silverlight能干什么,不能干什么。只有知己知彼,才能百战不殆。

Silverlight能干什么

  1. 使用面向对象的语言进行开发(c#)
  2. 在浏览器端呈现良好的UI界面
  3. 全屏
  4. 读取服务器图片素材
  5. 使用Socket连接服务器
  6. 使用Http连接服务器(WCF)
  7. 绑定对象
  8. 进行简单的运算(例如A*寻路)
  9. 多线程
  10. 良好的XML支持(使用XElement)

Silverlight不能干什么

  1. 直接读取数据库(必须通过服务器中间层)
  2. 身份验证(必须通过ASP.NET身份验证模式来验证身份及授权)
  3. 调用摄像头
  4. 在没有安装Silverlight的客户端上运行

进一步学习

关于Silverlight的教程,可以参考TerryLee的文章:一步一步学Silverlight 2系列文章

以及Tony Qu写于Silverlight整装待发之际

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值