Java游戏服务器开发和网站,appapp支付宝 服务端开发的开发都差不多的吗

《深度解析Java游戏服务器开发》 何金成【摘要 书评 试读】图书
iPhone/iPad/Mac
Android手机或平板电脑
请输入您的手机号码,获取Kindle阅读软件的下载链接。
您现在就可以在Kindle设备上阅读
没有Kindle设备?,或者下载免费 。
出版社: 电子工业出版社; 第1版 (日)
平装: 378页
语种: 简体中文
25.8 x 18 x 2.2 cm
品牌: 电子工业出版社
ASIN: B01N6G3U3V
亚马逊热销商品排名:
图书商品里排第195,673名 ()
作者简介
何金成,游戏行业开发者,从事于游戏服务器研发工作,曾就职于游戏谷,参与大型3DMMORPG《七雄无双》的服务端研发,后任职熊孩子游戏,并担任Java服务端主程,负责《英雄守卫战》、《王者守卫战》、《国战三国志》以及《英雄对冲》等多款手游的服务端研发工作。腾讯GAD开发社区特约撰稿人。涉猎广泛,擅长Java后端研发,分布式服务开发,同时也精通Cocos、Egret等游戏前端引擎,曾在博客写过不少详细的游戏开发案例,掌握多种技术,并且非常乐于分享,是一位有着游戏梦的游戏开发者。
看过此商品后顾客买的其它商品?
尼斯卓姆 (Robert Nystrom)
平均2.2 星
与其他用户分享您的观点
热门买家评论
于 日版本: 平装
已确认购买
本来不想写评价,但是作者的态度实在不敢恭维,也许作者是资深游戏开发者,但是书中代码不全,上下衔接不对,莫名冒出很多类,但是又完全只字不提;如果想解释原理,那么就侧重说原理,但是每个地方浅尝辄止,点到为止,很多图还是网上的;既不提供代码下载,也不在书中粘贴完全代码,通篇不伦不类,态度敷衍,诚心严重不足。国内技术书的通病,要么翻译烂,要么写的烂,都是转字数钱,都穷疯了么!太不负责,从作者到校订的人,到出版社,都是如此,价格还这么贵,真的无业界良心。
1 个人发现此评论有用. 这条评论对您有用吗?
正在提交你的反馈。
感谢您的反馈。
很抱歉,我们没有记录您的投票。请重试
于 日版本: 平装
已确认购买
1. 无深度, 全是基础知识2. 全书整代码, 为了凑页数全贴上去了3. 行间距非常大, 看似378页, 砍去代码再去掉比别人高出的间距, 呵呵呵整本书拿来了解游戏服务器开发可以, 真实用真的会给人指偏方向, 我也看过作者写过的其他文章, 这本书分明就是赚外快的, 不走心的
这条评论对您有用吗?
正在提交你的反馈。
感谢您的反馈。
很抱歉,我们没有记录您的投票。请重试
于 日版本: 平装
已确认购买
靠基础知识凑字数的入门解析,谎称"深度"
这条评论对您有用吗?
正在提交你的反馈。
感谢您的反馈。
很抱歉,我们没有记录您的投票。请重试
于 日版本: 平装
尤其喜欢 第9章《皇室战争》,把一个游戏的开发流程讲解的很清楚,适合我这种半路出家的人。还有楼上的,你倒是说说怎么算“深度”,能教会我东西,能开发项目,就是好书,因为一个词就给人差评,也太不讲究了
这条评论对您有用吗?
正在提交你的反馈。
感谢您的反馈。
很抱歉,我们没有记录您的投票。请重试
于 日版本: 平装
作者写得比较随意,内容太过粗略笼统,没什么参考价值和意义。
这条评论对您有用吗?
正在提交你的反馈。
感谢您的反馈。
很抱歉,我们没有记录您的投票。请重试
查找其它相似商品
深度解析Java游戏服务器开发 [平装]
现在有货。
此商品可享受图书满59元
查看产品详情页面完毕后,在此处了解返回您感兴趣的页面的方式。
查看产品详情页面完毕后,在此处了解返回您感兴趣的页面的方式。Java在游戏服务器开发中的应用
发表于 15:55|
作者王广帅
摘要:随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。触云游戏公司选择使用Java做服务器开发语言,一起来看下Java在触云游戏服务器开发中的应用。
随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。网络游戏开发是一个庞大的体系,总体来说是客户端与服务器端。客户端是玩家接触的游戏图像显示端,服务器是处理游戏运行中的各种数据,由于一台服务器要支持众多玩家的请求,所以服务器的性能高低决定了同一个游戏的用户数量。我们公司选择使用Java做服务器开发语言,主要原因是:1.Java是跨平台的,方便部署;2.Java是安全的高级语言,可以提高开发效率;3.Java是面向对象的,代码可以重用;4.Java的分布式应用。图1 服务器架构图服务器架构Java在我们的服务器开发中的应用。服务器架构如图1所示。服务器架构的几个模块:登录服务器逻辑服务器用户中心服务器充值服务器数据库服务器日志服务器这些模块都是分开的,可以灵活地分布式部署到不同的物理服务器上。只需要修改一些配置文件即可,非常方便。服务器详细功能模块登录服务器负责处理玩家登录的请求。一个登录服务器对应多个游戏逻辑分区。当玩家登录的时候,登录服务器向用户中心服务器发送登录信息。请求对登录信息的验证。通过验证之后,返回分区地址,之后,客户端与登录服务器断开,连接到游戏逻辑服务器。登录服务器是一个单独的Java运行程序,当访问量增加大,可以增加部署到多个物理服务器上面,均衡负载访问压力。它通过使用Java的NIO(非阻塞)方式与客户端进行通信。通过用户中心服务器提供的接口访问用户中心,进行数据处理。逻辑服务器对玩家的操作进行逻辑处理。逻辑服务器是整个游戏的心脏。它的工作效率直接影响玩家在游戏中的体验,所以对它的要求就是速度,快速返回处理结果。为了达到满足要求的速度,逻辑服务器的大部分操作必须在内存中操作,避免I/O操作,I/O操作可以放到另外的线程中进行。说是大部分,是因为玩家在第一次登录的时候可能会从数据库加载所要用到的数据。在图中,大家看到了缓存,缓存的作用就是把数据放在内存中。当玩家退出时,它的数据也会在缓存中保存一段时间,在一定时间内,玩家再次登录,将不会再重新从数据库加载数据。在逻辑服务器中对数据库的操作可以先放入一个Java队列中,再另起一个Java线程负责从这个队列取数据,并发送到数据库服务器,这就是使用Java的阻塞队列,快速实现一个生产者—消费者模式,数据生产与处理相分离,这样既减轻了逻辑服务器的压力,也保证了数据处理的效率。逻辑服务器的日志也不在逻辑服务器入库,同样的发送到日志服务器处理。还有一种方法是以一种特定格式的方式,记录到本地文件中,再启动一个进程,读取这个文件,然后入库。用户中心服务器现在很多游戏都对用户进行了集中管理。这方便了对用户提供更好的服务,比如充值、活动、礼包领取、新游戏导入用户等。有的游戏公司可能会用用户中心的数据发展游戏运营平台。这部分与游戏逻辑服务器分开,也减少了游戏逻辑服务器的压力。用户中心采用JavaWeb开发,它对游戏服务器只提供特定访问的接口,把数据与逻辑分离开来,方便管理,以及分布式部署,增强了架构的灵活性。充值服务器充值是游戏收入的唯一方式,所以这个功能必须流畅,毫无压力。如果由于网络或服务器性能原因,导致玩家充值不了,会直接影响收益的。所以充值服务器最好部署在一台单独的物理机上面,也可以多个分区使用一个充值服务器,这要视游戏人数而定。数据库服务器负责对数据入库及更新的操作。把这部分操作从逻辑服务器分离出来,就是为了减轻逻辑服务器的压力,减少逻辑服务器资源的占用。而且,如果逻辑服务器突然宕机的话,也能尽量保证数据少丢失。为了保证对数据的更新是顺序性的,这里把数据入库的操作使用队列单线程化。逻辑服务器与数据库服务器通过Java的TCP/IPSocket进行长连接,而且为了防止由于意外原因导致连接中断,在逻辑服务器与数据库服务器之间加入了一个心跳连接,这样短暂的中断可以被很快恢复,防止数据的丢失。日志服务器处理玩家日志的入库。日志入库方便游戏运营管理游戏,统计玩家信息。当玩家人数比较多的时候,日志也会占用很多资源。所以把日志从逻辑服务器也分开了,因为日志只是插入操作,所以可以开几个线程进行并发插入到数据库。线程数要根据你数据库的连接池的最大连接数进行设置,要不然会导致连接资源被占完,数据插入不了数据库。注意事项在游戏服务器开发中,有几个需要注意的问题。通信协议开始的时候,我们为了快速开发,采用了JSON的变长协议处理方式,即把要传送的数据编码成json的字符串,再把json字符串转化为字节数据,传输过程中包的总结构为:总包长度(int四个字节)+消息长度(int四个字节)+消息体,即数据长度,n个字节。这样做的好处是可以快速开发,缺点是在传输过程中无效的字节太多。而且这部分完全可以用代码自动完成。后来我们采用Java的反射机制,从定义好的xml描述协议文件中读取传输的内容格式,自动化生成传输的对象,在发送信息时,根据这个对象再把数据转化为二进制的数据流,解析的时候,同样也根据xml的描述文件,按顺序读取数据并转化为对象的JavaBean对象。如果时间充足,在游戏开发前期应该把这个做好。多线程并发游戏服务器是一个多用户的环境,其中多线程是必不可少的,它可以提交程序对CPU的利用率,提高处理性能。但它也有一个致命的缺点,就是在多线程下,数据同步的问题。因为在目前多核CPU下,线程算得上是可以并行执行的了。比如竞技场中的排行榜,每个玩家的名次变化都会对排行榜进行操作。如果不考虑数据同步的话,每个玩家可以随意更新排行榜,那这个排行榜的数据就会非常乱,名次也不正确。这个时间就需要保证在一个玩家更新排行的时候,其他玩家不能更新,只能阻塞等待。一般有两种方法可以解决:1.直接使用锁,当一个玩家更新排行榜时,使用锁锁定排行榜集合,让其他玩家不能再对排行榜操作,Java有自带的两种方式,非常方便,一个是Lock接口,一个是Synchronized;2.使用乐观同步,这种方式需要自己额外实现,之所以说是乐观,是因为它有可能执行失败。原理是当我取数据时,获得一个数据的一个版本号,而当写入数据时,如果版本一致,可写入,如果版本不一致,就需要重新获取数据,执行逻辑,直到版本一致后写入。可以设定重复次数,达到这个次数后,还没有成功就判定失败。根据我们目前的运行环境,我们采用了第一种方式。
均衡负载一台物理服务器的处理能力是有限的,对于可能支持数据众多的游戏服务器来说,分布式部署和动态添加服务器是不可缺少的。在逻辑上,可以把需要集中处理,与逻辑运算关系不大的模块单独部署。比如登录服务器、地图服务器、聊天服务器、数据库服务器等。像我们把登录服务器和数据库服务器分离开就是为了减少逻辑服务器的压力。缓存的设计起初,为了快速敏捷开发,我们采用了一级缓存方式,即图1中的Redis缓存,它是一个分布式的缓存,内部通过Socket连接。在玩家第一次进入游戏的时候会把玩家数据从数据库加载到Redis缓存之中,再取数据只从缓存中取。后来为了更加提高处理速度,增加了二级缓存,即内存缓存,利用Java提供的Map、List等集合保存数据,开发了一个基于内存的缓存构架MemoryCacheTool,对外只提供操作接口。由于是直接从内存中读取或写入数据,其速度相对于Redis提高大约20%左右。总结Java是一门安全、高效、跨平台的语言,它在游戏服务器开发过程中可以提高开发效率,减少异常,增强程序的健壮性。它很容易实现各个功能的衔接,方便后期的维护。
王广帅作者简介:王广帅,网名wgslucky,2011年毕业开始参加工作,一直从事于游戏服务器的开发工作。现任北京触云科技有限公司服务器端技术主程,是一名技术狂,热爱读书,喜欢挑战,热衷与技术同道分享交流游戏开发方面的技术。本文选自程序员电子版2015年5月B刊,该期更多文章请查看。2000年创刊至今所有文章目录请查看。欢迎(含iPad版、Android版、PDF版)。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章智联提示您:用人单位以任何名义向应聘者收取费用都属违法行为(如押金、资料费、代收体检费、代收淘宝信誉等),请提高警惕并注意保护个人信息!
您当前所在位置&&&当前页面
java高级工程师/java服务器开发工程师/app研发工程师
五险一金绩效奖金年终分红带薪年假弹性工作节日福利
职位月薪:元/月
工作地点:
发布日期:15天前
工作性质:全职
工作经验:1-3年
最低学历:大专
招聘人数:2人
职位类别:
职位描述:1.设计和开发游戏服务器端,包括服务器结构和逻辑、通信协议;2. 负责游戏服务器端功能模块的设计及实施;3. 跟客户端,策划和项目经理协调游戏的需求和技术。&&职位要求:1.大专及以上学历,二年以上工作经验;2.精通 JAVA 、 XML 语言;3.熟悉 J2EE 技术构架;4.熟悉设计模式;5.熟悉 Spring 、 ibatis 或 Hibernate 、 Ant 或 Maven 、 Log4j 等开源框架;6.熟练操作 Linux/Unix 操作系统,有 Shell 脚本编程为佳;7.熟悉 JAVA 网络编程,有 MINA 和 NETTY 框架开发经验优先;8.熟悉 JAVA 多线程并发编程;9.熟悉数据库开发,应用过 MySQL 数据库,熟悉 SQL 语言;10.有良好的编码和撰写文档习惯;11.独立的软件设计和开发能力,能够承担产品的主要设计;12.有良好的学习能力、技术创新能力、沟通协调能力。&&福利待遇:1.薪资:基本工资+岗位工资+学历津贴+保密津贴;15K-20K2.社保:五险一金3.工作时间:弹性工作,周末双休,带薪国定假;4.节假日福利、绩效奖金、年终奖金;5.办公环境舒适、工作氛围轻松、提供咖啡、点心等福利。
工作地址:
上海快展信息科技有限公司
快展团队是由一群激情四射、才华洋溢的年轻人组成。代表了这个时代每个为追求梦想而奋斗的人!我们向往自由,无论是宽松的管理体制还是融洽的同事关系;我们热爱生活,无论是热情洋溢的娱乐活动还是享受闲情雅致的休闲时光;我们崇尚职业,无论是追求理想还是实现自我价值;我们以人为本,为怀揣理想的伙伴提供无限的职业发展空间和丰厚的福利待遇!
最新职位推荐
今日相似推荐
地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海
地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海
公司规模:20人以下
公司性质:合资
公司行业:
公司地址:
上海市长宁区协和路787号D南6楼创合公社
您也许对以下职位类别感兴趣:
热门职位推荐:&&&&深度解析Java游戏服务器开发
自营订单满39元(含)免运费
不足金额订单收取运费5元起
邀请好友参加吧
版 次:1页 数:字 数:印刷时间:日开 本:128开纸 张:胶版纸印 次:1包 装:平装-胶订是否套装:否国际标准书号ISBN:1所属分类:&&&
下载免费当当读书APP
品味海量优质电子书,尊享优雅的阅读体验,只差手机下载一个当当读书APP
本商品暂无详情。
当当价:为商品的销售价,具体的成交价可能因会员使用优惠券、积分等发生变化,最终以订单结算页价格为准。
划线价:划线价格可能是图书封底定价、商品吊牌价、品牌专柜价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品曾经展示过的销售价等,由于地区、时间的差异化和市场行情波动,商品吊牌价、品牌专柜价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:折扣指在划线价(图书定价、商品吊牌价、品牌专柜价、厂商指导价等)某一价格基础上计算出的优惠比例或优惠金额。如有疑问,您可在购买前联系客服咨询。
异常问题:如您发现活动商品销售价或促销信息有异常,请立即联系我们补正,以便您能顺利购物。
当当购物客户端手机端1元秒
当当读书客户端万本电子书免费读

我要回帖

更多关于 app支付宝 服务端开发 的文章

 

随机推荐