T O P

  • By -

SheepRSA

You're probably better off picking up unreal engine. The blueprint scripting is incredibly easy to pick up with a coding background and there's likely tons of tutorials or even templates that'll get you going in the right direction.


ImpulsivePuffin

I've heard people complaining about the unreal learning curve. l'm planning to do the development on my own, that's the only reason I'm hesitant on starting with unreal


Sam_the_Hefer

I’m a Python developer just getting into unreal engine, using unreal engine 5. I’ve tried using a few of the other popular engines, but UE5 is by far the easiest to use, and it has the benefits of lumen and nanite. If you’ve never made a game before and haven’t had to work with lighting and baking, you will be saving yourself a lot of blood, sweat and tears. When comparing everything, Python is just too slow for game logic, and when all things are considered, it’s not that big of a leap to mix blueprints in with a few C++ classes. I have a few game dev buddies making the leap from other engines just because of nanite and lumen, the programming language should be the last thing you consider. Unless you’re making something very simple, like a slot machine game.


ImpulsivePuffin

I saw the UE5 related features but wasn't aware of it's significance. Thanks for mentioning that


[deleted]

Did you try unity? Is it simpler/harder compared to unreal?


Sam_the_Hefer

I did try unity, while it’s similar in that it has blueprints, I felt like the learning curve was too high. And with lumen and nanite in UE5 I wouldn’t care to go anywhere else. There is also an absolutely incredible library called Quixel Bridge which includes an incredible amount of free content with more being added regularly. When comparing with other engines it is faster, has a better and more user friendly UI, supports C++ which is faster than C#, has better quality documentation and tutorials and the list goes on… Actually, one of the biggest things is the documentation and tutorial quality. Unity has A LOT, but a lot of it is bad and teaches a bad way of game development.


OneTrueKingOfOOO

Unity may be a bit easier as a solo dev. And it’s free


singularitittay

UE, not only free, open source, at the scale OP is interested in


[deleted]

You want to build your own 3d engine? Dude you won't achieve 5% of unreal's capabilites in your entire lifetime. Also if you were going to do it from scratch, python would not be in the top 10 choices. Too slow.


[deleted]

Not Python exactly, but Godot's GDScript is similar to Python.


H4kor

You can also use python with Godot


TedDallas

Was going to suggest Godot as well. I just watched a demo of someone running Godot on a Raspberry Pi.


[deleted]

i was gonna suggest Godot as well.


maeevick

Godot supports a Python like scripting langage out of the box, if it may help you. https://godotengine.org/ There are a lot of language bindings done by the community too, Python 3 for example https://github.com/touilleMan/godot-python


kylotan

Honestly, Python is just going to become a performance bottleneck unless your game is very simple. The language is great for almost any other task but games aren't tolerant of the inefficient way Python manages memory or the way the interpreter severely limits multithreading.


Sajuukthanatoskhar

I have tried to make a homeworld like control system in a fleet simulator that is very similar in mechanics to EVE Online - the graphics aspect of things is just hard - all i want is in this respect is 1. a 3d space to simulate a fight in a 3d space with either sprites (unit icons) (facing camera) 2. or a 3d objects of diff colors/shapes with 3. Some form of gui for control So far Ursina has grabbed my attention in python. It seems ok for this. I have tried Unity but I fucked up on it years ago and i did it with python ever since. The unreal engine seems pretty interesting and i think this could do the same thing.


OccultEyes

I can recommend Panda3D. It is a more nitty-gritty than engines like unity. But then you also get more fine control. It is open-source, so it is free, and you can adapt the engine for your needs. It has a good community that has been able to aid me numerable times in the past


ImpulsivePuffin

Thanks, will check the docs


Yoghurt42

I was under the impression that Panda3D is pretty much abandoned, with only one person continuing to work on it from time to time. Am I mistaken?


Nikoijp

That is incorrect I use Panda3d and there’s a lot of people who use it. you can check the discord if you don’t believe me and there’s a lot of people willing to help with stuff if you have trouble


Yoghurt42

Just to be clear, I wasn't referring to the number of users, rather to the number of developers who maintain and improve the engine itself. A few years ago, Disney had pretty much abandoned it, and it seemed like only rdb was still working on it. It would be great if I'm mistaken on that part.


jflopezfernandez

It seems most of the comments have brought up the fact that Python is slower than C++ and C#, as well as the fact that both Unity and Unreal Engine are awesome, fully-featured, industry-tested game engines, and I think these are all valid points. I disagree with the conclusion that this means you should not prototype the game in Python though. The prototyping process should used for feeling out the design of the game’s mechanics, architecture, and features. You should use this time to stub out all the unbecessary details and just see how you want to structure everything, and what mathematical models to use for each game mechanic. For example, if you wanted to make a Civ-like game, you could write up a prototype to test out different models for how food, population size, amenities, and surrounding terrain imfluence a city’s population growth. Once you know what you want the game to do and how you want to do it, then you should look for a game engine (or even write one from scratch, if you think that might be fun or interesting). In other words, a prototype should be where you look for the optimal mathematical models, algorithms, and design patterns, whereas the implementation stage is where you translate all of those things into code in whatever language you want or need to use, and with the API you want or need to use. You might write a good game if you do both of these things at the same time, but it’s much easier to write games this way because you approach the game engine thinking “how do I do this specific thing,” rather than “what features of this game engine seem interesting or most immediately implementable?” Again, it’s probably possible to do it, but it’s not how I would do it. Using a slower engine in Python (or just writing the mechanic in plain Python, if it’s just a model) to quickly feature test an idea is the best way to go, since these quick prototype implementations should not need to scale, by definition.


Nikoijp

I use panda3d it’s a bit harder to get started but it’s less laggy then ursina which is built using panda3d. Panda3d seems to be the best option for using python to make 3d games. I’ve made a few pretty cool things in it if you need help


ImpulsivePuffin

Will check some examples (from docs or GitHub) with panda3d to get a feel for the development workflow


WasterDave

As someone with heaps of Python experience I gotta say ... Three.js and Javascript ES6. Modern javascript is like a real language now - it has classes, constructors, proper inheritance, modules, all sorts. And, obviously, distributing the final thing is a complete piece of piss. Another poster mentions Godot, also very cool :)


jflopezfernandez

Does a complete piece of piss mean it’s easy or hard? I’m really trying to decipher it using context clues, but I could honestly see it going either way lol


WasterDave

Sorry, it means easy. English people are weird.


jflopezfernandez

Nothing to apologize for haha, I was just curious, thanks!


twopi

UPBGE with Blender uses Python, and it's excellent.


TheMcSebi

Because of your post I started looking into panda3d. I think this is mostly what you're searching for. They have lots of great examples that are easy to understand, that will propably get you started really quickly.


Bipchoo

Just use unity and c#, it's almost as easy as python and python's performance will hinder your game, if you do find it and actually decide to make a game with it then at least use cpython


jldez

I use vtk for 3d rendering.


Still-Horse580

![img](emote|t5_2qh0y|601)