基于J2ME的游戏开发总结和感想

简介:
 
功能和不足 

  

    本程序设计实现了手机上以 J2ME 为平台的一个射击类手机游戏的开发与实现,采用从外部文件读取图像、自动控制敌人机体运行的方式进行控制,具有一定的可玩性、复杂性和挑战性。经过了细心的调试和排错解决了绝大部分的问题。

就像几乎每一个软件都会有这样那样的不足,尤其是像本软件那样未经过精心测试,且开发团体很小,开发者知识面较窄,开发时间相对较短的非商业软件。即使是作为经典操作系统而被微软及整个软件行业引以为豪的各版本的 Windows 操作系统也时常会发生许多类型的错误和漏洞。本程序对于初涉此领域的毕业设计课题来说,尤其在开始初期,感觉逻辑复杂,难以控制,因此至今还有一些未能解决的 bug

                           

本游戏主要实现的功能有:

⒈采用 MIDP 2.0 规范,游戏中的碰撞检测——象素检测比较精确;

⒉实现了敌机的简单 AI 功能,使游戏具有一定的可玩性和挑战性;

⒊实现了记录最高得分及游戏得分、玩家等级等功能;

⒋在游戏中将随机出现宝物——国旗,凡捡拾到一面国旗,将可以增加一定量的生命值,使游戏趣味性大增;

⒌实现了背景画面的纵向动态效果,使游戏更加逼真;

 

目前发现的 bug 和未完善的功能列表如下:

⒈如果与敌机相撞,原本设计的将出现烟雾状图片,但出现该图片后,图片不会自动隐去,直到该屏消失;所以在本程序中将主要出现的白色飞机没有令其出现爆炸图片,在飞碟出现时留有该功能,但显然不够理想;

     ⒉敌人的人工智能变化较少,仅实现漫游 AI 中的追踪 AI AI 实现不够理想;

     ⒊子弹和敌人经常会与画面的刷新的线程不同步,有时造成画面闪烁;

     ⒋由于每次子弹发射和每次机体的移动的一个象素都会对所有机体和所有子弹进行一次循环检查,并由于同时开的线程比较多,使得本来运行效率就不高的 KVM 运行异常缓慢。即使刷屏没有间隔也不会提高速度;

     ⒌本游戏宝物设置还不够理想,仅实现增加生命值这样一种宝物;

⒍游戏画面单调,且没有实现升级前后背景的变化。

 

  经验和感想

 

⒈在后期为了优化界面,本打算运用 MIDP2.0 规范,需要采用外部文件引入的图片贴图,有关贴图,在 MIDP2.0 中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案,后来因为时间以及游戏复杂程度的限制而没有采用。由此可见,本程序的优化,改进和维护将还有很大的空间,在实际的工作中应该对程序精益求精,在以后的时间里,还将对本程序进行进一步的优化。

⒉游戏程序特别是手机游戏程序是一个精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,碰撞检测、 AI 实现、绘图事件、键盘响应、图片(音乐)提取等都会以非常高的频率在后台运行并且等待响应,若有一点点的差错都将很容易导致程序在运行不久后可能出现一些 BUG 、错误甚至死循环。因此,其逻辑设计的严谨显得相当重要,需将所有可能发生的事件及意外情况考虑在设计中。

⒊己方机体的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定其一定的智能性(这点没有来得及优化,觉得牵涉到关卡设计,比如每个关卡背景图片不同,背景音乐不同,包括敌机战斗力更强等,由于时间及技术原因没有实现);同时,出现在屏幕上的敌方可能会有较多的数量,这需要为每个敌方开辟一个线程以便能让其独立运行。 Java 的多线程能力为实现这样的游戏提供了可能。

⒋子弹,战机(包括敌我双方)在运行过程中也需要实时扫描是否碰撞到了相关物体或屏幕边界。如此过多的线程同时在本来效率就不高的KVM虚拟机上运行,有时也许会导致程序的缓慢(特别是用模拟器时,有时多次载入程序会导致系统停止响应)。双方的机体在运行时也需要考虑到是否碰撞到相关物体,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要将所有的周围环境都进行扫描。 

⒌游戏的结束、开始、动态信息画面作为构成一个完美程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图也需要有一定的考虑。 Java 是基于虚拟机的半解释型编译系统,其执行效率较 C++ 等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器( Obfuscator ) 进行程序打包后的优化。

 

    各种应用软件开发和游戏相比,我仍觉得对游戏的设计有更大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,心情也是倍加舒畅。相比一些数据库软件,游戏的设计有很多人文色彩(游戏思想,故事情节,玩家心态等)和艺术思想(界面美观,实现逼真,使玩家有身临其境的感觉)可供发挥,这也使得众多的游戏开发者乐此不疲,兴趣盎然。对于正式商业化的软件的人性化界面和各个游戏间迥异的结构每每会让人有去尝试的冲动。

