10大优享服务
62项会员特权

必须知晓的Jave游戏开发注意事项

发布时间:2021-12-01 08:10:12     阅读次数:11486次     评论数:0次

    以目前的形式来说,很多年轻人对于游戏的热衷度一直在上升的状态,因此,这是因为年轻人对Jave游戏开发需求量非常的大,才让很多游戏开发商开始驻足于Jave游戏开发。而相比传统的游戏模式,现在的游戏开始向3D转化,而且游戏开发也应该要注重形式的要求,注意市场的不断变化。

必须知晓的Jave游戏开发注意事项

    1、始终以接口方式转换监听及处理图像绘制,务必将视图及逻辑层分开。

    针对一些混合类型的游戏,比如SLG+AVG、RPG+STG,我们将面临不同模式下游戏的监听器及绘图器切换问题。这时最简单的抉择莫过于为每一个游戏类型都订制一个对应的面板进行切换,这样虽表面上方省心,但却也是最费力而不讨好的,且不说闪烁问题需要单独解决,资源占用问题,光冗余代码就够人头痛了。

    2、始终以静态方式加载游戏常用资源,缓存常用对象,并及时释放无用资源。

    即使历史发展到今天,Java依旧没有彻底摆脱其系统资源杀手的可憎面目,GC机制也导致我们无法适时地释放资源,new的越多,系统也变得越慢,这对于大量使用图形资源的游戏来讲尤其要命。所以我们要尽一切可能令常用资源静态化为唯一实例以避免反复调用,而将一些调用后不会再使用或很少使用的资源迅速 null以等待GC自动回收。否则,你将发现你的游戏距离内存溢出是那样的近……

    3、始终以循环方式展开游戏,利用线程控制游戏流程,避免出现僵直现象。

    事实上所谓的jave游戏开发,在某种程度上不过是由程序员制作出的一种夹杂着各类图形算法,用以适时地展示各种资源的幻灯程序;唯一的区别在于,普通幻灯程序中人机交互性较弱,而游戏的人机交互性较强罢了。

    4、始终保持画布的唯一性。

    现实生活中,人类通过口腔及消化道摄取的营养物质可以被心、肝、脾、肺、肾等内脏吸收,却没有人会想给自己的心、肝、脾、肺、肾上也弄个嘴,因为一致性的功能实现只要有一个就足够了。但是,有时我们不经意的在游戏中add、remove不同panel或canvas以求转换画面的行为,无异于是想给游戏的心、肝、脾、肺、肾上装嘴的不智之举,切忌Java的GUI都是画出来的,重绘就好,没有切换组件的必要,否则费力不讨好。

    5、始终在处理复杂绘图时直接准备贴图而非由程序绘制。

    我们都知道Java绘图事实上是GDI实现,因此其绘制复杂画面的效率也就可想而知。通常强况下,除非当前的效果非编程不能实现,或者其所造成的资源损耗确实微小到可以忽略不计,否则最好的方法就是用空间换效率,准备好图片直接贴上去吧,宁可增加些程序体积,也不要让玩家因等待的愤怒而问候你祖宗八辈。

    6、始终双缓冲游戏图像避免闪烁现象发生。

    对于Java绘图而言,每次调用repaint方法时都会清除整个屏幕,然后paint才显示画面。而万一系统速度不够,在清除背景和绘制图像间的短暂间隔内被用户看见,就出现了所谓的闪烁现象;简单来讲闪烁的成因就是运算效率不足,使得repaint与paint不连贯造成的。

    7、始终保证repaint仅刷新需要部分,避免无谓的全局重绘。

    每repaint一次,事实上就是将paint中的图形打印到窗体上一次,窗体越大,处理的图像越复杂,repaint所造成的资源损耗也势必越多,运行效率也势必越低。但反过来说,由于Java允许我们限定repaint的范围,因而我们可以将刷新限定在某一特定区域内,更准确地说我们可以仅在需要变更画面的位置上才进行刷新,以此将损耗降低到最低限度,总体上说,即使我们会因为计算刷新区域额外花费些许时间,总体上讲也比全局repaint要快得多。

    8、始终在自绘组件的桌面游戏中应用AWT或SWT而非Swing。

    众所周知,Swing(JFC)的GUI是以AWT为基础在本地窗体绘制而成,相较AWT虽然提供了更为丰富的组件,但也意味着它占用了更多的资源。而事实上,大多数Java桌面游戏组件是由开发者所针对性绘制,并非Swing库提供,也不需要Swing库支持,我们完全可以放弃Swing而选择AWT或 SWT(SWT绘图与AWT/Swing绘图在方法上略有区别,但本质一样)这种直接Native而来的界面,实在不需劳动Swing他老人家,平白的耗费掉那些本就因使用Java应用而稀缺的系统资源。

    9、始终以运算效率为第一优先,可适当放弃代码可读性,可适当违背OO原则。以Java进行游戏开发,最大的问题莫过于系统资源的损耗,在关键问题上,就别死抱着OO不放了。

    以上给大家介绍的,就是Jave游戏开发中要注意的事项了,纵观整个Jave游戏开发的市场中,我们能够发现,不论是哪种类型的游戏?其实在开发的过程中需要注意的事项有很多,而且要用到的软件以及系统也是不计其数的,这就需要我们的游戏开发人员坚持开发的初衷,冲击一道道关卡。


本文地址:
来源:一品威客,转载须经版权人书面授权并注明来源

留言(0

↓展开留言

该攻略尚无留言记录