智多星威客网托管任务完美国际赏金任务是什么意思

智多星威客网:怎样开发网页游戏服务器端
&尽管网页游戏开发应用的是服务器端脚本编写,但是它的运行还是需要一定的客户端技术支持的,比如网页浏览器,或者浏览器上常用的一些插件,如Java或者Flash。最新的网页游戏典型应用是大型多人在线角色扮演游戏。
  最近参与开发了一款网页游戏,网页游戏和普通客户端游戏不同,虽然都可以称为网络游戏,从服务器角度来说,网页游戏所承载的用户量是很少的,一般一组服务器3-4000玩家同时在线。当然,技术含量也相对较低。开发周期短,一般为4-5个月。现在就网页游戏后台开发的技术,谈谈自己的看法。
  首先是网关,所有玩家进入游戏,都是同网关连接,网关起着隔离游戏逻辑服务器和玩家的作用,保护游戏服务器内部不受外部玩家有意或无意的攻击。一般一个网关下面会挂上多组地图服务器,网关将用户逻辑转发到地图服务器上做具体的处理,处理完成后,地图服务器将处理结果送回网关,网关再转发给玩家。乍一看,网关似乎有可能成为性能瓶颈,确实是性能瓶颈。在网络游戏中,单个客户端上行流量是很小的,一般客户端都会做控制,在战斗和行走的时候,客户端没秒钟基本上只会有3条上行数据,但是下行广播数据是非常庞大的,曾经测试过300人同屏在线,每秒钟3个位置更新消息,广播量基本上是300*300*3=270000条消息,假如服务器为每一条消息调用一次send系统调用,那么意味着每秒钟27万次系统调用,是多么的庞大啊!
  一般网关前端收发消息部分毫无疑问会采用epoll的边缘出发模式(非阻塞),多线程收/多线程发。客户端发上来的消息,通过网关路由到地图服务器做具体的逻辑处理,对于地图服务器通常都是一个服务器对应一副或者多幅地图,在这个地图上玩家发生的所有事件,都有这个服务器来处理,地图服务器采用单线程/单进程这种模式,主要是保证游戏逻辑的顺序处理。评价地图服务器处理能力的一个指标是地图服务器可以支撑多少怪,多少玩家,因为怪的AI都在服务器这边做,服务器需要主动触发事件,广播给玩家,这个时候timer是不可缺少的资源,timer开得越多,系统性能也就越差了。
  另外,有一种简单的处理方式,开一个timer,几十毫秒统一处理一下地图中的事件,比如补怪等。对于数据库访问这一块,目前很多网页游戏开发,都使用的是和mongodb类似的内存数据库,是不是可以不采用cache,而直接访问数据库了呢?答案是错误的,根据具体情况来定吧,基本上到最后,性能瓶颈都会在数据库I/O这一块了,主要是读。对于一些访问量比较大的业务,比如,任务,战斗,背包等,肯定是读缓存,写缓存和数据库同时进行。再切地图和玩家下线时,清掉内存中的信息。原则上是服务器需要处理所有业务逻辑,所有接入游戏服务器的客户端都需要在网关进行鉴权认证,只有合法玩家才能接入游戏逻辑服务器。
  为了不使网络延时导致玩家体验感下降,在及时战斗的时候,客户端需要先播放模拟打斗的动画,由服务器进行验证。不同地图消息的转发在地图管理器上面进行,地图管理器是一个进程,维护了所有地图服务器的连接,所有消息转发都在地图管理器来完成。同时,为了减轻网关的压力,一般一个网关接入的1000人左右,分多个网关,不同网关的玩家信息,通过地图管理器来转发。以下是服务器选择性的用到的一些开源的软件,并在此基础上做了封装:json4cpp、log4cpp、libevent、ACE、boost、mongoclient。
  一个网页游戏开发要做大做强,首先要考虑的就是服务器端要如何实现,这样才能稳定网页游戏的运行,让游戏者能够轻松的玩这个游戏,让游戏者好好的体验游戏的稳定。网页开发、网页游戏设计、网页设计师、网站维护、网站更新就上智多星威客网,现在注册还送200元现金红包!网址:
