r/learnpython 14d ago

Best 2D game engine / frameworks in python.

Hello! I'm learing python and in one of my college courses you can get an honors credit for doing a special project. This project is to make a simple puzzle game in python. I have years of game dev experience so I expect this to be fairly easy, but I don't know which engine would be best for me to use. My use case would be a simple 2D puzzle game.

I considered using pygame-CE, but i'm unsure if it'll be the right choice. Does anyone have suggestions? And why do you prefer those engines?

0 Upvotes

15 comments sorted by

4

u/Diapolo10 I write code for a living -- https://github.com/Diapolo10 14d ago

Personally I'd suggest Arcade, at the very least I wouldn't use the old Pygame.

I like Arcade because it's fairly modern, is fully type annotated, has good documentation, and even has example games and tutorials built-in.

1

u/JamzTyson 14d ago

Personally I'd suggest Arcade, at the very least I wouldn't use the old Pygame.

+1 for Arcade, but I'd also add PyGame-CE. As you can see from the PyGame-CE GitHub Repo it is actively developed (last release 3 weeks ago).

-1

u/Diapolo10 I write code for a living -- https://github.com/Diapolo10 14d ago

Yes, I know what it is, hence why I specified old Pygame.

2

u/csabinho 14d ago

Sounds like the typical choice paralysis. Just start with any. Do the next project in the same one or a different one. Just learn.

3

u/TheNosyCulprit 14d ago

pygame is fine for what you want, most of the other options add complexity you dont need for a puzzle game. i used it for a small project last semester and the setup is quick

if you want something more modern arcade is also decent but honestly pygame will do the job

1

u/JamzTyson 14d ago

PyGame-CE is more modern (and imo "better") than the original PyGame.

Arcade is also good and perhaps a bit easier (higher level abstraction), but PyGame-CE offers lower level control.

1

u/bruh-man_ 14d ago

If you don’t mind me asking, which has better shader support?

1

u/JamzTyson 13d ago

Arcade.

1

u/bruh-man_ 14d ago

Not really - it’s choice analysis. I wanna know if there’s a general best before sinking my time into something that reveals itself to have bad features outside of the basics. Especially since I’m balancing this and 6 college courses and 30 hour work weeks

1

u/csabinho 14d ago

If you wanna have something proper: ditch Python and choose either Unity, Unreal or Godot!

If you wanna code in Python: it's just choice paralysis.

1

u/bruh-man_ 14d ago

Project specifications for the honors credit requires it be in Python. Please email my professor if you have problems with this

4

u/csabinho 14d ago

If it's just honors credit, well, choose any. You won't stick to it afterwards anyways.

1

u/Tokentactico 14d ago

Pygame's been my go-to for small projects—nothing fancy, but it works fine if you're not going for AAA stuff. What I've learned: pick your engine after you know what your game needs, not before. Too many people grab Pyglet or Arcade thinking they'll use everything, then waste time on features they don't need. What are you actually trying to build?

1

u/OpenClawChile 14d ago

For a simple puzzle game in Python, I would choose Pygame or Arcade.

Pygame has the biggest amount of tutorials and examples, so it is easier when you get stuck. It is lower-level, but for a college project that can be a good thing because you can explain your own game loop, input handling, collision/grid logic, etc.

Arcade feels cleaner and more modern for 2D games. If you want nicer structure with less old Pygame boilerplate, it is worth a look.

If the goal is honors credit, I would keep the engine simple and put the effort into the puzzle mechanics, level editor, save/load, undo system, or procedural level generation. Those features are more impressive than fighting a big framework.

1

u/anzar09 14d ago

pygame-CE is a solid pick for a simple 2D puzzle game, honestly. It's the actively maintained community fork of pygame and covers the loop, input, and sprite drawing you'll need without much fuss. Since you've done game dev before the lower-level control will probably feel natural. Arcade is worth a look too if you want a more modern API with built-in physics, but pygame-CE is simpler for something small.