Pygame Comparison

The Python Arcade Library has the same target audience as the well-known Pygame library. So how do they differ?

Features that the Arcade Library:

  • Draws stationary sprites much faster. See Drawing Stationary Sprites

  • Supports Python 3 type hinting.

  • Thick ellipses, arcs, and circles do not have a moiré pattern.

  • Ellipses, arcs, and other shapes can be easily rotated.

  • Uses standard coordinate system you learned about in math. (0, 0) is in the lower left, and not upper left. Y-coordinates are not reversed.

  • Has built-in physics engine for platformers.

  • Supports animated sprites.

  • API documentation for the commands is better.

  • Command names are consistent. For example, to add to a sprite list you use the append() method, like any other list in Python. Pygame uses add().

  • Parameter and command names are clearer. For example, open_window instead of set_mode.

  • Less boiler-plate code than Pygame.

  • Basic drawing does not require knowledge on how to define functions or classes or how to do loops.

  • Encourages separation of logic and display code. Pygame tends to put both into the same game loop.

  • Runs on top of OpenGL 3+ and Pyglet, rather than the old SDL1 library. (Currently in the process of moving to SDL2.)

  • With the use of sprite lists, uses the acceleration of the graphics card to improve performance.

  • Easily scale and rotate sprites and graphics.

  • Images with transparency are transparent by default. No extra code needed.

  • Lots of Example Code.

Features that Pygame has that the Arcade Library does not:

  • Has better performance for moving sprites

  • Python 2 support

  • Does not require OpenGL

  • Has better support for pixel manipulation in a memory buffer that isn’t displayed on screen.

Things that are just different:

  • Sound support: Pygame uses the old, unsupported Avbin library. Arcade uses ffmpeg. Both are a headache.

Arcade Performance Information.