In this “vs” comparison article we are going to compare the Pygame and Python Arcade Libraries to see which is the better game framework to be using.
Full disclaimer, the difference between the Pygame and Python Arcade is not very significant. They both belong to the same category of game development, and are similarly built as well. This article is just meant to highlight the small differences between the two, so that you are well informed on the differences, and whether they effect you or not.
What is Pygame?
Pygame is written using the C Language and built upon the SDL (Simple DirectMedia Layer) library. It had it’s initial release in October 2000, replacing the inactive PySDL library. It has, and is still widely used by the community for the creation of 2D games.
Development on Pygame had seemingly completely ceased for over a decade, but towards the end of 2020, Pygame 2.0 was released which brought about improvements in several key sectors. It also switched from using the old SDL1 library, to the newer standard 2.0 which brought in many new features.
What is Python Arcade?
The Python Arcade was released in 2017, and built on top of the OpenGL and pyglet libraries. It’s a lot newer than Pygame, which gives it some pros, but also a few drawbacks.
It has the same target audience and goal as Pygame, and was built with the aim of taking advantage of Python 3’s features as well as solve several problems one may face while using Pygame.
The Python Arcade has it’s own website, where you can find alot of tutorials on it, documentation, comparison and sample projects.
Pros and Cons
If we were to talk about performance, Pygame is better when drawing moving sprites, which is a quite a notable advantage. The Python Arcade on the other hand, is faster at drawing stationary sprites.
Compatibility wise, Pygame has a strong position, as due to it’s age, it supports alot of older platforms and versions such as Python2. It doesn’t require OpenGL either, so it can work on platforms that don’t support it.
The Pygame documentation isn’t anything special, but the number of community tutorials are far more in number. This is of course, due to Pygame’s age and popularity. You can even find a tutorial series on Pygame here on our site.
Community plays a much larger role than one might think. The larger the community, the easier it is to find solutions, ask for help or find tutorials to learn from.
Pros and Cons
One of the best things about the Python Arcade is that it’s relatively new. Hence, it supports many of Python 3’s newer features such as type hinting and decorators. This also means that it is under Active Development, and is receiving newer features and updates at a steady pace, as of 2021.
The Python Arcade has an inbuilt Physics system that can be used in a few situations like platformers. One particularly handy feature is the Hit box algorithm, which defines the boundaries of a sprite. The hitbox can even bend and curve around a sprite to make a complete match, instead of a simple square. This is a feature you won’t find in Pygame.
Another handy feature is the supports Animated Sprites. This, and the inbuilt Physics engine however, can hinder you learning as they take care of most of the job for you. Beginners will love these, but more advanced users may want to create their own engine from scratch.
Using the standard Cartesian system taught in Mathematics, where (0, 0) is located at the lower left corner of the screen, instead of the upper left. This isn’t a Pro or a Con, just a simple difference.
When it comes to the code structure, the Python Arcade Encourages separation of logic and display code vs Pygame, which tends to put both into the same game loop.
The Python Arcade has the ability to use the acceleration of the graphics card to improve performance when managing sprites lists. Furthermore, Rotation and Scaling are much more flexible and are free operations.
The Python Arcade and Pygame are both great options, and belong to the same category of game libraries/frameworks. Because of this, it’s a bit hard to judge between either.
If you like more freedom and doing things from scratch, Pygame will appeal to you a bit more. It’s built off of a low-abstraction level language (C) meaning it’s fairly bare-bones. The Python Arcade isn’t too different, but does provide several inbuilt features and simplified code.
While this will appeal to many, some will find that it limits what you can do (on a more advanced level).
In short, I recommend either one of two possible routes, based on your preferred style of learning. Either start off directly with Pygame and expose yourself to all the workings of game development immediately, or use the Python Arcade as a stepping stone.
The Python Arcade is simpler to understand and use, which would benefit beginners. Later on, if you feel like it’s getting restrictive, you can then switch to Pygame. Since they share alot of (game) concepts and aren’t too different in nature, the transition will be fairly smooth.
This marks the end of the Pygame vs Python Arcade Comparison Article. Any suggestions or contributions for CodersLegacy are more than welcome. Questions regarding the tutorial content can be asked in the comments section below.