仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 454|回复: 7
打印 上一主题 下一主题

[学习教程] 发布一篇Java游戏中提早下载资本及挪用示例

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net网页编程比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。
厚道说,提早下载游戏资本及挪用只是一种帮助手腕,与游戏开辟自己干系其实不年夜,本色也不过只是文件下载及文件读取的混用。但思索到上周有网友问及此类成绩,笔者以为与其回邮件独自注释,倒不如写篇博文看起来更详细明晰,还能令人人匡助笔者匡正刊误,故成此文,仅供参考。
一样平常来说,我们之以是会必要经由过程下载体例加载游戏资本,不过是出于以下几种目标:
1、精简游戏体积:
假定我做了个100MB的游戏,却非想把它宣扬成唯一1MB的精致程序,这时候我该怎样办呢?
往棍骗用户,用大批庞大的手艺名词忽悠他们说1MB和100MB等值吗?——用户不是傻子,最少不都是傻子,不管你的话术何等奇妙,也很难让尽年夜部分人都信任1MB和100MB是一样的。但诳言已然出口,一直要想举措办理。
实在呢,在现有手艺系统下,要弄定他们好复杂的,只需将游戏初始界面夹杂下载器打包成1MB的文件公布,再“骗”他们下载实行,尔后——就让他们渐渐守候体系加载剩下那99MB吧!究竟没人说过这个游戏不必要分外的收集资本同步嘛……
2、网游资本的提早加载必要:
今朝的收集游戏——出格是网页游戏,为了尽量的削减不用要的资本消耗,进步运转效力,年夜多半时分其实不会一口吻将一切资本都加载到游戏中,而是“年夜而化之,分而治之”,将游戏资本构建成一个个小小的资本包,仅仅在必要时,才或同步、或异步的加载到游戏中。这也恰是我们在良多网游中所见到的,当脚色过屏、读取新舆图或遭受新怪物时,画面会呈现稍候字样大概部分马赛克以致停留的缘故原由。
故此,经由过程收集合时地往加载必要的资本,几近已成为网游开辟中必不成少的技能之一。
3、融进特别的加密解密机制:
我们都晓得,凡是是人所做出的程序,就没有人所不克不及破解失落的。可是——却极可能产生一团体做出来的程序,另外一团体数年以内没法破解的征象。而当数年以后,另外一团体破解出来时,这段程序却早已过气,白送都没人要了。
因而,当你极度的不想本人游戏被反向工程——特别是想回护Java这类极好反编译的代码时,经由过程收集下载的另外一种意义便展现出来了。你能够将下载的jar或class以致别的各种保留到一个分歧于实行目次的“秘密”场合,而且不管密钥也好,特别布局也罢,总之变着方的将资本加密搅浑,就算搅浑到连你本人都不晓得这是甚么工具也无所谓——能注释成字节码就好,最年夜限制的增添反向难度。而当你实行终了,再一删了事——下次还能够再下嘛。如许做的话,固然不克不及完全根绝代码被别人盗用,但,最少也可以让反向我代码那哥们累失落层皮(^^)。
4、当地程序及资本正当性考证:
在年夜多半收集游戏中,为了包管用户不做出一些诸如利用外挂的“犯规”举动,是会对体系情况以致封包数据举行正当性考证的,而一旦发明“不法”的工具存在,则会令“守法”玩家吊线大概爽性封号以示处分。
但这些考证,次要都只针对程序“内部”,即当“犯规”对象“不是我的游戏时”才干发扬功能,但万一“犯规”者“来自游戏自己时”大概“考证程序以为来自游戏自己时”,则变得力所不及,这也是为何年夜多半网游都“内挂”众多的原因。
侥幸的是,Java程序因为其“资质所限”,是很难在假造机内部被攻破使用的,假如用Java制造网游,准绳上年夜可不用忧虑“内挂”成绩——但,这也有个年夜条件,那就是在“内挂”运转于假造机以外时才行的通。
而假如“内挂”运转在假造机以内呢?假如我的“内挂”是一小段拔出原始游戏中的代码呢?要晓得,静态加载class,静态修正字节码,早就不算甚么事变了。
这时候,就必要校验Java程序的正当性。
原本要考证这类事变是对照泯灭工夫的,但假如我们擅长使用每次下载资本(对照年夜的,好比过图大概游戏更新),假如不但单“下载”,更同步“下行”,使用空档同服务器校正当地Java程序的正当性及完全性,便能很年夜水平上制止这类偶然义的校验工夫华侈。这时候出缺少的文件便增加,有过剩的——也就是呈现不应存在的Jar或class以致原始字节码修正,便借机强行“咔”失落它,以免它“为祸人世”。
<p>
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
再见西城 该用户已被删除
沙发
发表于 2015-1-20 13:41:45 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-29 08:17:33 来自手机 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
老尸 该用户已被删除
地板
发表于 2015-2-5 14:43:59 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-12 06:54:45 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
深爱那片海 该用户已被删除
6#
发表于 2015-2-27 05:10:21 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
乐观 该用户已被删除
7#
发表于 2015-3-8 21:21:23 | 只看该作者
是一种突破用户端机器环境和CPU
活着的死人 该用户已被删除
8#
发表于 2015-3-22 23:11:14 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 20:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表