|
查看: 10230|回复: 102
|
Android 游戏制作分享区
[复制链接]
|
|
|
终于开贴了。
因为本人一直在摸索中,所以迟迟未能开贴。。。。而且我的周末非常有限。。。
这里也有人制作 android 游戏吗? 欢迎分享心得.
看来,我也不用帖什么 link 去哪里下载 SDK 了,相信大家都知道, 教学的地方有很多,
anddev.org, androidforum 等等都有不错的教材。
我的处女作品在此, 只是一个很简陋的 turret defense小游戏, 只是希望可以从中学习一些 android的基础。。。
http://bluecapstudio.blogspot.com

心得分享:
=====
这个小游戏, 也没什么创意的说,因为是处女作,也是因为有一阵子在 kongregate玩那个 DTD 玩到上隐了。
http://www.kongregate.com/games/preecep/desktop-tower-defense-1-5 <-- (是1。5 版本)
所以就觉的自己也想试试看做一个。。。
一开始我是用opengl es 来做画面的,但不晓得为何在emulator上有点慢,可能我放太多glQuad 了,那时我做一个tile一个quad..差不多有 20x18个格子,在加上背景,子弹,怪兽,爆炸各种sprites,各用一个quad,
后来,因为画text有点不方便,而且对GL的设定不熟悉,
所以,又跑去研究画面用基本 canvas 的做法,然后又觉得蛮简单又顺畅的,所以就暂时用着先 。。
其实我比教感兴趣的是那个有用 accelorometer 的,
http://code.google.com/p/openintents/wiki/SensorSimulator
所以还在研究当中, 但目前还没想到什么好游戏点子可以用上。。
[ 本帖最后由 tensaix2j 于 29-4-2009 10:20 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-3-2009 07:55 PM
|
显示全部楼层
谢谢。
我也是。 本来去年就该研究的,可是拖下拖下就拖到今年了。。
应该没办法出席了. 人不在KL呢。 |
|
|
|
|
|
|
|
|
|
|
发表于 18-3-2009 08:57 PM
|
显示全部楼层
回复 1# tensaix2j 的帖子
要玩accelerometer嗎?
我有研究這個的喔
我都拿accelerometer來做gesture recognition的說 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-3-2009 09:54 PM
|
显示全部楼层
欢迎讨论 |
|
|
|
|
|
|
|
|
|
|
发表于 19-3-2009 12:46 AM
|
显示全部楼层
回复 5# tensaix2j 的帖子
不過都沒有android phone啦
很難玩那個accelerometer的
我是用wiimote來玩的
我的project來的 XD |
|
|
|
|
|
|
|
|
|
|
发表于 19-3-2009 09:19 PM
|
显示全部楼层
终于等到成品了,bravo!!
android market的审核怎么样?会不会严格? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 19-3-2009 10:20 PM
|
显示全部楼层
苦哥也来了。。
其实我还没放上去的,因为现在,paid app 还没开放给新家波呢。。。
而且 要$25来注册。。而且,这个游戏还有很多地方要tweak。。
对了,你的iphone app 进展的如何了。
[ 本帖最后由 tensaix2j 于 19-3-2009 11:08 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 20-3-2009 10:30 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 20-3-2009 10:41 PM
|
显示全部楼层
教学就不开了,我研究的也不多,
只能大概大概的分享我的做法还有一些基本的方向。。。
首先就是那个基本的gameloop, 相信很多人都认识的。。不过,在 手机上,不可以用到cpu 太高,不然会很快没电池, 所以那个gameloop 不能太紧
我大概的做法就是
一个thread 会进入系统的 event loop, 负责收event的(例如 touch event),其实就是原本的activity。。
还有一个rendering thread 会负责把game state render 出来成画面的。<-- 这个有蛮多种做法的. 我暂时只用timer。。
也可以参考这个人的做法:
http://www.rbgrn.net/content/54- ... id-game-development
public void run() {
while (isRunning) {
while (isPaused && isRunning) {
sleep(100);
}
update();
}
}
private void update() {
updateState();
updateInput();
updateAI();
updatePhysics();
updateAnimations();
updateSound();
updateVideo();
}
接下来,就要讲解 rendering 的做法了。。。
我是从 sample apps 研究起的。。。
在 ..... /samples/ApiDemos/src/com/example/android/apis/graphics
里有蛮多samples 参考。
那个 cubeRenderer 里可以参考到opengl es 的做法
还有那个 lunarlander 可以参考到 canvas 的做法。。
这些有很多 reusable class 可以善用,不用自己重写。。例如 GLrenderer.java 等等。
-----------------------------------------
一般的游戏,假如是2D 画面, 用普通的canvas (就是那种bitblit的做法) 则可, 如果是 3d的话就最好是用GL,
以下是某人(不是我) 的分析关于 canvas vs GL
Canvas:
-Bad: on real device runs a bit slower than the emulator on a C2D 2.4GHz + DDR2@2x400MHz
- around 20fps in that game
- good: very easy to start-up with
- good: directly draw text
OpenGL:
- on emulator that game runs at 2fps, on real device it's over 50+ FPS!
- bad: hard to start-up with
- bad: keep textures in POW sizes
- bad: no text, make spritesheets and custom text-drawing funcs
- bad: 1 cheap Australian Android phone comes-out very soon, with no gpu, with 320x240 screen. Oh well, at least it's just like $50 cheaper, and lacks too many G1 features to be important.
- bad: IntBuffer is buggy, so no streaming dynamic data in GL_FIXED format
- good: again, 50+ FPS.
- good: blending! alpha, additive, multiply, subtract - its' awesome
- good: per-vertex color-modifiers, alpha can specify per-quad opacity.
- good: lets you put the game-code in another thread, so finally a real game-loop. As it should be for games.
OpenGL ES 大致上都有 openGL 的功能, 不过,可能有很多你熟悉的功能不在了(可能是在手机上有 performance issue的关系)
假如是完全没碰过 openGL, 可以去 nehe 那边摸一摸.
假如对GL 已经有一点了解,可以直接去研究ES 。。。
这里好像有一些教学
http://www.imgtec.com/PowerVR/in ... osOpenGLES1xMBX.asp
大概的做法,
3d模型都是由多个 GLtriangle/ GLquad 组成的, 然后,在上 texture.
一个 triangle 有 3个 点(vertex) 每个点有三个coordinate(x,y,z)..
for performance reason, 一般做法是把这些数据都丢到一个 buffer。 (java.nio.buffer) 。
而且,要准备 三个 buffers, 一个是装 vertices ,一个装 indices,一个装 texture的coordinates
然后在run 里 call 这个glDrawElements把它画出来。
那个indices 拿来干嘛的呢? 因为要省vertices, 。。例如一个cube, 假如你用 6个 quads 的话,就有8个点(vertices) overlap,
所以, 那个 indices buffer 就是可以 让你减少 number of vertices 你需要的.
就写到这边先。。。。
唉, 这几天还有些事情要处理。。。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 25-3-2009 10:21 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 26-3-2009 11:11 PM
|
显示全部楼层
丢进slideme 还有 phoload 了。。。。
哈哈,不懂有人会去download 吗。。。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 27-3-2009 09:14 AM
|
显示全部楼层
唉。。。说的是咯。。
现在还在犹豫要不要买developer phone 还是跟singtel 签约呢。 |
|
|
|
|
|
|
|
|
|
|
发表于 28-3-2009 07:29 PM
|
显示全部楼层
我看到dev phone還滿便宜的說
有點想買
但是我比較期待G2
 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 29-3-2009 01:12 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 30-3-2009 09:30 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 30-3-2009 11:22 PM
|
显示全部楼层
|
那天经过singtel的店,玩他的g1 又玩它的iphone,还是觉得iphone画面美多了。。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 30-3-2009 11:27 PM
|
显示全部楼层
回复 18# 苦瓜汤 的帖子
那要费用多少呢??
没有 developer program 不能把软件灌进去手机吗? |
|
|
|
|
|
|
|
|
|
|
发表于 31-3-2009 07:42 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 5-4-2009 06:58 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 5-4-2009 07:00 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|