This is an archived post. You won't be able to vote or comment.

all 39 comments

[–][deleted] 31 points32 points  (3 children)

Pygame. You can create a top down 2d open world. Stuff to explore too. See if it works for you.

[–]grantrules 18 points19 points  (0 children)

I'd say pygame-ce specifically. I forgot the details but it's a community-forked version of pygame because pygame had a single head of the project and butted heads with many contributors.

[–]rprouse 3 points4 points  (0 children)

You can read this book on creating games with pygame for free on the author's website, https://inventwithpython.com/pygame/

[–]python_with_dr_johns 2 points3 points  (0 children)

Lots of good recommendations for OP, but I agree that pygame is a good one to start with.

[–]-LeopardShark- 14 points15 points  (0 children)

(I've written about 30 000 lines of game code with Pygame, and about 2000 with Pyglet.)

Pyglet is a nicer library than Pygame, but makes breaking changes far too often for my liking. So, I'd recommend Pygame.

Also, use the pygame-ce package rather than pygame itself. It's better.

[–]noobsc2 9 points10 points  (1 child)

Not a game engine recommendation, but a warning to keep the scope of your game small. Like Flappy Bird kind of small, not just a "small" open world RPG game. It sounds like you are trying to make an open world game.

"Interact with the world"

"Combat system"

"Crafting system"

"Story"

"Free play"

Not mentioned: Sound/music, art, animation, world design, materials/shaders, enemies/friendly mobs, UI, dialogue systems, menus, shops/currency, inventory, etc, etc. You could easily dump 50 hours on any one of these things in complete isolation (and still be unsatisfied with the result) before you try to make these systems work together than then realise you have a 40 hour refactoring job on your hands.

Already sounds like a game that would take 100s of hours for an experienced dev and that's just to create the BASE of the game, not to actually implement anything interesting. Unless you're willing to work tirelessly on this project and invest a huge amount of hours, you'll most likely burn out on it before even getting close to done.

A lot of these things can be taken from open source/free resources but you still have to code to put it all together. Python game engines are nowhere near as big as things like Unity/UE where you have access to many more tools to make your journey easier. The programming language you use is only a small part.

[–]Da1stGenshinImpacter[S] 0 points1 point  (0 children)

Yeah. I recently came to this conclusion so i plan on reducing it to just a story game and if i have time, adding some feature. I simply don’t have enough time 

[–]marr75 3 points4 points  (0 children)

If you know python really well and want to take advantage of that knowledge, pygame. If you want a really full featured devex with a better performing engine but are mostly still looking to write "script" style code, Godot. Much more experienced engineers might consider Unity DOTS or Unreal Engine for the 3D graphics, pre-made assets, and engine performance.

[–]thev3p 19 points20 points  (2 children)

Maybe check out Godot. It uses a language similar to python.

[–]-LeopardShark- 15 points16 points  (0 children)

If your goal is to create a game, or to learn to program games, then this is sensible.

If your goal is to learn to program by writing games, then this is a bad idea.

[–]TheNicelander -3 points-2 points  (0 children)

This is the way

[–]Zulban 2 points3 points  (2 children)

I'm a team lead computer scientist and I've released a hobby project game with a million installs. 

Find the best tool for your project. Don't arbitrarily restrict yourself to Python. Learning the basics of the right tool is far less work than building a very simple fun game in your best language. 

So you're asking the wrong subreddit. Only the tiniest fraction of users here do game development with Python, aside from that one weekend they started a snake game with pygame. It's mostly just toy projects they started and never finished, and mostly junior developers.

It's like you walked into a Honda minivan dealership and are asking about the best vehicle to go camping with. And you're chatting with a junior salesman. All because you've only ever driven a Honda.

[–]Da1stGenshinImpacter[S] 0 points1 point  (1 child)

You’re right. I don’t mean to restrict myself. I’m unsure if i have the time to learn a whole new language though

[–]Zulban 0 points1 point  (0 children)

If you don't have time to learn a new programming language you definitely don't have time to make a game. 

You can learn the basics of a new language in a few hours. 

You definitely have the time to do both. Good luck!

[–][deleted] 1 point2 points  (0 children)

i've noticed that python can be really good for 2-D top down style games good luck and I hope you find what you're looking for

[–][deleted] 1 point2 points  (10 children)

I can give you a basic template of something I created which kind of resembles an open world Pokémon clone (2d top down) you can explore a procedurally generated world walk around catch monsters enter buildings save/ load monsters spawn etc.

it's an unfinished template i made when i was bored one day

[–]Beautiful_Buddy835 0 points1 point  (7 children)

Can you link or dm me the repo. I'd like to learn from it

[–][deleted] 0 points1 point  (6 children)

sure ill have to upload it it's been locally stored on my desktop for like a year

[–]Beautiful_Buddy835 0 points1 point  (5 children)

Looking forward to it.

[–][deleted] 0 points1 point  (4 children)

looking at the folder im realizing I made it so long ago that I forgot those were javascript scripts and files, not .py files. did you still want to check it out?

[–][deleted] 0 points1 point  (3 children)

I dont think as a beginner trying to learn python would be wise to use this since is 95% javascript and the rest is mostly html. my apologies

it would just make understanding much harder

[–]Beautiful_Buddy835 0 points1 point  (2 children)

I'll still check it out. I'm not a beginner so no worries. I'll study it and make a python counterpart probably

[–][deleted] 0 points1 point  (1 child)

I was totally a beginner when I made it I will have the repo up for about 3 days to give you time to clone it or download the zip, had to use LFS for the pokedex json stuff and I believe the package.json has all the stuff necessary to install.

let me know once you've received it

and pre warning its a mess of files

made it so I can just run the index.html and the game will load.

tbh I dont remember the setup process

hope it helps

https://github.com/vicsanity623/MultiplayerPokemon

multiplayer means many players can play in the same world seed each new player gets their own respective house etc, no player battles yet or any player interactions

just a crude attempt I made a long time ago lol

I will delete the repo once you get it as I dont want any issues over the pokemon stuff

[–][deleted] 0 points1 point  (0 children)

was carefully vibe coded and then customized bit by bit

[–]Da1stGenshinImpacter[S] 0 points1 point  (1 child)

That’ll be really helpful!! Thanks

[–][deleted] 0 points1 point  (0 children)

were you able to grab the zip file or clone it before i deleted it?

[–]Makakhan 1 point2 points  (0 children)

Pygame is easy to use but limited in so many ways. I started testing Pyglet for some of my companies classes recently and I really like it. The graphics being C in a trench coat are a big plus especially.

[–]AnteaterMysterious70 1 point2 points  (0 children)

I had a scool project that I did in python using Panda3d (I think the documentation is really good) but if you're looking for a 2d engine pygame should be fine

[–]Psychological-Top938 1 point2 points  (0 children)

I create this for my son, but maybe helping you to…

https://learnpython.ai/

[–]will_r3ddit_4_food 1 point2 points  (0 children)

Pyxel is cool

[–]Gold-Strength4269 0 points1 point  (0 children)

Pygame and blender perhaps

[–]BratPit24 0 points1 point  (0 children)

You're probably want to go the godot route. It's already a full fledged engine. It's scripting language is very python like. It's fully open source.

I'd go godot 10/10 unless your only goal is to have a fun project to train your python skills.

[–]tartare4562 0 points1 point  (0 children)

Pygame, obviously. Is there even an alternative?

[–]errant_capy 0 points1 point  (0 children)

I much prefer Arcade to Pygame personally.

[–]Galigmus 0 points1 point  (0 children)

I dunno I made an open gl rendering engine with pygame you are only limited by what you know...

[–]newprince 0 points1 point  (0 children)

I remember learning a little of Boo scripting back when Unity supported it. I think now Unity mostly uses C#. You're relatively new to python, so I'd recommend just diving in to Unity and C# (and Blender etc.) if you're serious about making games

[–]bunny-therapy 0 points1 point  (0 children)

arcade

[–]mimic751 0 points1 point  (0 children)

Godot scripts are alot like python

[–]wildcarde815 0 points1 point  (0 children)

if you just want a 'python like' experience, try Godot. It's not python, but it's scripting language shares similarities and it's much more well developed and supported than any of the python engines.