第一篇:《JAVA手机游戏开发入门》
手机游戏《飞机大战》报告总结
数媒小组:刘玮
指导老师:宋瑾玉 肖荣
总结
本程序设计实现了手机上以J2ME为平台的射击游戏的开发,敌人运行的方式和攻击由程序进行控制,玩家通过控制自己的飞机来躲避敌方攻击和敌机。通过自己控制发射导弹来击败敌机,通过击败的敌机数来获得积分,击落的敌机越多,获得的积分越多,当获得一定积分时,玩家就可晋级到达下一关,玩家只有三条命,当被敌机的炮弹打中,玩家会减少一定血量,减少到一定血量后玩家会减少一条命,当玩家被敌机撞上时玩家直接损失一条命,game over,我们得重新开始了,我们增加了刚开始的界面,增加了开始,退出,帮助等按钮选项,玩家可以发射3颗导弹来打击敌人,在游戏画面中我们增加了显示血条和得分。这样使玩家具有一定的可玩性和复杂性。通过程序,我们增加了经过了细心的调试和排错解决了一部分的问题。但是我们的水平实在有限,还有很多的问题有待解决。但我相信,随着时间的推移,个人水平的增长,我们去完善这个程序使其更加完美,感想
子弹,战机(包括敌我双方)在运行过程中也需要实时扫描是否碰撞到了相关物体或屏幕边界。如此过多的线程同时在本来效率就不高的KVM虚拟机上运行,有时也许会导致程序的缓慢(特别是用模拟器时,有时多次载入程序会导致系统停止响应)。双方的机体在运行时也需要考虑到是否碰撞到相关物体,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要将所有的周围环境都进行扫描。游戏的结束、开始、动态信息画面作为构成一个完美程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图也需要有一定的考虑。Java是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。
第二篇:手机游戏开发的5个阶段
目 前,开发手机游戏的厂商如同雨后春笋般的冒了出来,有大有小,甚至几个朋友在一起就能攒出一个小公司,进行开发。每个公司,也都有“具备自己特色”的开发 过程,好一些的,直接套用传统的软件工程的理论,差一些的,也只能闷头苦干了。我在这里想谈的是对于小团队开发游戏的一种高效的开发方法和阶段划分。
游戏开发的阶段划分,我认为可以划分为5个阶段,叙述如下:
第一阶段:提案
这一阶段要做的主要工作是明确要做什么样的游戏,游戏的名称是什么,采用何种表现方式(2D,2.5D,3D等),游戏的卖点(特色)何在,实现在什么样的平台上,人员如何搭配。
无 论是公司还是小团队做游戏的最终目的都是为了盈利,所以做为游戏设计者就应该针对市场来设计游戏,而不能针对个人的喜好而设计游戏。能被大多数人接受的游 戏才是一款好游戏,才能更好的盈利。所以在决定做什么游戏之前要先确定主要针对什么样的玩家来做这个游戏,是男孩还是女孩,是老少皆宜还是20多岁的年轻人,这个目标确立了之后才能更好的挖掘这类玩家的心理,使游戏的设计更充分的满足这类玩家心理和精神上的需求,这样游戏才能被更多的玩家接受,团队才能更好的盈利。
根据已选择针对的玩家群体,就该选择适合这个玩家群体的游戏题材,一个游戏题材的选取也非常重要,一个好的题材有助于设计者表现游戏的特色,使玩家很快的了解游戏背景,游戏能够很容易上手,更好的被玩家接受。有三大类游戏题材比较容易被玩家接受:1发布地区人人皆知的历史或宗教;2与常识相关的;3与某有名的故事或电影相关的。总之,在所选玩家群体大部分玩家都熟悉的题材上做游戏会更容易被玩加接受。
然后就是有关游戏概念的设计,需要确定的是游戏的类型(例如:RPG、策略、格斗等),游戏的表现方式(例如:2D、2.5D或3D),在什么平台上实现以及游戏的特色。这些问题都要根据团队的技术实力、市场需求的紧迫程度、开发成本等各方面因素来决定。在确定了游戏的类型、表现方式和实 现平台之后,就要在这三个条件的限制之下尽可能的发挥策划的创造力,在游戏特色上尽可能的下功夫,并写出两份文档:一份游戏策划案的提纲和一份立项建议 书。在策划案提纲中要让技术人员能够看明白游戏需要具有什么样的功能。在立项建议书中要写清游戏针对的人群,游戏类型,游戏表现方式,游戏实现平台,游戏 卖点,实现所需的大致时间,以及人员安排。
完后,招集市场、技术、美工等人员进行集体评审,根据这份立项建议书,客观的评价技术实力,开发周期,市场效应等问题,最终决定是否要做这个游戏。这个阶段的工作目标就是确定将要做的是一个能被市场广泛接受的游戏并确保游戏的可行性。一个不能被市场接受的游戏或者根本无法实现的游戏设计在这个阶段都会被否定,或做设计上的修改或放弃做这个游戏。尽可能的减少项目实施以后所要承担的风险。
第二阶段:设计
游戏的设计过程中需要策划、程序、美术、市场共同协作完成,一个游戏做得好坏,这个阶段起到了决定性作用,下面将对这四种职责的工作内容分别进
行阐述:
策划:
根 据策划案的提纲进行游戏的详细设计。比如:用什么样的道具,各种物品、角色的名称,游戏用图的尺寸、大小,人物的各种行为、属性、地图或者场景的设计等,可以不用具体的游戏用图,用一些简单的图形表示即可。策划应该先不考虑平台的限制,尽可能的发挥创造力去设计游戏,当游戏设计完之后再根据平台的限制对游 戏策划进行修改以达到具有可行性的最终策划案。
程序:
根据策划案提纲,完成物理引擎的设计,针对游戏类型和游戏表现方式设计或修改游戏引擎(如果已经有可用的引擎,则可以省去这一步)和游戏开发需要的工具,例如:脚本解析器的设计,地图编辑器的设计等。并完成编码,测试通过,程序中没有灾难性的bug。
美术:
美术人员需要经常与策划进行沟通,根据策划的描述开始设计游戏中的各种角色、物品、场景的原型并做出原画设计。美术人员应该对游戏中美术部分的设计起主导作用,而不仅仅是像工人一样策划怎么说就怎么做。
市场:
市场人员要经常与外界沟通,需要做两件事:1.经常与策划沟通,搜集与项目开发有关的资源;2.关 注类似游戏的市场效应。在游戏开发中不一定所有的部分都要自己开发,有些地方也可以用一些别人做好了的东西,例如:在程序部分上,如果在网上能够找到基本 满足需求的源代码,完全可以拿过来改一改,这样可以大大提高开发效率;在美术上,对于游戏中不是很重要的元素完全可以找些别人做好的图来改一改,这样也可 以提高开发效率。关注市场上已经发行的类似题材的游戏,找到每个游戏的卖点特色和它的营销策略,仔细的分析这些游戏哪里做得好哪里做得不好,问题出在哪 里?并完成一份市场调查报告,从市场的角度来审视我们的游戏策划和原画设计,尽可能避免前人犯过的错误。
这一阶段的工作中,要以策划为中心,四种角色要经常沟通协作才能高质量的完成任务。如果条件允许的话应该由策划主持每天开一次例会,项目组内所有人员都要参与,解决工作中遇到的问题并对新的想法和设计进行讨论评估。这一阶段的工作目标:1.游戏引擎基本制作完成;2.站在程序的角度去看策划案,确认这份策划案是可行的;3站在玩家的角度去看策划案和美术设计,确认游戏的设计符合思维逻辑,内容足够丰富,美术设计足够细质;4.站在市场的角度看,与市场上同类型游戏相比要有一定的竞争力。如果游戏不好玩或者品质不够在这个阶段就会被修改完善,根据团队的实力最终确定游戏要达到一个什么样的品质,在下一个阶段就要根据这样的品质来制作游戏。
第三阶段:实现
这 个阶段的任务主要就是根据策划案来实现游戏,这个阶段的工作量是整个开发周期中最大时间最不好控制的。在游戏开发过程中各职责之间存在着很强的依赖性,工 作的时序性很强,如果没有做好开发计划,团队中会经常出现等工的现象,浪费时间。所以,在开始工作之前所有项目相关人员要先开个会,以天为单位做一个详细 的开发计划,在开发计划中要对这四种职责分别量化工作内容。工作的时序要安排得当,尽量避免出现等工现象。以下对这四种职责的工作内容分别进行阐述:
策划:
在这个阶段策划最主要的工作是做好项目管理。项目管理的工作内容包括:1不断激励开发人员,使团队具有高昂的士气并保持一种和谐的开发气氛;2经常与各部分人员沟通,协调好每个人每天的工作,控制好开发进度;3安排好每天的数据备份,尽可能避免团队的努力因不可抗力而白费;4严格审核美术人员制作的图片和声音,保证达到游戏要求的品质;5协助团队其他人员做一些力所能及的实际工作(例如:用地图编辑器画地图、根据剧情写游戏脚本、制作游戏截屏动画等)。
策划不但要做好项目管理还要做两件非常重要的事:1随着游戏开发进展不断的审视游戏,及时发现游戏设计的不足,修改策划案但不改变开发计划仍然要按照原策划案继续开发游戏,修改后的策划案在下个阶段用;2编写数值设定初步方案并在游戏中实施此方案。
程序:
根据策划案,设计游戏相关的算法(如:AI、碰撞、交易系统等)。做好游戏的版本控制。在初期的设计过程中可能美术的图还没有做好,不过没关系,程序员可以先用一些类似的图形代替,等美工做出图后再 替换进去,这样可以节省很多时间。在开发过程中不要写太多的技术问档,技术文档主要的目的是利于开发人员交流,可在一个小团队里每个项目基本上就一个程序 员,所以没必要把技术文档写得太繁琐。尽可能把技术文档作为注释体现在程序中,这样既节省时间又有利于程序的阅读。程序员在开发的过程中有可能想到一些对 游戏设计有建设性的意见,这时应该及时跟策划讨论,决定是否修改策划案。
在整个开发过程中程序员应当在技术上起主导作用,除了写好程序外还应当指导美工按照程序的需求做图,指导策划或其他人员用游戏开发工具。
美术:
根据策划案的美术需求列表的要求做图和动画,根据声音总表的要求制作声音文件,根据市场人员的要求设计海报和其他宣传品。为了提高游戏品质和开发效率,建议把游戏动画和声音交给专业外包小组来做,由美术和策划人员验收,这个要根据团队的技术实力和经济实力来决定。
市场:
制定市场宣传策划,提出需要设计制作的宣传品的列表,交由程序和美术制作。经常与策划沟通,更多的了解游戏内容和游戏的开发进展,以便于决定什么时候开始做宣传,投入多大的宣传力度。如果是一款在市场上比较有竞争力的游戏,当游戏完成alpha版后就可以立刻做一个Demo,联系些客户来看,这个时候可以听取客户的意见,从客户的角度看游戏的不足之处,然后团队开会决定是否根据客户的意见修改策划案。也许这个时候就会有客户决定预定这个游戏了,这个时候就要写合作建议书,合同拟定草案,并维护好与客户之间的合作关系。
这 一阶段的工作中工作量最大的是策划和程序。策划应当对整个游戏的开发有整体的把握,控制好开发进度。程序员要在解决技术问题上起主导作用,尽可能为大量的 重复劳动制作工具,简化游戏资源的更换和数值调整,并指导其他人来做这些工作。美工应当在游戏的艺术表现上起主导作用,在这阶段开始的时候没工会很忙,到 后期图基本上做完了美工的工作也就轻闲下来了,这时要辅助策划和程序员做些力所能及的工作。市场人员不参与游戏开发,担任的角色是团队对外部的接口,要做 好游戏的宣传和销售工作。
团队至少每周开一次例会,各部分人员在会上总结上一周的工作,并根据实际情况调整工作计划,制定下一周的工作任务。在工作中遇到的问题可以在会上提出来,大家一块儿讨论解决。
这一阶段的工作目标:1游戏Bata版完成,要求程序无致命BUG;2游戏宣传品设计完成。
第四阶段:评审
对游戏进行评审,审核游戏的品质,是否需要修改,再次考虑游戏的可玩性及市场效应。
考虑是否需要进行再次开发,以提高游戏的品质。比如:游戏的平衡性、数值设定是否合理,游戏用图是否需要修改,是否需要增加或删减某些功能。简单来说,就是进一步提高游戏的可玩性,但需要注意的是:要考虑清楚进行再次开发所需要的开发周期,以及人员搭配。
如果确认进行二次开发,则根据修改要求,重复上一阶段的工作直到达到满意的效果为止。
如果不需要或者不具备再次开发的条件,则进入下一阶段。
第五阶段:完成进行最终的数值调整,每次调整后都需要进行测试,力争达到消除所有BUG,同时制作产品说明书及相关文档。根据市场需求,制作一些宣传用品,以及一些周边产品,如DEMO(这个DEMO是为了做市场宣传而用的)、手机屏保、PC屏保等,并进行市场宣传。产品上市!
这 里说到的相关文档,包括最终的策划文档,游戏用图列表和游戏用图,以及攻略、使用说明书等周边文档。建议程序的详细设计文档在此阶段进行整理。传统的软件 工程中要求在初期编写详细设计文档,是为了开发大型项目,原因是在大型项目开发中,需要多人进行协作去开发一个系统,以确定最终的解决方案,避免由于开发 人员的思路不统一,而使项目出现灾难性的错误。如果是中小型项目,完全可以将详细设计文档整合在代码的注释中(要求程序的注释一定要写的非常详细),因为 在详细设计阶段,也要牵扯到部分代码的编写,所以从敏捷开发的角度来说,可以在一开始不用编写详细设计文档,而在第五阶段,通过注释,整理出详细设计文 档,以提高开发效率。
以上就是我总结出的小团队游戏开发的5个阶段。我提出的只是一个框架,并不是每一个项目都要完全按照这些内容去做,每一个项目都要根据情况来灵活的确定每一个阶段具体应该做些什么。
第三篇:手机棋牌游戏开发难点细数
手机棋牌游戏开发难点细数
本文由扬速科技提供
移动互联时代,手机游戏发展迅速,这里也就不少从事棋牌游戏的企业和商家也来赶个时髦,做个手机棋牌游戏抢占市场,然而在当前条件下,这些被寄予厚望的棋牌游戏能在手机等智能终端上活下来并且做到成功盈利么?
从技术角度讲,把网络棋牌游戏从电脑移植到手机,甚至将两者互通已不存在太大开发难题。从市场环境来看,手机游戏是现在一个火热的方向,人们在休闲的零碎时间一般都是在玩手机。那我们来具体分析一下手机棋牌游戏盈利到底难在哪里。
一、盈利模式单一
目前手游行业较为成熟的盈利模式主要有三种:付费下载、道具收费和内置广告(IGA),而网络棋牌游戏最主要的收入方式只有玩家持续不断的充值购买游戏币、道具、特权服务等。
相对于市面上多种多样的手机游戏,棋牌游戏规则统一,玩法也谈不上大的创新变化,所以手机棋牌很难勾起用户花钱的欲望,更而付费下载也不符合中国国情。而棋牌游戏内置付费内容也就只有道具了,但这显然这不能成为棋牌游戏的主要收入,至于游戏内置广告则需要庞大的装机量,还影响玩家的游戏体验。从此不难看出,棋牌游戏的盈利模式在手机等智能终端上的还不成熟完善,需要更多的摸索。
二、手机支付困难
手机棋牌游戏需要长期、不定时的充值才能满足商家的盈利和玩家正常的游戏体验,这就对手机支付提出了较高要求。但就目前看来,手机支付在我国还存在三大问题:一是用户习惯;二是资金安全;三是技术保障,后两个问题反过来也更加剧了用户对于手机支付的怀疑和排斥。支付渠道的不便影响了玩家的游戏节奏和心情,也有悖于手游随时畅玩的理念,因此在国内手机支付市场成熟之前,手机棋牌的盈利问题将一直存在。
三、稳定的网络环境
毫无疑问,网络通信是影响网游最重要的硬件因素,网络跟不上,一切都是白搭。虽然当前的3G和Wifi网络愈加普及,但仍只局限于大中城市里的部分人群、部分区域,不利于手机棋牌市场的开拓。更何况与电脑相比,手机移动终端的网络信号的稳定性始终是个大问题,玩家在游戏中一旦进入地铁、地下室、火车等网络盲点,受影响的不仅是玩家一个人,还有同桌。
四、碎片时间格格不入
看市面上比较流行的手机游戏,可以发现它们成功的一个共性就是不需要花太多脑筋,可以随时开始、随时结束,这恰好契合了手游休闲和利用碎片化时间的特点。而棋牌游戏则相反,它更强调竞技和对抗,只有斗智斗勇才能赢得比赛,但一圈麻将或者一局象棋少则七八分钟,长的半小时都有可能,而且玩家还必须全神贯注的投入才行,这样的游戏过程显然与等车排队、散步旅行等碎片时间格格不入。
虽然手游正成为网游细分市场的未来之星,但棋牌游戏本身或外在的种种因素都决定了当前手机棋牌的盈利之路任重道远,尽管也有商家还在大打手机棋牌概念,但在没有彻底解决它的盈利问题之前,这一切都只是壮声势的噱头!
第四篇:java开发面试题
1、编写程序
题目:古典问题:有一对公母猪,从出生后第3个月起每个月都生一对猪,小猪长到第三个月后每个月又生一对猪,假如猪都不死,问每个月的猪总数为多少?
答案:
public class lianxi01 {
public static void main(String[] args){
System.out.println(“第1个月的兔子对数: 1”);
System.out.println(“第2个月的兔子对数:1”);
int f1 = 1, f2 = 1, f, M=24;
for(int i=3;i<=M;i++){
f = f2;
f2 = f1 + f2;
f1 = f;
System.out.println(“第” + i +“个月的兔子对数: ”+f2);
}
}
}
2、是非题
2.1 Java程序中的起始类名称必须与存放该类的文件名相同。()
答案:正确
2.2 原生类中的数据类型均可任意转换。()
答案:错误
3、问答题
3.1 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答案:
会执行,在return前执行。
3.2 sleep()和 wait()有什么区别:
答案:
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会 释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
4、数据库题
聚集函数的应用
编写一条sql语句,希望从艺术家表artist_tab中,看到只有一个专长specialty的是哪些专长
答案:seelctspecialty from artist_tab group by specialty having count(*)=1’;
第五篇:JAVA开发个人简历
个 人 简 历
个人信息
姓名:xxxxxxx性别:x
电话:187-xxx7-xxxx年龄:22
邮箱: lxxxxxxx@xxx.com专业:软件技术应聘职位
Java软件开发工程师
专业技能
熟练掌握CoreJava编程,具有扎实的编程功底和良好的编码习惯
熟练掌握ssh(Struts2+hibernate+Spring)等轻量级框架
熟悉MVC开发模式
熟练使用Eclipse/MyEclipse工具进行Java软件开发
熟练Unix/Linux环境下Java的应用软件开发
熟练掌握MySQL、Oracle等数据库操作,能编写常用SQL语句
熟悉软件开发的主要流程,可以根据指定要求快速完成设计、编码等工作了解xml、HTML、JavaScript、Ajax技术
项目经验
一、通用电子商务平台(当当网购物系统)
开发环境:Linux
开发工具:MyEclipse8.6,Tomcat,MySQL
技术实现:Struts2+Hibernate+Spring+JavaScript+JSP+AJAX
项目描述:此系统为网上购物系统,用户可以用过该系统实现网上购物、注册、登录、浏览商
品、订货、生成订单功能。也包括对普通商品增删改查功能和购物车内书的数量的增删改功能。
责任描述:独自完成项目的整个开发过程
用户模块包括登录与注册,主要使用了AJAX对其输入的信息进行验证,结合Hibernate存储和验证用户登录等。
商品列表模块主要是用List集合来展示商品。
购物车模块则是使用Session技术来保存购物车,通过Struts2调用不通方法来操作购物车中的商品集合,实现对购物车的增删改查。
订单模块主要是用Hibernate对用户所买商品的记录进行存储。
经验总结:这个项目让我们把我们所学习的三大框架以及JS,Ajax等都联系起来。尤其是使用
Hibernate经常出现异常,在和组内成员讨论中逐步解决问题,并且更加完善代码。
通过这个项目不仅提高我个人能力,而且还促进了与他人合作的能力。
二、教学管理系统
开发环境:Linux
开发工具:MyEclipse8.6,Tomcat,MySQL
技术实现:Struts2+JavaScript+JDBC+AJAX
项目描述:项目实现了管理员对教师信息的增删改查和对学生选课的管理
责任描述:独立完成该项目的设计和实现,主要应用MVC模式的设计思想对项目进行划分。
采用JDBC对教师信息进行增删改查,在学生选课模块,使用到了Ajax来对选课进
行检验。
经验总结: 通过该项目让我对MVC设计模式有了更深一步的认识。在数据的存储方面尤其是
对JDBC对数据存储的乱码问题。通过与组内成员的不懈努力将其克服。极大的锻
炼了自己团队合作能力,项目计划能力以及写文档的能力独立解决问题的能力。
三、其它项目:BBS论坛,交友网等
实习经历
2011/12 — 2012/05北京xxx科技Java工程师实习生
教育背景
2010/09―2012/07开封大学软件技术
所获证书
C+ E国际软件工程师Java培训证书
自我评价
专业技能:虽然在大学里,我学习的是软件技术专业,已经具备了一些专业方面的基础知识。但是想在行业中有更好的发展就必须学习更多与企业应用相关的知识,所以我选择来达内进行培训。在学习期间,我踏实勤奋,按时完成课后练习及作业,不断的积累代码量,同时也能帮同学解决一些力所能及的问题。遇到难题能够主动动手查阅资料,解决问题。通过项目实战提高我的个人能力和团队协作能力。
综合能力:性格比较沉稳,为人诚恳,不怕吃苦,有高度的责任心和团队合作精神。对环境的适应能力强,有较强的团队意识和集体荣誉感,做事情比较认真仔细,对每一件事情都能认真对待,能很好的自我调节。乐于学习新的知识与技术。