(I just wish for a simplified accurate answer) On Tue, Jul 12, 2011 at 6:26 PM, Brian Brown <bro...@gmail.com> wrote:
> Yes, I'm only blitting the visible parts. It's the tile layering that > causes 3x more blitting. (floor, carpet, and a possible wall for every > tile.) > Blitting the whole 300x300 map will take a very looooong time . . . > > . . . > > Okay so, will SDL 1.3 regular blitting be 3x faster? > > On Tue, Jul 12, 2011 at 11:52 AM, DR0ID <dr...@bluewin.ch> wrote: > >> ** >> On 12.07.2011 20:12, Brian Brown wrote: >> >> Thanks guys, >> I'm not using Pyopengl. (I found it a little too hard to use.) >> Pygame and SDL are working perfectly for me-- except-- I need faster >> blitting. That's all, I think. >> I've designed my game's graphics to simply rely on the blitting of many >> 60x60 24-bit surfaces. (Approximately 300 to 500 blits per frame on a >> scrolling screen of 640x480 resolution. The game is tile based with an >> overlapping 3D illusion. The floor is drawn first, the "mat" second, and the >> characters and "blocks" sorted by distance from bottom of screen are last. >> Should look fantastic when graphics are finished and when the fps is >> higher.) >> >> If SDL 1.3 will blit basic 24-bit surfaces (with a single colorkey) 3x >> faster I think my game will work quite nicely. >> >> * I am using convert(). >> * I'm *not* using per-pixel-alpha. >> * I even blit the freshly-loaded-surfaces onto a new surface to be sure >> the surfaces haven't inherited any unnecessary data from the png file. (I >> found this to significantly increase speed.) >> * The whole screen is scrolling so I use pygame.display.flip(). >> * I think I'm using 24-bit images. >> * I need a high refresh rate for high speed chases with the local wildlife >> . . . (bear, tigers, unicorns etc.) >> * I'll have to try using surface.fill() instead of blitting . . . >> * My program's code is already running at a nice speed. >> >> Sounds like a great idea to continue programming with pygame and then >> later speed things up, but-- >> >> It's just a little harder to program with slow graphics --My personal >> policy for low stress programming is to reward myself after every day of >> hard work by playing the game, and it's not the most fun in slow motion. >> >> Is there a way to convert 24-bit pygame surfaces to 8 bit RLE just >> to temporarily speed things up for testing? >> Thanks for the great advice guys. >> >> On Tue, Jul 12, 2011 at 6:14 AM, René Dudfield <ren...@gmail.com> wrote: >> >>> On Tue, Jul 12, 2011 at 1:59 PM, Sean Wolfe <ether....@gmail.com> wrote: >>> >>>> Dude this was a really good answer. Rrrrrespect >>>> >>>> >>>> Indeed, good answer. >>> >>> Also, are you using fast rendering techniques? >>> >>> - Using 8 bit RLE encoded surfaces for the low colour depth images >>> - avoiding per pixel alpha surfaces. >>> - using convert() appropriately (except not on those low colour >>> surfaces). >>> - using fill() to fill in colours instead of blit. >>> - using LayeredDirty sprite group, and DirtySprite sprites to do >>> dirty rectangle updates. >>> - updating parts of the screen at the lowest refresh rate they need. >>> eg, displaying fps, may only need be done once every 10 frames. >>> - profiled your game ( to see which parts are slow.) >>> http://pygame.org/wiki/Profiling >>> >>> >>> >>> SDL 1.3 is faster with opengl/direct3d surfaces. But it's _still not >>> finished. >>> >>> >>> cu. >>> >> >> >> >> Hi >> >> Just a side note: If you have a scrolling world then blit only the visible >> parts, that will give you a performance boost (not sure if you do this >> already). >> >> ~DR0ID >> > >