Is Panda3D even a reliable Python source?

Lately, I started using the Actual Python things.
This means running off of Python Shell, scripting all of my own things, Ect.
Based on this idea, I fulfilled it.
I downloaded everything, and all day went on to see what I needed to do.
Panda3D is 100% different Python usage than anything in Python at all.
Nothing is alike.

So I have to ask,
Is Panda3D even a reliable source for scripting in Python? Or is it all just on its own?
In mental relative, I’m trying to say:
Is Panda3D like giving a teenager a bunch of blocks with letters to make a word?
In other words, giving them something to work with rather than having you write down the words on your own.

Again, it seems as if Panda3D is its own sort of thing, it’s nothing like the actual Python scripting at all.

Python and Panda3D are not things which can be compared in any meaningful way.

Python is a programming language. Panda3D is a game engine which can be controlled using the standard Python language. You can think of Panda3D as just another Python module, albeit a large and complex one.

Much of the sample code for Panda3D relates to showing you how to use the Panda3D classes and functions, its purpose is not to teach the Python language. A knowledge of Python is assumed.

So if you are asking “Is using Panda3D a good way to learn Python?” or “Can I just learn Panda3D and not the rest of Python?”, then the answer is no to both of these. You will need to learn the core Python functionality like classes, data structures, and so on, in order to effectively use Panda3D. It is possible of course to learn both at the same time, just more difficult.

You can think of Python as a toolbox that comes with a few basic tools, and Panda3D as a specialized tool that you can put in your toolbox to increase the number of things you can do with your toolbox. Knowing how to use the basic tools that came with the toolbox will help you understand how the specialized tool works, and you will need those basic tools to assist in whatever job you are using the specialized tool for.

Hmm… In what way do you find them different, if I may ask? I seem to recall them as being pretty much the same.

(The only “difference” that jumps to mind is that Panda might encourage object-oriented programming, while raw Python can be used in either an object-oriented or a procedural manner - but that’s just one encouraging a subset of the other, rather than a difference, it seems to me.)

Panda doesn’t conform to PEP8 (or in direct.*'s case, good Python practice) at all. That may be what OP is talking about.

Panda is a library. It’s there to save you reinventing the wheel. That’s it. And using Panda with Python is just like using any other library with Python – like GTK or Django or whatever. How you make a loop or a function doesn’t change, so I wonder what does from your perspective.

I just feel like I’m being isolated from the rest of Python users.
It seems those outside of Panda3D using Python have completely different codes.
As if not a single word in their script could be defined in Panda3D (Which, most likely it can). But you can’t go online as ask someone “Hey, why won’t this work? self.actor = Actor(ect…)” on another site. Because Actor is imported from Panda3D.

It seems to me that Python on its own cannot use anything three-dementional without some sort of 3D engine (Such as Panda3D), However, I didn’t realize this. So I do have a question as far as everyone else using Python as well (Maybe someone will know). All those actual computer GAMES that you can buy or pay online for, and use python, how do they not show their engine they are using? Like, what engine ARE they using?

For example. If I made a full-on game, one that someone would be proud to buy, I’m going to have to give them everything Panda3D. I’d have to have them download Panda3D, My script files, Ect. And all that other stuff they most likely wont even use in 10 years until noticing its there.
I want a game I can send my code for download, Python (of course), and that’s it. Just what they need to run my game. Not all this extra downloads they don’t need.

So does Panda3D support that? Making an application that can be ran and the game would start up in a short file with the imports, the models used in my game, whatever else used in my game only, and that’s all? Or would it require the whole entire Panda3D package, plus any extra content used in models or script files, or whatever else?

You seem to be confusing a lot of stuff.

Python is a programming language. Nothing more nothing less. A high level programming language, to be exact.

You can write a game engine from scratch using Python. It’s not the best idea, but you can. Just like you can (which is a better idea) write it in C or C++. Or in C#. Or Java (which is a bad idea).

However, you always use libraries for that. Like OpenGL, for starters. Or DirectX.

By using these libraries, smaller or bigger, you don’t isolate yourself from anything, you just use tools that exist. Of course you can’t ask about Panda or OpenGL stuff at random places of the internet, or even on strictly Python forums, because the people there might not know anything about those libraries. Python people are concerned with Python itself, so you can ask them “how to raise an exception in Python”, because that’s a language question. “What does Actor do?” is a Panda, or library, question so it belongs on this forum.

What do you mean? Every computer game uses some engine, 2D or 3D. It could be Panda, or OGRE, or Unreal Engine, or Unity Engine, or CryEngine, or an in-house technology (i.e. written by the same team that made the game, generally speaking).

Every time you install a game (any game, from Angry Birds to Crysis 2) the installer pulls in a lot of libraries that are crucial for the game to operate. Its engine is the most important part, which in turn consists of many, many libraries that it needs to run on. Like the aforementioned DirectX or OpenGL, OpenAL for sound, Bullet or PhysX for physics, Detour for AI, Bink codecs for video and so on.

Every software is built on top of libraries built by other people. If not, you’re just reinventing the wheel which, 9 times out of 10 means that you’re wasting time.

HOWEVER, once you’re ready to ship all that stuff is packed into an installer, or a P3D file or equivalent, and you ship just ONE file to the users. Your users won’t even notice how many parts the game consists from, just like you haven’t.

Ah, fair enough - I stand corrected. :slight_smile:

Otherwise, I think that others have answered pretty much everything else thus far, so I’ll leave it at that. :slight_smile:

In the latest Buildbot version of Panda, it’s possible to use all methods with underscores instead of camelCase, eg nodePath.set_pos.