Game programming is very rewarding nowadays and it can also be used in advertising or as a teaching tool. Game development encompasses mathematics, logic, physics, AI, and much more and it can be amazingly fun. In Python, up until now, Pygame library was employed for the same, but there is a new module: Arcade Library. Here we will discuss how they differ from each other, but first, let’s understand what exactly they are.
Pygame: It is a Python module used for designing video games, by allowing computer graphics and sound libraries in order to develop high-quality and user interactive games. Pygame was developed by Pete Shinners. Till 2000, it was a community project, later on, it was released under open source free software General Public License. Pygame is portable and its code is compatible with all operating systems. It is also possible to create open-source, free, freeware, shareware, and commercial games with it. Pygame code is written in C language and the module comes with installers for Windows, Linux and macOS. It can be easily used on handheld devices too.
Arcade: It is a Python module but works for Python 3.6 and above only. It tries to cover most of the functionalities that were not supported by Pygame. This also uses computer graphics and sound libraries in order to develop high-quality and user interactive games. Arcade was developed by Paul Vincent Craven. Arcade needs support for OpenGL 3.3+. It is built on top of OpenGL and Pyglet and is compatible with Windows, Linux, and macOS X. It is also possible to create open-source, free, freeware, shareware, and commercial games with it.
Table of Differences between Arcade and PyGame
Arcade |
PyGame |
---|---|
Arcade is based on Open GL | PyGame is using the newest and older versions of SDL 2 |
It has new features of Python 3, like decorators and type-hinting | Supports python 2 and python 3 |
Supports animated sprites | Doesn’t support animated sprites |
API documentation for the commands is good |
|
Command names are consistent i.e to add to a sprite list append() is used | Commands are consistent i.e to add to a sprite set add() is used |
Less boiler-plate code than Pygame and also much easier to write and to understand. | No such facility |
Encourages separation of logic and display code | Tends to put both into the same game loop. |
Runs on top of OpenGL 3+ and Pyglet | Runs on SDL2 library. |
Arcade uses SoLoud. | Pygame uses Avbin library. |
Less flexibility about, what can be done with the library that author didn’t think of. | More flexibility about, what can be done i.e 3d games (even when the library is normally for just 2d) |
Can’t be deployed on android | Can be deployed on android |
Runs on GPU | Runs on CPU |
Has smaller community. | Has bigger community. |
Has many things build-in, like ray-casting shadows or physics engine. | Has many extension-libraries made by community, that fill gaps in possibly needed features. |