快速业务通道

Java游戏中延迟下载资源及调用示例 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

Java游戏中延迟下载资源及调用示例

时间:2011-01-26 cping

老实说,延迟下载游戏资源及调用只是一种辅助手段,与游戏开发本身关系并不大,实质也无非只是文件下载及文件读取的混用。但考虑到上周有网友问及此类问题,笔者觉得与其回邮件单独解释,倒不如写篇博文看起来更具体清晰,还能令大家帮助笔者斧正刊误,故成此文,仅供参考。

一般来讲,我们之所以会需要通过下载方式加载游戏资源,无非是出于如下几种目的:

1、精简游戏体积:

假设我做了个100MB的游戏,却非想把它宣传成仅有1MB的精巧程序,这时我该怎么办呢?

去欺骗用户,用大量复杂的技术名词忽悠他们说1MB和100MB等值吗?——用户不是傻子,至少不都是傻子,无论你的话术多么巧妙,也很难让绝大部分人都相信1MB和100MB是一样的。但大话已然出口,始终要想办法解决。

其实呢,在现有技术体系下,要搞定他们好简单的,只需将游戏初始界面混合下载器打包成1MB的文件发布,再“骗”他们下载执行,而后——就让他们慢慢等待系统加载剩下那99MB吧!毕竟没人说过这个游戏不需要额外的网络资源同步嘛……

2、网游资源的延迟加载需要:

目前的网络游戏——特别是网页游戏,为了尽可能的减少不必要的资源损耗,提高运行效率,大多数时候并不会一口气将所有资源都加载到游戏中,而是“大而化之,分而治之”,将游戏资源构建成一个个小小的资源包,仅仅在需要时,才或同步、或异步的加载到游戏中。这也正是我们在很多网游中所见到的,当角色过屏、读取新地图或遭遇新怪物时,画面会出现稍候字样或者部分马赛克乃至停顿的原因。

故此,通过网络适时地去加载需要的资源,几乎已成为网游开发中必不可少的技巧之一。

3、融入特殊的加密解密机制:

我们都知道,但凡是人所做出的程序,就没有人所不能破解掉的。但是——却很可能发生一个人做出来的程序,另一个人数年之内无法破解的现象。而当数年之后,另一个人破解出来时,这段程序却早已过气,白送都没人要了。

因此,当你极端的不想自己游戏被反向工程——尤其是想保护Java这种极好反编译的代码时,通过网络下载的另一种意义便显现出来了。你可以将下载的jar 或class乃至其它种种保存到一个不同于执行目录的“隐秘”场所,并且无论密钥也好,特殊结构也罢,总之变着方的将资源加密混淆,就算混淆到连你自己都不知道这是什么东西也无所谓——能解释成字节码就好,最大限度的增加反向难度。而当你执行完毕,再一删了事——下次还可以再下嘛。这样做的话,虽然不能彻底杜绝代码被他人盗用,但,至少也可让反向我代码那哥们累掉层皮(^^)。

4、本地程序及资源合法性验证:

在大多数网络游戏中,为了保证用户不做出一些诸如使用外挂的“犯规”行为,是会对系统环境乃至封包数据进行合法性验证的,而一旦发现“非法”的东西存在,则会令“违法”玩家吊线或者干脆封号以示惩罚。

但这些验证,主要都只针对程序“外部”,即当“犯规”对象“不是我的游戏时”才能发挥功效,但万一“犯规”者“来自游戏本身时”或者“验证程序认为来自游戏本身时”,则变得无能为力,这也是为什么大多数网游都“内挂”泛滥的缘故。

幸运的是,Java程序由于其“天资所限”,是很难在虚拟机外部被攻破利用的,如果用Java制作网游,原则上大可不必担心“内挂”问题——但,这也有个大前提,那就是在“内挂”运行于虚拟机之外时才行的通。

而如果“内挂”运行在

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号