当前位置 : 主页 > 编程语言 > 其它开发 >

Silverlight游戏设计(Game Design):(十五)如果还有梦(完)

来源:互联网 收集:自由互联 发布时间:2022-05-25
Silverlight游戏设计(Game Design):(十五)如果还有梦(完) C#优异的界面处理能力配合上F#强大的并行计算特性将使得Silverlight在未来的RIA界独领风骚,这才是Silverlight超越其他所有RIA技术的
Silverlight游戏设计(Game Design):(十五)如果还有梦(完) C#优异的界面处理能力配合上F#强大的并行计算特性将使得Silverlight在未来的RIA界独领风骚,这才是Silverlight超越其他所有RIA技术的最大特性:一流的开发效率和产品性能! 如果还有梦,我会继续向山的顶峰攀登,过程是痛苦的,人不经历磨难怎能长大?每个脚印都伴随着汗水,但从没想过放弃;一路上结识了很多志同道合的朋友,我们相互鼓励度过一个又一个凄凉的夜,相互搀扶越过一道又一道的槛,依旧毫不畏惧,理想与信念是前行的灯塔,指引着我们朝着梦的颠峰前行,Moving on our way!

Silverlight游戏设计系列到此就全部结束了,原先计划至少为大家献上5个最有影响力的Demo,由于近期生活及工作的原因让我感到实在疲惫不堪因而未能如愿,还望大家见谅。

Silverlight在游戏开发方面拥有它独到之处,目前最新版本为4.0,开发环境集成于强大的VisualStudio2010中。Silverlight在短短的数年时间里能成长得如此迅速与微软的强力支持分不开,从Silverlight 5 Wishlist字里行间中我再次感受到世界对Silverlight未来的强烈期待,WEB-3D全方位支持或将在该版本中绚丽登场,这或许会成为一场空前革命,翘首以待。

