New on the forum:Introduction about myself and 2 question: about android and c++ vs python peformance


#1

Hello,
I knew about panda 3d but I did know how amazing it looks today!
Quick note about myself: I work in the cg industry (recently on the new Disney movie The Lion king). I am a rigger and programmer (both Python and C++) and I always have been interested in doing little games for mobile. So having said that my first question is:
-One of my choices when it comes to select a game engine is how hard it is to port it to mobile. I succeeded with other 2 commercial engines and I was almost about to pick one, until I saw this new panda3d. It says that it has a port to android, so can you recommend to me any resource or tutorial to start testing this in my android?
-Panda3d is compatible with python and c++. I have seen some python panda3d tutorials and it looks incredible simple. But how much does’t the performance suffer when use python instead of C++? Is it noticeable mainly in 3d games or 2d as well?
Thank you, I am really exited about this panda3d.
Cheers


#2

Hello and welcome!

I will let others comment on mobile, but from my understanding this is still a very manual process and not as “one-click” as other engines. Also, the only mobile efforts I know about are for Android. I do not believe anyone is working on iOS stuff for Panda at this time (there is, however, some iOS code in Panda).

As for performance, you shouldn’t see much of a performance different between using Python and using C++. The Python API is a wrapper around Panda’s C++ code, so the engine performance is not affected by your language choice. Your game logic will be slower in Python, but this usually isn’t a problem. You can always choose to port parts of your Python game logic to C++ for performance if necessary. In general, you should try using the Panda3D API as much as possible since it will move more of your code into C++ behind the scenes. I should note though, that the direct package is Python, and not C++.


#3

I see,
I’ll give it a try on android.
Cool. I will do some simple test in python then.

By the way I am trying to run the pview.exe and I am getting the following error:

:display:gsg:glgsg(warning): Driver possibly misreported GL_VERSION!  Unable to
detect correct OpenGL version.

I looking for it, and it seems it has something to do with nvidias Geforce experience. I am trying to fix it now.


#4

wow, it is amazing how easy it is! it reminds me to SMFL!
I did the hello world tutorial and I didn’t get any opengl error. So it is all good.
I did some search about c++ vs python. there are a lot of threads and they all conclude what you mention Moguri. I know both. I am more experienced in Python, so I thought that maybe I could increase my skill in C++ if I force myself to do all in C++. Or is it a waste of time having python?
Òne last thingm I did not undersand your last sentence:
" I should not though, that the direct package is Python, and not C++."
I am not sure what you mean.

R


#5

You can ignore that. It’s an issue with the NVIDIA driver applying certain changes to processes named pview.exe, but Panda can work around it adequately.


#6

Some pros for using Python:

  • Faster development speed (so maybe you’ll actually get something done)
  • Better community support (more Panda users use Python can C++)
  • Easier deployment (don’t have to worry about compiling for each platform)
  • Python standard library and package ecosystem
  • direct package (it has a lot of mediocre code, but there are also a lot of useful utilities)

Some pros for using C++:

  • Faster if your application is CPU bound
  • Might be easier to get working on more exotic systems (don’t have to worry about the system supporting Python)

I am very comfortable with C++, but I still prefer writing my game logic in Python.

As for my confusing sentence, that should have been:

I have edited my post to fix the typo.

direct is a Python package that comes with Panda that includes a lot of utilities that are not available to C++ users.


#7

cool. Python it is then!
Thanks for your feedback. It helped a lot.


#8

It depends on if you use the panda3d classes, in this variant the performance will be equivalent to C ++. However, if you write complex algorithms in Python, you will get a slowdown.