Most certainly, well Lua at least. That's actually a big part of why I chose it and love2d for my upcoming beginners series. Python a bit less so, but still been encountered.
I have seen Python in use at a couple of studios as part of the build process. The only game devs I know of using Python somewhat recently was as a DDL in earlier Civ games, via Stackless python in Eve Online or in the Panda3D game engine.
Lua was the new hotness in cross platform mobile game engines, supported by Corona, Gideros, Moai, Marmalade and more. It is also exceedingly light weight making it popular to embed it for data or logic encoding. The UI system in Warcraft, or the logic of Baldurs Gate being two examples.
Both languages suffered from the same flaw, although Python MUCH MUCH MUCH more so, in the form of language fragmentation. Python development essentially stopped years ago with the release of 2.x for many people due to a number of unpopular decisions in Python 3.x. This move really hurt Python's momentum. Lua suffered this a bit too between 5.1 and 5.2 but to a much much much lower degree.
One area where Python absolutely shines is in technical director (TD) roles. In the CG world, Python is quite often the language of choice both for scripting the apps ( such as Maya or Blender plus half a dozen others ) or for tying workflows together.
This was actually fixed a while back in Panda3D 1.10.9 https://www.panda3d.org/blog/sdk-1-10-9-release/ , TTR just needs to update their panda3D. Corporate Clash does not have this issue since we updated when this was released.
[fixed, as in, the developer rdb worked around a bug in AMD’s drivers]
I'm personally not using it yet, but Panda 3D. Don't be fooled by the outdated website, it's a very capable 3D framework.
The main thing I like about it is that it uses Python, and I just love Python as a language. It's rare to find a good engine/framework that uses Python, so I was happy to find Panda 3D.
Fun anecdote. When I was about 10 my father had installed a Python 3D engine in the family computer. I was poking around the included demos, and I came across a UV texture for a character, like this.
I was really scared. Now they don't elicit a reaction in me, but it felt really scary that time.
Panda3D's Python 3 support has improved vastly in the development version, you can get a precompiled build with python 3 from https://www.panda3d.org/download.php?platform=windows&version=devel&sdk (use a build with the -py3 suffix).
For 3D games, you can check out Panda3D: https://www.panda3d.org/ It is made specifically for use with Python, has a lot of features, is well documented and is under active development.
Also, Godot: Its main language is something called GDScript that is reminiscent of Python. It also has some sort of Python bindings, although I am not sure how well integrated they are with the rest of Godot (with regards to deployment on mobile or web for example).
For 2D games, PyGame seems to be popular.
Try using Panda3D, they have integreation with Bullet Physics which I have found to be pretty great! The engine itself is built in C++ but they have bindings in Python and is super easy to learn.
Python is useful, indeed, but there's a very limited amount of engines working with it. So in game development it's more useful, when you are making your own engine, or you can make do with something, like Panda3D.
I'd suggest still learning something else on top of it, when you get more comfortable with it. It would make you more flexible. C++, C# or lua would be a good addition to Python.
Panda3D is almost 15 year old project used by some commercial games. It is supported by Disney and Carnegie Mellon University. Core written in C++ and game engine exposed in Python 2.7-3.5.
That's because the source is like intermediate to expert level stuff, depending on what exactly you want to change and write or whatever. Nothing easy, and you need to understand what you need to change if you want to change it, hence there being no "easy" level to it no matter how little you want to change in the actual code and not just swapping the logo. I would suggest starting with a Toontown "landwalker" (really terrible single-player walking simulator but keep reading) and tweak it until you learn. One of those was the 300 line code thing I mentioned. Start with adding cog actors, then animations to them. This is the easiest stuff besides setting position (setPos) and setting rotation (setHpr).
https://www.panda3d.org/manual/index.php/Loading_Actors_and_Animations
I have not used pyglet but based on what I see it is just windowing, opengl, and keyboard/mouse input. Everything else has to be added by you. I don't know if it includes some of the more basic features like culling or a scene graph.
Panda3d was developed by Disney but is now a BSD license and is on github. It is a complete game sdk although it lacks the visual editors found in Unity* and Unreal. It is cross platform with Linux, Windows, and Mac. There is a browser plugin too if running the application in a browser is something you are interested in. A quick look at the manual shows much of what it includes such as a tree based scene graph, workflow with blender.
Feel free to hop in the irc chat #panda3d on freenode if you have further questions. I can try to answer here as well.
*(On an aside, Unity does have the Boo language bindings which is a static language similar to python. however its documentation is poor and rumor has it they are going to phase out Boo).
It's been awhile since I've messed about with Panda, but I would recommend just mounting the head to the cog without the body (some weird clipping is going on there 0_o). I've forgotten exactly how to do this, and I'm not at my computer right now...
Edit: either that or just hide the body...
Edit2: And the toon needs to be bigger...
Edit3: You can learn a lot about working with actors in this video by Laosinna, there is a download to a .py in the description
Edit4: Here is a tutorial by Laosinna
Edit5: Also this will help
Oh man, this is something I wish I could figure out exactly what is wrong. It does seem to be a relatively popular issue with the 5700XT (especially on older games for reasons I'm unsure of). I've attempted to look into it myself a few times, but without that specific card to test with (assuming it isn't something that's Panda3D or AMD driver deep) I'm really not sure of what can be done to help sadly :(
​
While I can't really offer you or anyone else with a solution, I do have some questions/tests to offer to anyone interested/capable that would really help us out!
​
If not, are you able reproduce the problem at all using Panda3D? If so, what steps does it take to reproduce?
etc
folder and adding in configuration flags (each on a seperate line) such as:texture-anisotropic-degree 16
(default is 1, goes up to 16)multisamples 8
(default is 0, goes up to 8)default-antialias-enable #t
(default is #f/false)Sadly, I am unable to walk anyone though those exact steps to experiment with, but if you or any technical folks out there are able to answer those questions, do let us know!
There are a few other options, like Arcade and Panda3d, but Pygame is probably the best option for simple 2d games, because it has been around longer, so there is much more information and documentation available for learning.
​
Another good reason to use Pygame is that it is essentially just a wrapper for the SDL library, which means you can easily translate a game made with Pygame over to C++ if you find that it runs too slow with Python.
The level editor is a .bat file so you won't be able to run it on Mac, although you may be able to use VirtualBox or Wine to simulate Windows and run it through that. Panda 3D should also work on Mac but if you're having issues you should consult this list of common problems. Blender also has a Mac port which you can use to edit the map files.
Apart from what was already mentioned, Panda3D is a game engine which is used almost entirely with Python. The website looks/is 10 years old, but the engine is actually quite capable (see recent screenshots).
But it is lacking a nice editor and such, you have to do a lot of stuff manually.
If you "just want it to work", Godot is probably much easier.
For someone looking for a recommendation for another engine, there is, along with the other good recommendations in this thread already, Panda3D. It is an open source engine that allows you to use C++ or Python. If you're using Python you can even grab Panda3D from the Python Package Index!
For those looking for an integrated experience similar to the BGE, you can check out BlenderPanda. This work in progress addon tries to provide a more fluid experience between Blender and Panda3D. It currently supports in-editor previewing and some useful project management features.
There is a browser plug-in. WebGL port is, like the Android/iOS ports, in proof-of-concept stage: https://www.panda3d.org/forums/viewtopic.php?f=9&t=17771
It's "proof-of-concept" as in it runs simple programs, but setting it up is still a pain, and it isn't supported through the one-click deployment system yet.
Since you're interested in game dev and already have some 3D modeling skiils, try looking into Panda3D. It's is a very basic and well-known game-engine for Python.
There are hundreds of tutorials about how to get started all over YouTube and the internet, and if you have any questions, I'm sure there's a subreddit for it. Good luck!
Edit: I actually just read through the comments and saw a great suggestion about starting with a 2D project first then heading into 3D. 2D will help you get a grasp on game development and help you get started with 3D.
So basically you need to do collision detection? If so, I think this involves computational geometry stuff, and is likely not an easy problem to tackle. 'Convex hulls' and other such voodoo. My first thought was to use some kind of 3d engine or game framework that already does collision detection, especially since you only need rectangular prisms.
Maybe pandas3d? Check out this section of their manual to see if this could be feasible for you. This avenue might honestly be the most straightforward way to get going quickly without tons of math.
If you want to stay with Python then Panda3D might be a good choice. It's written in C++ but wrapped in Python (so you don't need to touch the C++).
The Blender game engine is also fine and possibly an easier place to start.
Also, if you like using PyQt then I think Qt has some 3D capabilities which you might want to investigate (this would be using OpenGL).
You can use any of the egg / bam conversion tools that come with the Panda3D SDK (https://www.panda3d.org/) to convert the models between different model formats that can be used in other modeling programs.
If you use bam2egg, you can also get the models into Blender using this tool: https://github.com/rdb/blender-egg-importer
Hold that thought. Most devs will tell you that Python isn't the best choice for game development, however, thanks to Panda3D (https://www.panda3d.org) that's no longer true. When you check out the showcases you'll see that people are able to use Python and Panda3D to make really cool 3D games ! Panda3D is the only open-source game engine that has been ported to Python. So yeah ... you can go with Python if you fancy making cool games. Btw latest news say that games made with Panda3D will be deployable to Android and iOS so you can push your game onto smartphone as well.
I contrary to all other comments here, you can definitely use Python for a 3d game.
While building a game engine in Python will be a disaster, you can use Python to build a 3D game with Panda3D. This game engine is written in C++ for the speed, but has python as its main interface for developers to build games.
It's variable definitions. PT
must be a macro such that PT(CLerpNodePathInterval)
expands to a type.
And therefore pandaPosInterval1, pandaPosInterval2, pandaHprInterval1, are pandaHprInterval2 are variables of that type.
I had no intention of doing it, but needed to do some simple stuff rendering for work, and found a Python 3d game engine that never gets mentioned, Pandas3d that I ended up using and loving -- it is really mature (open sourced by Disney in 2002). Admittedly the games often have an old-school look to them but still it deserves to be mentioned in the same breath as pygame, if not above pygame (https://www.panda3d.org/). I like it a lot!
Sure, you can do it. I would recommend Panda3D game engine - https://www.panda3d.org/
I found it a lot easier than Unity3D and UE4, so I'm making a game with it. You can do anything with Panda3D starting with a simple 2D platformer and ending with a online multiplayer 3D shooter game like me.
Panda3D is pretty decent from the little bit I played with it. It's lower-level than Unity though (more code, less visual editing), but if you've tried PyGame then it should be a natural transition.
I see in another post that you're using Panda3D. Take a look at this manual section to learn how to freeze Panda3D applications for distribution.
You'd use the multify tool to extract the phase files, such as: multify -x -f phase_3.5.mf
Then look through the example program to start using Panda3D, I believe to set a texture is something like loader.loadTexture("path/to/texture.png")
Panda3D Hello world should be helpful: https://www.panda3d.org/manual/?title=Starting_Panda3D
I haven't used Panda3D, but why are you looking for other online tutorials when the official docs already exist, they look fairly well-written? Python is a high level language, meaning that for something as intensive as 3D games, most engines will choose something with better performance (c++, rust, c#, etc.) so I don't think you'll find too many alternatives. If you are really set on Python, I would look into something like IronPython and use it with a C# engine like Unity.
One can try awesome tutorial by fireclaw. And its sequel. The only thing it suffers from is lack of readers who can give any positive or useful feedback.
There also is Work-In-Progress official manual. You're welcome to use it and give it constructive critique. Panda lacks users in general, though it is one of the most underestimated open-source game engines, I don't know why. It has its flaws, but its render rocks beyond any measure and everything your game needs comes out of the box and you can program your game with python. I think, it is incredible!
It's called Panda3D. It was developed by Disney for Toontown, and other similar projects like Pirates Online.
And yes, you can use it to make your own toon, but unless you know some Python, good luck.
It is preferable to use Maya Binary files as opposed to .obj files. If you really want to though, download Panda3D SDK and look in the bin folder for bam2egg.exe and egg2bam.exe. You should put your phase files in here too. Open command prompt in the folder. Link that should help: https://www.panda3d.org/manual/index.php/Converting_Egg_to_Bam and type: bam2egg file.bam file.egg and then: egg2obj file.egg file.obj and it should be an obj file.
Just a final update. Will leave this thread for others with the same questions, "how to start on C++". I realized I was asking too much from a first learning experience, no way I'm gonna learn or memorize any C++ reading PDF books and coding small "calculator" and "guess the word" games. I reached the conclusion I'm better off sticking with Python for now and I just found what I was looking for to interact the code with a 3D environment, which is called Panda3D.
It's a game engine whose foundation is written in C++ for optimization purposes, but all coding to interact with it is made in Python, is an engine entirely focused on Python (which happens to be a language much easier to learn and getting syntax worries out of the way you can think on solving puzzles with less worries).
Any performance constraints I face in the future I will be able to convert the Python code to C++ (which in itself will be a good learning path, I guess), so it will be better for me sticking with Python now, it's not C++ but let's face that is pretty damn good for its ease of use and has tons of community support/libraries.
After installing the Panda3D SDK, you go to samples folder /usr/share/panda3d/samples and each folder has a python script which will run, so you can modify some parameters and see what happens on screen (right click on folder, "open terminal here" at least in xubuntu xfce is like this, type in terminal "python3 main.py" for example, a panda3d window will run)
https://www.panda3d.org/manual/index.php/Main_Page
http://www.swaroopch.com/notes/python/
There is some info about icospheres (http://baris.shadowytree.com/?node=blog/icosphere https://www.panda3d.org/forums/viewtopic.php?f=8&t=16177 https://www.gamedev.net/topic/654509-solved-problem-applying-3d-simplex-noise-to-an-icosphere/) but you better use box-sphere instead of icosphere
Official website is awesome resource: https://www.panda3d.org/documentation.php Manual contains pretty much anything you need.
You can also find some lectures from disney on this youtube channel: https://www.youtube.com/user/drwrose/videos
Forum community is small but active and you will get help for sure, same goes for IRC channel.
https://www.panda3d.org/download.php
Included in that is a program called multify which will allow you to decompile and recompile the .mf phase files.
A pretty thorough guide can be found at http://toontownrewritten.wikia.com/wiki/How_to_Edit_Toontown_Rewritten's_Phase_Files
Panda3d has pretty good introductory documentation, head on over here and have a read through! Make another post if you have more specific questions :)
Have you tried installing the latest Panda3D version? This happened when I tried to run it on a couple of my school's computers for fun.
Try downloading and installing the Runtime for end-users first, then running TTR. If that doesn't work, it may be the SDK version. I can't remember the exact version I had used.
From what I found on the Panda site here there is an experimental build for OSX P3D1.9.0 download link Not sure if it works but good luck!
You need Panda3D version 1.9.0. Personally, I have the files for my Windows computer, but I'm not quite sure where to get it for a Mac (since I don't have that computer).
(Or, you might be able to use Panda3D 1.8.1, which can be found here, you'd just need to change PPYTHON_PATH to the location it installs in.)
Edit: Oh, and those source files aren't complete; there's a few files missing (like a compiled version of astron), and unless you have those files, you probably wouldn't be able to run it successfully.
To delete only some textures, you'll have to open the phase files, which requires Panda3D, here's the download for it: https://www.panda3d.org/download.php?sdk&version=1.8.1 Here's also a page explaining how to edit the phase files. http://toontownrewritten.wikia.com/wiki/How_to_Edit_Toontown_Rewritten%27s_Phase_Files (Read only the parts "Extracting the Phase Files", and "Recompressing the Phase Files".) If you need any more help, let me know. ;-)