安卓游戏开发工具是用什么开发出来的

大家做安卓游戏开发都用的什么工具?_安卓游戏开发吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,264贴子:
大家做安卓游戏开发都用的什么工具?收藏
好多公司和游戏制作的爱好者是不是都在用类似于unity 3d或者cocos-2d之类的跨平台工具。有人做原生态的安卓开发的吗?
安卓游戏开发培训,达内培训12校区欢迎您,美国Nasdaq上市安卓游戏开发培训公司!90天安卓游戏开发培训0基础到精通.官方指定报名网站:sh.
我自己是JAVA和Greenfoot爱好者,真在致力于Greenfoot的安卓版本,Greenfoot4Android,也算是个引擎吧。我感觉差不多快搞定了,这样一来配合Greenfoot本身,就能利用同一套JAVA代码跨电脑,网页和安卓3个平台了。,。
试过Unity3D,电脑显卡不给力。。所以转战JAVA了,完全用eclipse进行开发
路过,新人报道,
请问楼主,我毕业要做安卓的小游戏,使用什么工具好呢?我现在是学java的有myeclipse软件,请问可以使用它来做安卓游戏么?写出了源代码,最终通过什么形式安装到安卓手机呢?
可以使用3Dmax
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或Android 游戏开发之SurfaceView的简单使用
涉及的相关知识点:
1、Callback
& &一个SurfaceView一定要实现一个SurfaceHolder.Callback接口。以便在底层的Surface状态发生变化的时候通知View,该接口需要实现以下3个方法:
& &public void surfaceCreated(SurfaceHolder holder) {}
& &public void surfaceChanged(SurfaceHolder holder, int format, int width, int height){}
& &public void surfaceDestroyed(SurfaceHolder holder) {}
2、SurfaceHolder &&
& &这是一个用于控制surface的接口,它提供了控制surface 的大小,格式等
& &SurfaceView的getHolder()函数可以获取SurfaceHolder对象,Surface 就在SurfaceHolder对象内。
3、具体代码 MySurfaceView.java
package cn.llbb.
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.graphics.P
import android.graphics.R
import android.graphics.RectF;
import android.view.SurfaceH
import android.view.SurfaceHolder.C
import android.view.SurfaceV
public class MySurfaceView extends SurfaceView implements Callback {
private SurfaceH
public MySurfaceView(Context context) {
super(context);
sfh = getHolder();
sfh.addCallback(this);
paint = new Paint();
paint.setColor(Color.RED);
setFocusable(true);
public void surfaceCreated(SurfaceHolder holder) {
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
public void surfaceDestroyed(SurfaceHolder holder) {
private void MyDraw(){
canvas = sfh.lockCanvas();
if(canvas != null){
canvas.drawColor(Color.WHITE);
canvas.drawText(&drawtext&, 10, 10, paint);
canvas.drawPoint(10, 20, paint);
canvas.drawPoints(new float[]{10,30,30,30}, paint);
canvas.drawLine(10,40,50,40, paint);
canvas.drawLines(new float[]{10,50,50,50,70,50,110,50}, paint);
canvas.drawRect(10,60,40,100, paint);
Rect rect = new Rect(10,110,60,130);
canvas.drawRect(rect, paint);
RectF rectf = new RectF(10,140,60,170);
canvas.drawRoundRect(rectf, 20, 20, paint);
canvas.drawCircle(20, 200, 20, paint);
canvas.drawArc(new RectF(150,20,200,70), 0, 230, true, paint);
canvas.drawOval(new RectF(150,80,180,100), paint);
Path path = new Path();
path.moveTo(160,150);
path.lineTo(200,150);
path.lineTo(180,200);
path.close();
canvas.drawPath(path, paint);
Path pathcircle = new Path();
pathcircle.addCircle(130, 260, 20, Path.Direction.CCW);
canvas.drawTextOnPath(&pathtext&, pathcircle, 10, 20, paint);
}catch(Exception e){
sfh.unlockCanvasAndPost(canvas);
MainActivity.java
package cn.llbb.
import android.app.A
import android.os.B
import android.view.M
import android.view.MenuI
import android.view.W
import android.view.WindowM
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(new MySurfaceView(this));
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'为什么Android应用用Java开发,为什么Android大型游戏要用数据包?这里根据我的知识做一个总结
Android用java作为开发应用程序的语言,是经过深思熟虑的。作为一个开源的、被广泛使用的操作系统,它与微软的Windows系统、苹果的IPhone系统最大的区别,在于硬件差异性而不是别的。
微软的Windows系统,一统天下用的都是X86的CPU体系(即Intel和AMD两家的CPU),所以用C和C++写出的应用程序,只需要编译一次,生成X86
CPU指令的二进制执行文件,就可以在所有硬件配置的Windows系统上跑起来。其实这也是业内公认的一个潜规则,就是微软和Intel的共生关系,微软只使用Intel创立的x86架构体系的芯片(AMD的芯片为了满足这一要求也所有芯片都采用了Intel创立的x86架构),Intel新的PC芯片也都延续x86架构体系。这样做的好处是巨大的:开发者只用开发和编译一次,就可以让应用跑在所有Windows系统上,所有用户只用下同一个应用程序,就基本都能在自己的系统上跑起来。相对而言,下载过塞班手机应用程序的人都有过这种经历:下载应用时要看自己手机的型号,选择对应的才能用。开发塞班程序的人也很痛苦,要为每一种CPU型号的塞班手机都编译一套执行文件,并且没新增一种手机,就要再编译一套。
微软与Intel的这种软硬共生关系,让所有的PC厂商没了选择,只能选择x86架构芯片。有人或许会说他们的这种做法很霸道,但作为应用开发者和用户,却从微软的这种统一性中获取了巨大的方便。
相对于微软的Windows系统而言,Android面临的环境要复杂的多。谷歌是一个以开源免费为主的公司,Android将会被各种设备商所使用,运行在各种架构的CPU上(x86,ARM-7,ARM-9,ARM-11)。这就迫使谷歌不得不面对一个问题:应用开发的难度。如果仍然采用C、C++作为开发语言,那开发Android应用将面临和塞班一样的问题:开发者和使用者都不得不为每一种设备都弄一套程序。这会让开发者痛苦不堪,降低他们的开发效率,也会让习惯了Windows的用户很迷惑和不高兴,为什么我不能下一个通用的程序???在运行效率和开发使用方便性二者之间,谷歌选择了折中,以Java为应用开发语言。Android提供名为Dalvik的Java虚拟机,使Java语言应用运行在这个之上,从而隔离了底层设备的差异性,虽然用解释型语言牺牲了一些效率。
按这个做法,在Android上开发3D游戏的话,直接用Java语言的3D
API就行了,不需要另外再弄什么东西。那为什么Android大型3D游戏还要另外再下数据包,而且数据包还区分CPU(例如给高通CPU的数据包,给TI
CPU的数据包)?这就牵扯到游戏开发商的成本问题。由于游戏开发商希望在大部分设备上只用一套代码,所以基本是C/C++开发的以适应普遍的设备平台,只需为每个平台编译一次。如果再单独为Android开发一套Java代码,显然成本是非常高昂的。于是有了一个间接方法:将C/C++语言编写的核心代码用Android提供的DNK编译成库,再把系统相关的代码用Android
Java开发一下,通过JNI调用C/C++程序编译出的核心库,大功告成,省去了巨额的开发经费。当然也有一些3D游戏,专门为Android写的一套Java代码,不用额外数据包,这样方便了Android用户,但投入-产出是否划算?游戏开发商需要打个算盘了。
最后说苹果IOS系统。它与微软有相似也有不同。不同的是,微软有Intel这样的一个好基友,而苹果似乎在ARM分散和内斗的阵营里难以找到肯与自己长相厮守的伙伴。相似的是,都是闭源系统只给自己使用,并且自家内部使用一个CPU体系(苹果使用的是自己的A系列CPU,微软是x86系列CPU)。不管相同还是不同,最终都促成苹果的自成体系。因为没有忠实硬件伙伴,于是苹果自己开发CPU(本身苹果以前也是做硬件的)。再加上只有自家使用,苹果的IOS王国就与微软帝国一样,拥有了统一的CPU体系。这就使得它与微软一样,应用程序一次编译处处运行。而且由于是编译型语言(object-c)生成的可执行程序,效率比Java要高,这也是为什么IPhone的配置比高端的Android机低却仍然运行很流畅的原因。
最终总结一下,未来的趋势或说开发者和用户的需求,就是应用程序的硬件无关性,一次编译处处运行。而在如何满足这一要求上,有两种途径,一种是一个操作系统采用一致的向下兼容的CPU体系,另一种就是用Java、WebApp这样的平台无关开发方法。如何取舍取决于操作系统提供商本身的特性和市场策略。至于哪种趋势将占主流,在目前的市场格局下尚无法预测。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。为什么说Android才是游戏开发者的乐土?
发表于 14:11|
摘要:手机游戏开发之所以能在这产业急流中顶住风吹浪打,有两个原因:一是,庞大而复杂的用户群体;另一方面,现成的移动开发工具和服务比以往更为丰富。本文将细数游戏开发中那些实用的SDK、引擎、处理器和第三方库。
游戏向来是硬软件性能、多样输入法以及图形支持等技术发展的强劲推动力。以安卓平台为例——在可预见的未来,相比其他应用,游戏及其玩家更能促进市场发展并带动游戏设备升级。尽管安卓平台已相当成熟,但发展的步伐还在迈进。除系统完善及应用广泛的优点之外,如今其设备的卓越性能已能匹敌新一代的控制台系统。
不过安卓平台最值得称赞的一点是——从简单的休闲小游戏到复杂的多人游戏,只有想不到的,没有不可能成功的(比如:Flappy Bird)。而玩家年龄、性别和品味的多样化将安卓市场划分为不同的目标群体,让大大小小的游戏开发公司都能有立足之地。
蓦然回首,当年区区几家游戏巨子独占鳌头的光景还历历在目——横跨台式电脑及控制台两个市场,以优秀的开发者团队和知名品牌授权作支撑,一手占据着宝贵资源来构建游戏平台服务,一手掌握着高端技术来不断开发运行稳定、性能优良的游戏……这种种将该产业那道门槛铸造得高耸入天,不知名的小公司和独立开发者如何能轻易跨越呢?
相比之下,移动市场对待开发者更公平一些。手机游戏开发之所以能在这产业急流中顶住风吹浪打,有两个原因——一方面,庞大而复杂的用户群体让无名之辈也可以夹缝里求生存;另一方面,现成的移动开发工具和服务比以往更为丰富。
工具和服务即可显现安卓手机游戏平台身为王者的成熟风范。谷歌这一安卓开发核心和其合作伙伴为保证该平台的繁荣费劲了心血。诸多工具、API和服务旨在促进安卓项目顺利完成,其中不乏专门服务于游戏开发者的项目。以下是一些范例:
开发者:不管是任何人,想进入移动市场从未这么容易过。安卓应用开发、上线可一气呵成。安卓应用基本都用Java语言编写——该语言凭借其自身优越性广为开发者追捧,同时也是全球高校计算机科学课程上最热门的物件导向程式语言。
开发工具:安卓开发工具完全免费——既无昂贵的编译器,也无许可证费用。Eclipse集成开发环境为人熟知,安卓设计工作室前景看好,标准安卓工具功能齐全、不断出新……英特尔作为开放手机联盟成员之一,也推出了一些工具,帮助开发者在x86开发环境以及兼容x86的安卓设备上提高工作效率。
安卓SDK:安卓SDK包含一套稳定可靠且功能齐全的API,Java开发者使用起来会得心应手;Open GL ES(OpenGL for Embedded Systems)是服务于手机等嵌入式设备的开放式图形库,帮助开发者编写图形密集型应用;安卓的内置图库和动画库则使再简单的游戏也能拥有超棒视觉效果。
本地开发:各类游戏库让人眼花缭乱?偏爱C/C++游戏开发者可选择安卓NDK,可免去重新编码之苦。
第三方游戏引擎:很多游戏引擎能帮助安卓开发者提升开发速度,省去了重新编写代码的麻烦,反响相当不错。除了提高游戏可移植性之外,游戏引擎还包含大部分常见游戏设计模式以及生成游戏资产的工具,例如纹理和关卡。
游戏开发和第三方库:第三方库可以省去游戏开发者不少力气。除了针对个别设备处理器进行了优化从而节省算法开发时间之外,第三方库比优化编译器能更好地优化代码。
游戏服务:谷歌(Google Play Game
Services)和亚马逊(Amazon GameCircle)已推出各自的系列游戏开发服务,帮助开发者专注于游戏的核心功能,并为游戏轻松添加社交功能。
游戏发布:各种各样的分销机制可供开发者选择。
显而易见,可供选择的游戏开发工具实在不少。开发者完全可以专心编写游戏的核心代码,最大程度的优化游戏。话说回来,何必浪费太多时间在没法儿让游戏脱颖而出、让用户眼前一亮的工作上呢?
不论个人开发者或是大型游戏工作室,预算紧缺或是预算充裕——成功的大门永远敞开着。以下着重讨论上文所提及的资源。
开发者、英特尔开发工具和安卓SDK
很多文章、书籍和大学课程都以熟悉安卓平台为重点,这些就不多谈了。
将会是入门者的好帮手。在这里你可以了解安卓更多信息、下载安卓SDK和工具,开始你开发者生涯的第一步。
另外有一些可供选择。(Intel
Graphics Performance Analyzers :Intel(R) GPA)提供图形密集型游戏开发过程中的性能分析数据。(Hardware
Accelerated Execution Manager)可节省时间,加速安卓游戏或其他应用在主机上的模拟。
可以将你的应用(仍然用Java编写)和现成的C和C++库连接起来,从而使以往编写过的非安卓平台游戏代码用于安卓应用开发。尽管其本身有局限性和性能上的小隐患,但是当你不想浪费时间编写一大堆代码的时候,安卓NDK不失为一个好选择。()
第三方游戏引擎
游戏引擎堪称游戏开发的核心。如今可供安卓游戏开发者的选择又有哪些呢?即便是最简单的游戏,从零开始也要在开发和功能上花费大量的时间和精力。不过吃力不一定讨好,因为两者都不足以创造脱颖而出——或者更恰当地说——一鸣惊人的效果。游戏的功能和开发大同小异,设计框架也基本雷同。第三方开发者已经意识到了建立安卓游戏共享库和共享引擎的必要性,开发者大可不必大费周折。
游戏引擎提供技术支持,简化游戏开发,从而使开发者专注于游戏架构的细节改良,节省大量的时间和精力。游戏开发者普遍选择在简历上列出曾经使用过的游戏引擎从而为自己的开发能力升值。知名的引擎可以减少测试的麻烦,还具备针对性优化等诸多优势。举个例子来说,很多游戏引擎都提供针对英特尔设备的优化。
游戏引擎种类繁多,各有优势,诸如提供完整的游戏插件,底层库支持,2D/3D等等。囊括所有功能的游戏引擎通常提供整套开发工具,从格式转换器、关卡设计、映射工具、物理引擎到动画控件。还有一些提供常用的游戏机制和任务比如Avatar creation。
除安卓平台游戏引擎之外,还有同时支持主机和手机的跨平台引擎。安卓平台游戏引擎实在多不胜数,比如:、、、、、、、、、等。
游戏开发须选择最合适的游戏引擎,这是必修课。功能较齐全的重量级游戏引擎通常比轻量级的小引擎更为复杂。另外,功能较齐全的引擎已拥有独立的开发圈子。雇佣这些开发者,向他们寻求帮助就变得更容易。
还有一些使用单一代码库的游戏引擎专门提供跨平台支持,其使用者通常会用脚本语言来编写游戏。另外一些游戏引擎要求用针对不同平台的本地代码。总之游戏引擎选择不同,许可费用也会不同。
如果游戏开发对用户设备要求较高的话,那么针对不同处理器(比如英特尔x86)最优化的游戏引擎将是不二之选。
就算游戏适用于所有平台,若运行起来马马虎虎可不行。针对处理器调试过的游戏引擎能保证游戏在所有平台上都实现最佳性能,让游戏开发者尽享优质的新一代安卓设备才具备的尖端硬件功能。换句话说,这种引擎即使在廉价又迟钝的传统安卓设备上也可开发出广泛兼容各种安卓设备的游戏。
不同种类的游戏引擎举例如下,以供参考。来看看Libgdx和Project Anarchy,两者是游戏引擎中不同风格的典型代表。
Libgdx是一款2D/3D游戏引擎,兼容多种平台系统,包括安卓、Windows、Linux、Mac OS、黑莓、iOS,甚至还适用于浏览器。跟诸多跨平台环境不同的是,Libgdx主要用简便的Java语言来编写。除了为2D/3D界面提供图形API之外,还有OpenGL、数学库和物理库等基本模块。
Libgdx支持音乐和音效,各种API都包含在内,涉及文件、参数选择和文件格式解析。另外还有一些项目设置、字库生成和粒子编辑的工具。Libgdx游戏引擎是开源的,也一直受到悉心维护。Libgdx项目非常活跃,具有相当完善的文档数量,为众多应用和游戏所用。如果你并不介意使用Eclipse和一款典型的开放源代码环境来开发游戏的话,那么选择Libgdx准没错。
是(英特尔公司旗下产业)推出的一款移动游戏开发引擎,涵盖从物理引擎到音频3D定位,从代码分析到地形编辑等相当齐全的功能。跟Libgdx不同的是,Project Anarchy使用须有许可证。Project Anarchy的免费许可证可以为移动应用提供诸多便利,功能齐全的Havok引擎则需要另外的许可证。
Project Anarchy适用于安卓、ARM,x86和iOS系统。经许可可支持Windows、台式电脑或者控制台。其整套的工具可以满足游戏开发者团队的不同需要,包括设计、图形、动画和开发。
Project Anarchy提供专业的解决方案,但更倾向于使用Visual Studio和Perforce源代码控制一类的传统商业开发工具,这便与一些独立移动开发者所想的有所不同。如果你的游戏开发团队更擅长使用传统的游戏开发方法和工具,那么就选Project Anarchy吧。
以上只是众多游戏引擎中的两个典型代表,但是足以说明安卓游戏引擎广泛的选择余地。
游戏和处理器优化的第三方库
除了安卓SDK和谷歌服务之外,还有很多第三方库可供选择。举个例子:英特尔提供了很多工具和第三方库——尤其适用于那些对设备要求较高的游戏,开发者们一定不想错过。
尽管搭载英特尔x86处理器的安卓设备在第三方库上选择有限,英特尔仍大力发展高度优化过的第三方库,使开发者——包括游戏开发者从中受益。
这些第三方库针对特定英特尔技术进行了优化,用起来比优化编辑器更顺手。不过,由于它们仅能为x86 NDK所调用,开发者必须提供适用于其他处理器的应用NDK实现接口,或者具备一个Java实现接口。
(Integrated Performance Primitives :Intel(R) IPP)提供媒体和数据算法,涵盖过滤、变换、色彩空间转换、统计等模块,甚至适用于视觉计算软件。
在如今的游戏开发中,高性能以及并行执行能力(parallel execution)成为必备要素,以保持渲染管线高效运转,动画或音频效果逼真或是改良人工智能和网络等。
英特尔的线程构建模块(Threading Building Blocks:Intel(R) TBB)库为开发高性能和具备并行执行能力的应用提供了一个框架。除了SDK以外,安卓也许还有其他工具可以提高并行执行能力,但是却不具备可移植性。有了Intel(R) TBB,这个问题便迎刃而解,而且还附加了针对英特尔硬件的优化。
移动和游戏服务除了安卓SDK、第三方游戏引擎和第三方库,其他服务也同样值得关注——游戏开发者定能发现日后派的上大用场的宝贵资源。第三方,比如大名鼎鼎的谷歌,为安卓开发者提供着形式多样、内容丰富的整套服务。对于开发者来说,Google Play Game
Services是个不错的开端,这里为社交类游戏提供诸如排行榜、成就、云端储存(cloud-saving)、回合制策略游戏和实时游戏模式等支持。
其他服务则非针对游戏本身——例如Google Play的应用程序内部付费机制(Google Play In-App Billing)和Google移动广告服务(Google Mobile Ads)可以让游戏赚钱;谷歌+服务(Google+ services)将社交网络融入游戏中;需要云服务吗?试试Google Cloud平台(以谷歌广受欢迎的移动引擎作支撑)和谷歌云端推送(Google Cloud
Messaging)吧;谷歌分析(Google Analytics)用来收集应用及其用户的重要数据;想在亚马逊上发布游戏?Amazon GameCircle是开发者的不二选择。
游戏发布时间、精力、汗水和眼泪铸造出来的游戏等待的不就是上线的那一刻吗?安卓平台为开发者提供多样的游戏发布途径。大部分开发者都将游戏发布在诸如Google Play和亚马逊Appstore这样的知名市场上,且都遵循大同小异的程序:花点儿钱创立一个账户,等着谷歌或亚马逊将游戏列入他们的应用清单,接着卖给终端用户,然后收钱,扣除利润,最后剩下的才会流入开发者的口袋。大部分开发者都将游戏发布在诸如Google Play和亚马逊Appstore这样的知名市场上,且都遵循大同小异的程序:花点儿钱创立一个账户,等着谷歌或亚马逊将游戏列入他们的应用清单,接着卖给终端用户,然后收钱,扣除利润,最后剩下的才会流入开发者的口袋。就是这么简单。当然还有其他分销渠道来发布游戏。如果你要推出x86应用,可以在找到一些灵感。别忘了,分销渠道会因不同的游戏引擎和第三方库而受到限制,但若是免费和开源的游戏引擎就没什么问题了。不过,我们所提及的某些商业游戏引擎将规模和知名度定为硬性指标,要求开发者只能在Google Play、亚马逊Appstore一类的知名应用商店里发布游戏。另外,一些游戏引擎许可条款囊括了收入共享,对游戏定价、游戏内购买和货币化方法产生一定影响。在选择游戏引擎之前,还是先把那些条条款款浏览一遍较好。
小结如今游戏开发的门槛堪称历史最低,而安卓平台所提供的工具和服务使得开发者能够迅速将功能齐全的游戏推向市场。坐享最庞大的用户群,安卓注定会吸引无数玩家的青睐。休闲风格?史诗题材的拟真角色扮演?选择安卓平台,创意不再只是创意。更多Intel技术信息,尽在文章来源:(编译/张新慧 责编/翟方庆)
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章}

我要回帖

更多关于 安卓游戏开发培训 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信