www.zhiduox.com
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。智多星威客网:浅谈Java桌面应用程序开发
Java对于服务器,个人电脑和移动设备来说是一项伟大的技术.由于需要java的跨平台的特性,因此java在服务器和移动设备方面的应用是非常成功的。但java在个人电脑应用方面的情况和在服务器及移动设备方面的应用有所不同,但是这很快就会有所改变,至少比你想象得要快。在这篇文章中,我会分析一下java在桌面环境中的应用将怎样得到提升,然后具体说一下java
GUI(用户图形接口)的三个主要的工具:AWT, Swing,
和SWT.。在下文中,我将会开发一个完整的java桌面应用程序.
  Java与桌面端
  现在,流行的桌面平台要数Windows、Mac、and
Linux了。但它们不是十全十美的,Windows主宰着桌面操作系统的市场,其上有巨大的应用和开发群体,但它昂贵且有许多安全漏洞。Linux有着稳固的基础,它是开源的软件,比Windows更可靠。Macs非常容易操作且不是黑客的目标,但与Windows和Linux比起来,Mac的硬件和软件可选的余地非常的有限。公司和个人选择他们的操作系统基于许多因素。花费少且安全性高是首选的因素,这导致一些组织从Windows
系统转而选择Linux。对许多用户来说,可用性及对原有应用程序的支持是非常重要的因素,这意味着Windows
将继续享有巨大的市场。Mac有其自己忠诚的用户,这使得苹果机仍然可以存活,Linux
在桌面的流行及Mac的成功创造了多样性,这种多样性正是Java需要的,这种多样性使得Java在桌面有举足轻重的地位。
  跨平台的支持
  Java 运行于所有相关的操作系统,包括Windows、
Mac和Linux。对于任何组织,他想把现有的应用从一个操作系统移植到另一个操作系统而不用做太多的改动,那么Java正是他们首选的桌面开发平台。或许用微软的可视化工具很容易构建.NET应用,但是这将使你被绑定在了Windows平台上了。
很多人也许想立刻用Linux 代替Windows
从而避免由微软件操作系统的漏洞带来的问题。用户不能容忍的问题之一是当从Windows移植到Linux带来的巨大的费用。如果你的应用程序用Java构建,你就没有了这些问题,Java的图形用户界面看上去会跟你用的操作系统一样,而并不需要做什么改动。
假如有一天又有一种桌面操作系统出现的话,java 是个安全的赌注,因为它现在能够运行在Windows和Linux
上,那么可以推测它也可以运行在将来可能出现的操作系统上,这些操作系统可能或迟或早地由微软,或是开源社区,或是其它的人开发出来。
  丰富的特征
  最初,Java只有非常有限的一些特征去构建图形用户界面。思想就是用平台无关的Java应用程序接口打包不同的操作系统的本地图形用户界面,称之为抽象的窗口工具。仅有普通的部件如文件域、文本区、选择框、单选按钮、列表框和按钮被AWT支持,图形和图像的特性支持非常有限,也就是说,只足够构建简单的applet程序。
认识到需要更高级的图形用户界面组件和图形能力,Sun公司开发了Swing,Java 2D,Java
3D,图像的输入/输出,和很多其它的。这些中的一些窗体组件现在已经是Java
2标准版(J2SE)里的一部分,并且其它的一些扩展必须和你的应用程序打包在一起。例如Swing、Java
2D、图像的输入/输出都是和Java运行环境一起提供。让我们不要忘了J2EE平台。如果你开发服务器端的应用程序并且需要丰富的图形用户界面,那么你毫无疑问应该选择Java。这允许你把服务器端的一些代码移到客户端,反之亦然。例如:一个项目可能开始是基于WEB和图形界面,在某些时候,用户可能要求图形元素不能在HTML中实现,如果你选择java做客户端应用,那么你可以重用这些当初用来做服务器端的代码。如果你用远程调用,一些类会真正地实现服务器和客户端的共享。通过页面服务器,Java桌面应用也能够和其它的Java
或非Java应用程序通信,如CORBA, TCP/IP,或是 HTTP。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 猪八戒托管赏金怎么退 的文章

 

随机推荐