这里,让我们再一次回顾Silverlight的发展历程,见证那数不尽的奇迹是如何诞生的吧(原文地址http://www.silverlight.net/getstarted/overview.aspx):

 

Silverlight 版本

功能特性

1.0

2

3

4

跨浏览器支持 for Firefox, IE, Safari

跨平台支持 for Windows and Mac (and Linux through the Moonlight Project)

2D 矢量 动画/图象

AJAX 支持

HTML DOM 集成

HTTP Networking

Canvas 布局支持

JavaScript 支持

XAML 解析器

多媒体 – 720P High Definition (HD) Video

多媒体– Audio/Video 支持(VC-1, WMV, WMA, MP3)

多媒体图象格式支持 (JPG, PNG)

多媒体- H.264 video and AAC audio 支持

 

 

多媒体标记

Windows 多媒体服务支持

支持语言 Visual Basic.NET C#;公共语言运行时(CLR) based languages

 

支持脚本 IronPython, IronRuby, Managed JScript, 和其他动态语言运行时(DLR) based languages

 

丰富的核心框架 (例如 Generics, collections)

 

多线程

 

布局容器控件包括 StackPanel Grid

 

全套标准控件 (TextBox, RadioButton, Slider, Calendar, DatePicker, DataGrid, ListBox, TabControl, and others)

 

管理控制框架

 

模板模型

 

可视化状态管理器

 

独立存储

 

深度缩放技术(Deep Zoom Technology

 

多媒体– DRM Powered by PlayReady

 

多媒体- Windows Media Audio 10 Professional support

 

多媒体- MediaStreamSource for managed code media file parser and protocol extensibility

 

高品质缩放

 

多媒体- Basic SSPL Support

 

跨域网络访问

 

通过网络服务方便地访问服务器端数据

 

直接进入 TCP sockets

 

SOAP REST services互通, 包括对 XML, JSON, RSS Atom data formats 的支持

 

LINQ (包括 LINQ to XML, LINQ to JSON, LINQ to Entities)

 

双工通信,从服务器到Silverlight客户端推送

 

数据绑定

 

WCF 数据服务

 

托管的HTML

 

托管异常处理

 

.NET Framework 安全措施

 

类型安全验证

 

XML /

 

增强的键盘输入支持

 

文件上传支持 (通过WebClient API)

 

WPF兼容

 

无障碍

 

本地化

 

远程调试(PC Mac)

 

脱离浏览器运行

 

 

网络状态 (脱机)

 

 

像素着色器渲染特效(Pixel Shader Effects) HLSL

 

 

位图 API

 

 

Theming at runtime

 

 

增强控件样式

 

 

辅助功能 - 系统颜色

 

 

位图缓存

 

 

3D透视

 

 

GPU硬件加速(针对视频和位图)

 

 

文本动画

 

 

原始的A/V支持

 

 

文件保存对话框

 

 

新内置控件DockPanel, WrapPanel, Viewbox

 

 

元件与元件的绑定

 

 

本地连接

 

 

二进制 XML

 

 

组件缓存(跨应用程序共享资源)

 

 

场景缓存 (对于位图)

 

 

本地字体

 

 

 

打印

 

 

 

WCF RIA Services

 

 

 

托管的MEF扩展框架

 

 

 

摄像头

 

 

 

麦克风

 

 

 

正式对Google浏览器Chrome的支持

 

 

 

输出受保护的音频/视频

 

 

 

组播网络

 

 

 

离线的DRM

 

 

 

受信任的应用程序(扩展沙箱)

 

 

 

IDispatch COM Interop

 

 

 

组策略对象支持

 

 

 

信任模式下脱离浏览器运行时的全键盘支持

 

 

 

信任模式下跨域网络访问

 

 

 

自定义 window chrome

 

 

 

脱离浏览器运行窗口设置 (位置, 尺寸等等)

 

 

 

网页浏览器控制及网页浏览器笔刷

 

 

 

Notification Toast

 

 

 

文本从右到左 / BiDi 文本

 

 

 

.NET4来了,带来了超棒般艺术式并行编程解决方案,包括如TPL(任务并行库(Task Parallel Library)) PLINQ(并行语言集成查询(PLINQParallel Language Integrated Query)以及 F#。在目前的Silverlight4版本中为了框架精简,暂时还无法用到TPLPLINQ(WPF4能完美支持)F#成为Silverlight上目前唯一实现并行编程的方式。

F#Silverlight中应用感兴趣的朋友们我强烈推荐Brian博客(微软F#开发团队成员)。其中一篇文章提到F#Silverlight中的地位问题,有这么一句对我启发很大:标准/推荐的F#Silverlight中使用的做法是通过创建例如C#Silverlight应用程序后,再引用F#编写的Silverlight类库。当然,我也能通过hack的方式利用纯F#代码编写完整的Silverlight应用程序而无须任何的例如C#XAML等等。

此时有朋友肯定会问:F#在将来的某天是否会革掉C#的命而真正成为.NET平台中的顶峰语言?

其实非也。从定义看,大家可以先了解下什么是F#F#是微软唯一的FP语言(函数式编程(FPFunctional Programming)。那么相对于函数型程序设计语言,C#则是标准的面向对象的高级程序设计语言虽然它们在.NET框架下能实现相同的功能,达到一模一样的目的;然而由于两者的性质截然不同,从一者向另一者的转变(包括思维,习惯,编码方式等),特别是如若想两者都精通那真绝非易事;当然,其实最重要的关键点在于两者在.NET平台中的地位是并列的,官方有这么一句话点明了它们的关系及未来:F#也许终将成为程序核心部分设计的首选,而C#VB等将在用户界面交互设计方面继续发挥其强大的潜力。

经我这么一说大家是否有种豁然开朗的感觉,没错了,对于精通C#.NET开发者来说,我们只需大致了解F#的基本语法,然后由此再进一步掌握F#的并行计算实现的相关代码即可。F#的关键在于异步与并行计算,Brian在博客中也有写到使用F#的九个理由其中就有包含这两点。另一方面,并行计算也并非永远都比串行计算要快。老师的这篇文章讲得非常详细,同时也举了非常有说服力的例子,小结中有提到:由于“并行”需要付出代价,因此,不是所有的程序都需要转换为并行的,当要处理的数据量很大,或者要执行的数据处理任务繁重,并且这些任务本身就可以分解为互不相关的子任务时,使用并行计算是合适的。

打个比方,在Silverlight游戏开发中,我们完全可以使用F#并行计算方式实现A*以及游戏中的障碍物数组的动态更新等大数据量的繁杂处理,然后将结果交给C#,由C#去处理数据与界面间的协调问题,从而引导精灵们寻路移动等操作。

意味深长呀,任何语言都需要时间的考验,而我始终坚信:F#在未来并行运算的世界里终将大放异彩,而C#则是.NET平台中永不褪色的经典。C#优异的界面处理能力配合上F#强大的并行计算特性将使得Silverlight在未来的RIA界独领风骚,这才是Silverlight超越其他所有RIA技术的最大特性一流的开发效率和产品性能!

    如果还有梦,我会继续向山的顶峰攀登,过程是痛苦的,人不经历磨难怎能长大?每个脚印都伴随着汗水,但从没想过放弃;一路上结识了很多志同道合的朋友,我们相互鼓励度过一个又一个凄凉的夜,相互搀扶越过一道又一道的槛,依旧毫不畏惧,理想与信念是前行的灯塔,指引着我们朝着梦的颠峰前行,Moving on our way!

在线演示地址:http://silverfuture.cn

()

WPF/Silverlight
上一篇:项目估算与计划不是一般的难!
下一篇:没有了
网友评论