I second the OpenGL route. It's pretty much the only thing that'll give you the performance you want. You may also want to check: http://www.youtube.com/watch?v=U4Bk5rmIpic http://www.youtube.com/watch?v=7-62tRHLcHk
On Mon, Apr 30, 2012 at 4:54 PM, Adam Ratana <[email protected]> wrote: > I think going with OpenGL is likely your best bet here. Further in the > book he will have the OpenGL implementation of the same. There is also the > excellent graphic library by the same, libgdx which you might also consider > using. Another place to look is the replica island source - a fully > implemented 2d game, and also look for the "sprite method test" which > compares different methods of drawing sprites. > > You can indeed choose to only render parts of the screen that you consider > dirty, which can also help with your performance, but likely you should be > able to get the performance you want with just openGL, a texture atlas and > drawing it all at once. > > > > On Sunday, April 29, 2012 12:00:45 PM UTC-4, realh wrote: >> >> I'm new to Android and Java, learning by porting a game I wrote years >> ago <http://bombz.sourceforge.net>**. Based on the book "Beginning >> Android >> Games" by Mario Zechner, I'm using the technique of creating a fixed size >> android.graphics.Bitmap (640x480) in RGB_565 format, rendering the game >> tile by tile to its canvas with drawBitmap(bmp, srcRect, dstRect, 0), >> then blitting the 640x480 bitmap to a SurfaceView's canvas, also using >> drawBitmap(). AIUI drawBitmap() will scale if necessary, but I've only >> tested with 1:1 scaling on an 800x480 device, leaving a gap on the side. >> All the above is done in a separate thread, using a SurfaceHolder. >> >> It's too slow, even without the debugger attached. The test device is a >> ZTE Blade. The original ran at 50fps and looked nice and smooth. I'll >> probably run the Android version a bit slower to compensate for >> controller difficulties, but I'd like to keep the same amount of >> movement per frame. I could halve the framerate and double the movement >> per frame, but I think I'd struggle to reach even 20fps, and dropping >> the rate further would make it unpleasantly jerky. >> >> I've added some basic profiling and got some average times: >> >> Game logic: < 1ms, fine, but still a lot to be implemented >> Rendering the game tile by tile: 46ms, too slow >> "Blit": 8ms, not too bad but would need improving to allow time for >> all the other stuff >> >> The core of the stage that's too slow consists of rendering tiles. Each >> tile is 32x32 pixels and the game world is made up of 20x15 of them. >> There's one source pixmap, also RGB_565, containing all the tiles, and >> the correct 32x32 portion for each tile is obtained by the srcRect. >> >> I don't think I could significantly improve the logic of the loop that >> does the tile rendering, but I could change the paradigm so that I only >> render the tiles that have changed between frames. However, the draw the >> whole world on each frame technique is nice and simple and used to work >> even back in the days of Acorn computers with <100MHz ARMs, and I want >> to progress to writing 4 way scrolling games, where the whole screen has >> to be updated every frame. And even in this one I sometimes have to >> update a whole load of tiles at once when there's a big explosion chain. >> >> So I think it's just too slow to use Canvases and Bitmaps this way. Is >> the answer to my problem to use OpenGL? >> > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- ~ Jeremiah:9:23-24 Android 2D MMORPG: http://solrpg.com/, http://www.youtube.com/user/revoltingx -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

