功能和不足 

  

    本程序设计实现了手机上以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。运行在12MHz,8K内存的硬件机器上仍不失其流畅性和可玩性。而许多J2ME游戏程序需要200K的运行内存空间、200MHz的处理器,仍运行不够流畅。机器代码级和基于虚拟机的半解释性处理的程序在这里得到了最大的对比。
本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/205261,如需转载请自行联系原作者

基于J2ME的游戏开发总结和感想相关推荐

  1. 2005年毕业论文----J2ME手机游戏开发高计

    一  前  言 1.1 摘要 J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术.它定位在消费性电子产品的应用上,对设 ...

  2. 关于《J2ME手机游戏开发技术详解》的问题!

    这里只是对我书中的bug和没有说明白的技术处说明,对于具体的编程问题,我只是点到为止! 对于3D部分的问题,由于我现在工作重点不在这上面,有些问题的回答我感到吃力,也不太想回答,详情请看我的文章. 我 ...

  3. 【J2ME 2D 游戏开发系列】◣HIMI游戏开发启蒙教程◢JAVA零基础学习J2ME游戏开发全过程!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/j2me-2/774.html Himi从写 ...

  4. 第 1 天|基于 AI 进行游戏开发:5 天创建一个农场游戏!

    欢迎使用 AI 进行游戏开发! 在本系列中,我们将使用各种 AI 工具,在 5 天内创建一个功能完备的农场游戏.到本系列结束时,你将了解到如何将多种 AI 工具整合到游戏开发流程中.本系列文章将向你展 ...

  5. unity游戏开发毕设_基于Unity3D射击游戏开发与实现

    摘  要 unity3D是本次毕业设计的主要的软件,这个软件以使用,医用和跨平台为主,unity还具有一个性能非常领先的游戏引擎,价值不菲,是一个完全集成的专业应用,正由于它强大的专业游戏开发引擎能大 ...

  6. j2me手机游戏开发

    从Java EE到Java ME的通讯 前言 本文源于 2005 年底一个真实的手机项目.很早就想为那个项目写点什么了,至今才提笔,也算是了却一个心愿.虽然时隔两年,但技术本身并没有发生什么太大的变化 ...

  7. Silverlight C# 游戏开发:面向对象在游戏中的实例(一)

    本系列所有代码都是使用Microsoft Visual Studio 2008开发,为基于Silverlight的游戏开发技术,如果您看完之后觉得不错,回复顶一下,万分感激:) 今天,我将带来一个非常 ...

  8. python游戏开发库_Python库之游戏开发及虚拟现实

    1.PyGame:简单的游戏开发功能库 http://www.pygame.org 提供了基于SDL的简单游戏开发功能及实现引擎 理解游戏对外部输入的响应机制及角色构建和交互机制 Python游戏入门 ...

  9. 《XNA游戏开发》简介

    一.XNA简介 XNA是基于DirectX的游戏开发环境. 以C# 为开发语言 以 .NET Framework 为基础.并加入游戏应用所需之函式库所构成的 XNA Framework 可开发XNA ...

最新文章

  1. bzoj1624:[Usaco2008 Open] Clear And Present Danger 寻宝之路
  2. 八卦Minsky打压神经网络始末
  3. 剑指offer(21)从上往下打印二叉树
  4. three.js script vertex和fragment在react中使用/纯js写法
  5. CTF 这个看起来有点简单
  6. Delphi版本下载合集更新至10.4.1
  7. 怎么把qq音乐flac改成mp3格式
  8. MySQL创建数据库和创建数据表
  9. 基于J2EE的线上打印平台
  10. Push rejected: Push master to origin/master was rejected by remote
  11. js 文本框获取焦点
  12. Invalid Java package name: '1' is not a valid Java identifier eclipse创建sevlet时,无法创建
  13. 几何光学学习笔记(26)-6.1光通量
  14. 什么是SQL注入攻击?
  15. NL80211使用笔记
  16. HDU 3853 LOOPS(概率DP)
  17. html转盘游戏代码,html5 转盘 例子 附完整源码 有截图 亲测通过
  18. 产品经理如何了解高深莫测的大数据?
  19. express 搭建简易的本地服务器
  20. AEC行业那些开源的软件在这里

热门文章

  1. Python - 各类赋值语句
  2. 单片机IO口控制12V电压通断,MOS和三极管电路
  3. 【Python爬虫】(一)requests:verify关健字参数
  4. ROS基础---ros通信、ros发布者publisher、publisher.cpp、Talker.cpp
  5. 国内微博客前景黯淡的两个原因
  6. 好用的php博客系统,个人博客系统推荐 PHP开源好用的BLOG程序大全
  7. 游戏一、脑洞大开3(密文破译)
  8. 隐马尔可夫模型之Baum-Welch算法详解
  9. VR插件:VR Interaction Framework 1.7(VRIF)(一)
  10. Tkinter写一个音乐下载器