[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Is Pygame suitable for full HD games?


you pretty much need to use OpenGL at this resolution for a 5 layer paralax scrolling game... unless you have a very fast machine.

It is possible to do 1080p games in pygame with software... but only on really fast machines, with a lot of optimization.  Using OpenGL with pygame will most likely get you better results on more machines with less effort.  Especially if you are drawing 5 layers at once.

Using one big background that moves, with a few paralax areas it is possible.  Especially using Surface.scroll, and if you surfaces are optimized with Surface.convert.


On Sun, Feb 5, 2012 at 3:23 PM, Luis Morcillo <luismorcillo@xxxxxxxxx> wrote:
(I sent this earlier but I forgot to subscribe to the original mailing

Hi all! I'm currently developing a 2D platformer (well, actually I
started it a lot of years ago with another language, but I got stuck
and stopped developing, and now I've rebooted the project with
Pygame), and I'd like it to be something like Sonic or some other
great platformers from the 16-bit era, specially from Sega Genesis
(Dynamite Headdy, Rocketknight Adventures, Ristar...) but in full HD.

Yesterday I finished the tiled background engine, and I've noticed a
15 fps drop in 1920x1080. And when I added a 5 planes parallax scroll,
fps are going down to 10-20. I doubt it's the machine, as I play games
like Starcraft in Ultra settings on it. Also, I'm noticing most games
developed with Pygame are 640x480 or 800x600. So the question would
be: is Pygame suitable for doing a full HD side-scrolling platformer?

My current approach is to render all scrolls planes and the tiled
background to a single surface (the ".image" of my Stage class),
instead of rendering each one in different planes. I haven't tried
separating yet, but I doubt it will improve performance, as the
blitting will be the same. Am I wrong?

I've read the Surface.blit() function is somehow slow and shouldn't be
overused, but I don't know another way of rendering images to the
screen. I tried using flags "HWSURFACE | DOUBLEBUF | FULLSCREEN" and
it increased 2-3 fps. Am I missing some other optimization or am I
just using the wrong engine for an HD platformer?

Thanks a lot in advance.