游戏程序特别是手机游戏程序最大限度的利用了硬件条件,因此在小小的屏幕上展现出的效果带给玩家的往往是多彩绚丽、而又效果惊人。成功的游戏融合了三维运算(本游戏程序为二维)、人工智能、音效处理等计算机多媒体的精华部分。 很多相关的技术,如游戏界面的设计与实现,需要使用到的线程、RMS数据库、Game包的功能、高级、低级图形界面的使用、贴图,背景乐音的提取及播放,每一项都需要花一定的时间去掌握和熟悉。在学习J2ME的过程中,也学习了国内外一些经典书籍,像美国Michael Morrison著的《J2ME手机游戏编程入门》,郎锐,孙方编著的《J2ME手机程序Eclipse开发基础》一直放在电脑旁随时翻阅。

在正式开始编写之前,我照猫画虎的写出一小段绘图代码(仿郎锐的“Paint”)时,已经过去了相当长的准备时间。当掌握了大部分应用技巧时,剩下的游戏思路的设计,具体功能的实现,调试,优化就显得不是最大的障碍了。 我在半个月的时间内写了近3000行代码,经过了无数次的调试,终于基本完成了现在的程序。 回首上个世纪80年代的手持机上的机体大战原始游戏任天堂的游戏小子(Nintendo Game Boy),将会惊叹那个时代的商业软件的巧夺天工。华丽而友好的界面,出色的人工智能,流畅的运行效果、多音效、双人操作控制,其二进制程序体积仅仅为24K。运行在12MHz8K内存的硬件机器上仍不失其流畅性和可玩性。而许多J2ME游戏程序需要200K的运行内存空间、200MHz的处理器,仍运行不够流畅。机器代码级和基于虚拟机的半解释性处理的程序在这里得到了最大的对比。



     本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/205261,如需转载请自行联系原作者

相关文章
|
1月前
|
算法 程序员 UED
从新手到高手:我的编程之旅与技术感悟####
在技术的浩瀚星海里,我以代码为舟,从懵懂的新手驶向渐趋熟练的彼岸。本文不仅是一份个人成长的记录,更是对编程世界深度探索后的心灵独白。它不简单概述成就或技能树,而是聚焦于那些在键盘敲击间闪烁的智慧火花,以及它们如何照亮了我的思考路径,塑造了我对编程艺术的独特见解。 ####
32 2
|
3月前
|
自然语言处理 算法 语音技术
探索编程世界的奇妙之旅:从初学者到实践者的蜕变
【10月更文挑战第14天】探索编程世界的奇妙之旅:从初学者到实践者的蜕变
30 0
|
4月前
|
算法 开发者 Python
探索代码之美:从小白到大师的编程旅程
【9月更文挑战第15天】本文将带领读者走进编程的世界,从最初的困惑与挫败,到逐步掌握编程技能并发现其乐趣。我们将通过具体案例和代码示例,展示如何从基础语法学习,到解决实际问题,再到优化代码的过程。这不仅是技术上的提升,更是一个思维和解决问题能力成长的故事。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和启发。
探索编程世界的奇幻之旅
【8月更文挑战第8天】在编程的世界中,我们既是创造者,又是探险者。从最初对代码的好奇到逐渐掌握各种编程语言和工具,每一步都充满了挑战与惊喜。本文将分享我的编程之路,以及在这个过程中获得的感悟与经验。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
探索编程世界的奇幻旅程
【6月更文挑战第18天】在数字时代的浪潮中,编程不仅是技术操作的体现,更是一种思维的展现。本文将通过一系列生动的故事和实例,揭示编程背后的逻辑美学与创造力的火花,带领读者走进编程世界的奇幻之旅。
|
8月前
|
Python
使用Python开发连连看游戏的技术指南
使用Python开发连连看游戏的技术指南
167 0
|
JavaScript Java
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
193 0
|
开发工具
是时候重新介绍一下小蚂蚁的游戏开发服务了
这可能是你能找到的门槛最低的游戏开发课程了,无需具备游戏开发经验,无需美术经验,也无需编程经验,只需你有一颗想要做游戏的心。跟随着这个系统全面的游戏开发课程,它会一步一步的帮助你做出第一个小游戏,带你进入游戏开发世界的大门。
117 0
快来看看,小蚂蚁准备要开一门游戏开发课了
做个简单的自我介绍吧!给那些还不认识我的朋友,我是小蚂蚁,从事游戏开发行业已经 6 年的时间,之前在团队中一直担任唯一的主程序的角色,做过大大小小的十几款游戏,如今是一个独立的游戏制作人,尝试以一己之力去完成整个游戏的创作,当然这里指的是小游戏。
91 0
小蚂蚁游戏开发的视频号
最近除了写图文教程,小蚂蚁也开通了视频号,开始做短视频了。 为什么要做短视频呢?因为这是趋势,不管你愿不愿意承认,短视频的洪流已经冲过来了,作为个体,在面对趋势时,最好的策略呢,就是去顺应。 虽然我个人更倾向于看文字或者是图文,而且也更愿意去写图文教程。但是,在趋势面前,我还是尝试着去做短视频了,而且也做了几次直播。虽然目前还没有什么效果,但是慢慢来吧!没有谁能一上手就做的很好,慢慢积累吧!毕竟我是一个相信通过持续不断的积累定会产生好结果的人。
89 0