- 博客(20)
- 收藏
- 关注
转载 WPF动画测试小工具
从网上收集了帧动画的图片,或者自己制作的动画的图片,如何知道这个动画是否像我们预期的那样呢?在网上几乎找不到这种通用的动画测试工具。好在不是很复杂,可以自己动手制作一个。我选择了WPF来开发,因为WPF与Silverlight的语法几乎完全相同,移植起来相当方便,而且Windows平台下开发调试比Web平台也简单的多。以人物行走动画图片为例,第一行为向前走的一系列图片...
2011-10-27 16:12:00
139
转载 面向Web服务的游戏设计6:不同客户端的精灵运动同步
由于网络延迟和轮询间隔的影响,在一个客户端操作精灵运动,其运动结果并不能马上反映到另外一个客户端上,时间上相对滞后一些,造成该精灵在两个客户端的运动不同步。本文试图寻找一个预测算法,从延迟的运动数据来预测真实的数据,从而解决运动不同步的问题。为方便讨论,我们假设以下环境。客户端把自己的精灵运动数据发送给服务器,然后另一个客户端从服务器取得数据。服务器不主动更新客户端...
2011-06-23 18:32:00
97
转载 面向Web服务的游戏设计5:分离实体的对象和数据
简单的说,游戏中的实体对象指的是地图、精灵等。在设计实体类的时候,最直接的做法就是把所有与该实体相关的数据,方法,事件等封装到一个类中。当需要一个新的实体时,用该实体类创建一个新的实体的对象,然后初始化数据。该设计的主要问题是,实体数据与对象耦合太紧密,在以数据为中心的环境中,不利于实体对象的重用。举例来说,假设下面精灵类:class Sprite:Canvas{ da...
2010-08-06 18:18:00
188
转载 面向Web服务的游戏设计4:自定义服务参数设计
服务器与客户端的数据交换涉及大量数据参数和数据类型。对于每次数据交换,数据参数的数量和类型可能都是不同的。举个简单例子,客户端从服务器端获得当前地图的精灵信息,假设某次通信得到10个精灵的信息。下次通信时,假设其中一个精灵被kill了,同时另外9个精灵只是部分信息变化了,我们希望只传输更新了的信息而不是传递所有信息。可以想象,这两次通信的数据参数变化极大。或者说,几乎每次通信的参数都是不...
2010-07-05 22:17:00
88
转载 面向Web服务的游戏设计3:服务设计概述
在Web环境(HTTP协议)下,服务器端的服务是被动方式的,无法通过定时器来主动处理游戏控制和逻辑。同时每次服务的时间不可以太长,否则将导致服务超时,产生不可预料的后果。Web环境的特殊性决定了其游戏设计与常规客/服环境下的设计完全不同。应该指出,Web环境并不是设计和发布MMORPG游戏的理想选择,独立主机可以提供更好的性能和更简单的逻辑。但是租用Web共享空间的价格远低于独立主机,可...
2010-06-19 05:31:00
91
转载 面向Web服务的游戏设计2:分布式游戏处理
上一节比较了Silverlight支持的几种通信方式,结论是:基于纯Web服务器环境,WCF Binary Encoding为首选的通信技术。接下来我们可能会问自己,Web服务器环境是否适合作为承载MMORPG游戏的服务器,能否承载大量的游戏逻辑运算,能否支持几千甚至上万的游戏者的连接以及逻辑处理?架设过私服的朋友可能有体会,在P4上运行传奇的服务器程序,cpu几乎全部被占用,程序切换明...
2010-06-10 18:04:00
96
转载 面向Web服务的游戏设计1:选择适合的Silverlight通信技术
互联网游戏当然离不开通信技术的支持,对于Silverlight,哪一种通信技术最适合开发MMORPG游戏呢?本文通过比较Silverlight支持的几种主要的通信技术的特性和适用环境,选择一款最适合我们的。1 Socket提到开发游戏,性能和速度当然是第一位的,Socket应该是首选的通信技术。因为所有的Silverlight通信技术都是基于TCP/IP的,Socket可以...
2010-06-04 19:17:00
87
转载 Silverlight开发MMORPG游戏研讨(5):让浏览器更好地为Silverlight游戏服务
由于Silverlight游戏内嵌在浏览器页面中,处理好浏览器的控制对于Silverlight游戏的表现十分重要。本节归纳总结了Silverlight游戏开发中可能遇到的一些浏览器相关的问题,并给出解决方案。这些问题包括:如何令浏览器文档窗口最大化,如何防止误关浏览器窗口,用户关闭浏览器时如何通知服务器,如何阻止用户从多个浏览器窗口登录游戏。本来打算用四篇blog来分别阐述,不过每部分内...
2010-05-28 15:45:00
67
转载 Silverlight与浏览器通信技术总结3:应用实例演示
前两节简要介绍了Silverlight和浏览器的交互技术,本节将例举一些这方面的实际应用。1 访问Query StringHttp Get协议中URL可以利用Query String传递参数给Web服务器。从Silverlight也可以访问Query String,例如:private void UserControl_Loaded(object send...
2010-05-22 06:13:00
155
转载 投票支持你所希望的Silverlight新特性
尽管我们无法决定下个版本Silverlight有哪些新特性,但是可以发出我们自己的呐喊,为我们希望的新特性投上一票。http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions/不知道这些建议是否最终被Silverlight开发团队所采纳,不过可以肯定的是他们也在倾听用户的建议和需求,大牛Ti...
2010-05-21 19:22:00
65
转载 Silverlight与浏览器通信技术总结2:Silverlight与JavaScript互访
上一节(http://www.cnblogs.com/erichan/archive/2010/05/18/1737862.html)总结了Silverlight访问HTML DOM的技术,这一节来讨论JavaScript。我们可以在Silverlight中调用JavaScript,也可以在JavaScript中访问Silverlight。在Silverlight中调用Java...
2010-05-20 06:09:00
79
转载 Silverlight与浏览器通信技术总结1:Silverlight访问HTML DOM
Silverlight是浏览器的一个插件,运行在浏览器的Sand Box中。Silverlight与浏览器之间的访问,有时会给编程带来很大便利。本系列的目的是总结Silverlight与浏览器互访的技术及应用,作为实际开发时的参考。首先来看Silverlight如何访问HTML DOM。 HTML DOM(Document Object Model)定义了标准的方法来操作HTML文档...
2010-05-18 06:08:00
98
转载 Silverlight技术研讨(4):本地化傻瓜范例step by step
Silverlight本地化很多朋友可能不感兴趣,因为很多时候都是针对一国语言(母语或英语)编程,很少考虑多国语言的支持。不过既然Silverlight是基于互联网的,多国语言支持有时候很有必要,尤其是对一些企业应用。当然对游戏来说也有用处,多国语言支持可以吸引更多的不同国家和文化背景的人参与,影响力远比只有本国人玩大啊。目前Silverlight在国外的装机率和热度比国内高,支持多国语...
2010-05-14 22:32:00
110
转载 Silverlight开发MMORPG游戏研讨(4):用一个定时器实现多个不同帧频的动画
上一篇文章介绍了用CompositionTarget_Rendering实现固定时间间隔定时器。本篇将继续这个话题,介绍该定时器的一个实际应用:用一个定时器实现多个帧频不同的动画,笔者正在开发的MMORPG游戏中使用了该技术。前文讨论了该定时器的优点之一,即动画帧只在即将提交UI前处理,可以根据silverlight程序的帧频的变化而自适应调整。本文讨论另外一个优点:不同帧频的动画可以共...
2010-05-13 04:27:00
139
转载 Silverlight技术研讨(3):用CompositionTarget_Rendering实现固定时间间隔定时器
Silverlight技术研讨(3):用CompositionTarget_Rendering实现固定时间间隔定时器Silverlight提供了大致五种定时方式,这篇文章比较了各种定时方式的特点和应用环境。限于篇幅,本文就不赘述了。本文主要讨论实现游戏动画的定时器应用,当然还是针对正在开发的MMORPG游戏。一般来说,除非是很特殊很复杂的应用,storyboard,dispa...
2010-05-12 06:48:00
188
转载 Silverlight开发MMORPG游戏研讨(3):图片资源智能预下载策略
书归正传,继续讨论我们的MMORPG游戏。经过前面两节的技术铺垫,我们可以在这个基础上考虑如何实现游戏中动态下载和缓存资源了。针对不同的资源,不同的用处,我们将采用不同的策略。首先是确定资源部署的位置。根据前一篇文章讨论,我们可以把资源部署到web服务器上xap包所在的目录中,即ClientBin目录中。其次是考虑各种需要动态下载的资源。背景音乐和各种音效,策略最为简单,直接引...
2010-03-25 05:01:00
97
转载 Silverlight技术研讨(2):图片资源引用及动态下载
上一节介绍了Silverlight资源文件动态下载的必要性,同时介绍了用于动态下载的关键技术WebClient。这一节将总结归纳Silverlight中图片资源引用的几种方法,着重介绍动态下载及缓存。还是考虑我们的应用:MMORPG游戏,都需要哪些资源呢?主要有两类,音频文件和游戏图片。其实各类资源的引用方法大同小异,这里仅以图片资源为例,讲述一下各种引用方法。1 图片直接编译...
2010-03-24 05:04:00
84
转载 Silverlight技术研讨(1):WebClient, 文件下载利器
对于小型的Silverlight应用程序,可以把所有内容,包括资源,都包含在一个Xap包中发布。对于开发者来说,是个很便利的选择,可以把更多的精力和时间用到程序的功能方面,提高开发效率。但是对于使用者来说,如果xap文件过大,需要下载几分钟或者更长时间才能看到实际效果,可能是一个很糟糕的用户体验,一定需要很大的勇气和决心才会再次访问。为了解决初始下载主包时间太长的问题,开发者一般会把比较...
2010-03-23 05:05:00
102
转载 Silverlight开发MMORPG游戏研讨(2):同一个世界,不同的认识
上一节的演示改编于深蓝色右手的场景编辑器。深蓝色右手的设计思想是:"一切都源于我们这个真实的世界"。没错,人类的使命就是不断的认识这个世界,征服和改造这个世界。客观世界只有一个,但是每个人的主观感受和认识千千万万,表述也各自不同。很难说哪个世界观更正确,只能说每个人各自用自己的方式来实践这个世界,没有最好的,只有更适合自己的。这一节将解释上一节Xaml布局的三个基本的层。三个基...
2010-03-22 05:40:00
88
转载 Silverlight开发MMORPG游戏研讨(1):游戏布局
前言 最近一直在关注深蓝色右手的系列游戏教程,突然发现制作游戏原来并不是那么遥不可及。感谢深蓝色右手的工作和无私的共享精神,心中久已埋藏的开发自己的MMORPG游戏的梦想又重新被唤起,决定用silverlight打造一款自己想要的MMORPG游戏。尽管深蓝色右手在教程中已经写了很多核心算法和技术,同时公布了源码,但是有些细节的地方还需要自己来琢磨,研究。作者的目的很明确,就是...
2010-03-21 06:08:00
79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人