发现一个优秀的Java版国人仿曹操传游戏

终于又看见有国人用Java写J2ME以外的游戏了,先让偶们一起为作者的开创精神而叫声好吧!

该作者博客如下:http://www.cnblogs.com/egriahttp://salin.javaeye.com/

以下为引用作者原文:

————————————————————————————————————

自从第一次接触红白机开始,我就爱上的电子游戏,小学时候经常偷偷跑去游戏厅玩然后被老妈抓回来。

后来有了电脑之后,更是一发不可收拾,从炎龙骑士团,仙剑奇侠传,曹操传,到幽城幻剑录,三国志系列,等等等等,这些优秀的游戏都让我很疯狂的喜爱。

可是现在,在21世纪里,中国的游戏业没落了,尤其是单机游戏产业。现在,在国内,剩下的似乎只有网游这么多年来,几乎没有什么国产的策略类游戏问世,现在光荣这个日本公司几乎成了三国系列游戏的代替名词在国内,只有一些SLG的爱好者,在做着曹操传的MOD

引用<把《三国》从光荣手中抢回来>的原话

    对于《三国》这个话题,我并不想多作评论,因为人们已经谈论了一千多年,其中的好坏人们心中自有定论,况且以我肚子里的那点墨水也是吐不出个象牙来。所以我今天只想谈谈《三国》的游戏,据不完全统计三国题材的游戏到目前为止大概有100个左右,以同一题材使用率来算,三国是世界上用的最多的游戏题材。这是中国的骄傲,也是中国的耻辱,因为这些游戏作品大多数是外国人做的。打个比喻:就好像有个人拿了你的家传之宝,然后将它卖给你,而且你还要感谢他。世上有这样的道理吗?没有!但有这样的事实。至于那些国产的三国游戏我已不想多说一句话。(首先声明我是个100%爱国者)在这100个三国游戏作品当中我只玩过50个左右,其中感觉最好的要数(光荣)公司的作品,我想大多数三国游戏迷都会认同。可是光荣的作品也不是完美的,还有很多可以改进的地方,也就是说把《三国》从光荣手中抢回来还是有可能的,只要你想、你敢、你要。


    如果游戏是一种艺术,那么(光荣)、(暴雪)就是一位艺术家,而国内的游戏公司只能算是个艺术贩子。国产的策略游戏我都玩过,给我的感觉就像一个没有艺术细胞的小学生抄别人的美术画。看着这些画我不禁心如刀割,(你要抄也该抄好一点啊!!!)我一次又一次地抑天长叹,中国的人才都哪里去了!后来我终于想明白了,原来艺术贩子只是一个商人,他永远也不会成为一个艺术家,因为他目光太短浅了,就算他有艺术的天分也会被埋葬的,眼前的蝇头小利足以让他欢天喜地心满意足。

2010年1月的某一天,我突然想到我会写代码,为什么我不能做游戏?

于是经过几个月的努力,一个SLG游戏的引擎完成了。确实,大家都清楚国内单机游戏的大环境,很多人会说做游戏没钱途这类SLG游戏其实在国内有着很广大的用户群体,只是稀有这类游戏。如果有人能资助我做游戏那该多好。

附作者游戏截图:

 

发现一个优秀的Java版国人仿曹操传游戏_第1张图片

 

发现一个优秀的Java版国人仿曹操传游戏_第2张图片

 

发现一个优秀的Java版国人仿曹操传游戏_第3张图片

 

发现一个优秀的Java版国人仿曹操传游戏_第4张图片

 

 

下载地址:http://www.rayfile.com/files/8e0ec268-3719-11df-a69a-0015c55db73d/

——————————————————————————————————————

关于此游戏,睡觉前偶粗略的看了一下,由于该作者混淆了源代码,只粗略的谈谈大致印象。


首先,这是一个总体类似于《龙退治》(http://blog.csdn.net/cping1982/archive/2009/11/12/4804265.aspx )的游戏,而且也采取了同类的对象序列化存储方式。

目前来看,该游戏中尚不存在分支剧情,只是由几个战场和大地图串联而成,类似于梦幻模拟战性质的过一关打一关,深入优化的潜力非常之大。

其次,除一些散置的图像与音频文件外,作者将大部分文件都复合于scenario和dat文件夹下的.dat后缀文件中,并且其非常慷慨的没有进行任何加密,因此我们能轻易的将它们提取出来。

 

发现一个优秀的Java版国人仿曹操传游戏_第5张图片

 

此外,应该是由于刚刚起步的关系,在吾辈的“万用XP环境”下(经吾辈多年调教而成的,几乎不需要再安装任何组件就能跑所有应用的传说中XP环境~~~)以该游戏自备的JRE1.6.0_17运行游戏黑屏,以本地JRE1.6.0_18运行依旧黑屏,尝试以JRE1.5.0_09运行照样黑屏,转换到Windows7系统后正常。


XP(偶机器上杯具了):

 

发现一个优秀的Java版国人仿曹操传游戏_第6张图片

 

Windows7:

 

发现一个优秀的Java版国人仿曹操传游戏_第7张图片


关于这点,个人建议作者在主循环调用BufferStrategy的show()函数后,还是该加上Toolkit.getDefaultToolkit().sync(),这样才能确保系统屏幕确实刷新(说句谁也看不懂的题外话,其实吾辈真不是近视),因为某些环境可能不支持自动更新屏幕。另外在插入Canvas后建议调用一次它的invalidate(),才能保证重绘画布被执行。

再者,某些时候资源加载部分会造成溢出。

Exception in thread "Egia-Sango1" java.lang.OutOfMemoryError: Java heap space
    at org.liongames.e.d.a(Unknown Source)
    at org.liongames.zlzm.a.a(Unknown Source)
    at org.liongames.zlzm.c.aK.a(Unknown Source)
    at org.liongames.k.c(Unknown Source)
    at org.liongames.zlzm.b.h.a(Unknown Source)
    at org.liongames.b.d.a(Unknown Source)
    at org.liongames.b.a.h.a(Unknown Source)
    at org.liongames.b.s.g(Unknown Source)
    at org.liongames.k.g(Unknown Source)
    at org.liongames.j.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

大约为图像资源未释放的缘故,一般而言,鄙人不建议直接使用ImageIO处理图像。而且Image缓存清空的默认前提为缓存量大于200隐患太大,因为您无法控制掌握每个加载图像的准确大小,有可能一次主循环后就超过内存最大值。这里有三种解决方法,一是每次加载前测量一下Image占用空间,累加大小大于一定程度直接清空;二是选一个很小的清空条件,个人觉得还是30比较合适;三是开启内存监控,内存接近峰值后清空所有缓存数据。

最后,如果作者真想以此盈利的话,无非是四条道:一是普通手机路线(J2ME),二是智能机路线(Android),三是网页游戏路线(Applet/JavaFX),四是收费桌面游戏(这部分就比较杂了,比如JME引擎主页就给出了一些以它开发的3D收费游戏截图,而且Java桌面应用转网页也很简单)。目前来讲,个人开发还是搞Android比较容易(只要学会跨国收钱的话……),因为适当封装后Android和J2SE几乎可以做到通用(当然,将Android贴近J2ME封装也不是不行,但那是一种弱化),非常适合将桌面游戏调试好后移植到手机发布(好吧,我就是在指鄙人写的LGame框架及其Android版,目前Android版有八成功能已可与桌面版通用,而且Android版内置Admob,默认提供有三种广告展示模式……咳咳……)。

具体到此仿曹操传游戏的盈利,可以去轩辕春秋文化论坛的相关MOD版块寻求合作,此处是该游戏发烧友聚集区,以前也出现过将改版后的曹操传MOD发售盈利的事情(据说也卖破万了)。但那毕竟是原版外挂代码改出的“纯山寨”,如果能提供有深度的,自主产权的完整版游戏,我相信愿意花钱购买者不会太少。

总之,非常期待作者能把这个项目做大做全,为吾辈Java人扬眉吐气。

你可能感兴趣的:(java)