Can Pyglet or PyOpenGL make high quality graphics games?

Started by
15 comments, last by jbadams 10 years, 8 months ago

You know what one of the most important factors is in games with high-quality graphics?

High quality art assets.

Yeah, until you realize you're getting half the FPS you would otherwise because some silly billy used a depracated OpenGL function like GLBegin or GLEnd instead of doing it the DirectX 3 way and the entire thing is CPU bound instead of GPU bound like it should be.

Python is a scripting language. Unreal says not to do any heavy lifting in the scripting language.

LUA?

I've seen beginner games with professional models taken from professional games... they still look terrible.

Also, on the High Quality Assets... DEAR GOD, HOW MANY POLY'S IS THAT THING... high quality or not, anyone who uses THAT in a game wants their engine to fall on it's knee's in terror.

Advertisement

[...]

I think it goes without saying that software that is improperly or poorly written will have problems ranging from poor performance to unexpected crashes or incorrect functionality.

Python is an interpreted language, and this does present performance concerns worthy of consideration. There are numerous possibilities available for increasing the speed of Python -- PyPy and Cython to provide two examples -- and you are of course correct that in some cases it's better to write performance-critical code in a lower-level language such as C or C++, but that doesn't necessarily mean Python isn't suitable for games at all. This is precisely what I was referring to when I mentioned that you should be "able to work within the constraints presented by working with Python as a language". It's also worth noting that using an API such as PyOpenGL is offloading some of the "heavy lifting" to the GPU.

I'm not entirely sure why you randomly mentioned Lua -- which is also typically (but not always) interpreted -- but it's also an excellent choice of language for beginners; perhaps even a better choice than Python. Lua is a fast and capable scripting language with a number of great game-related libraries available.

...and yes, you're correct that professional models can look bad in unprofessional games; to look good, any given asset should be of a suitably high quality, be of an appropriate style to match other surrounding assets, and should be suitable for the technology and game it is being used in. A model created by a professional developer and intended to be used in a modern engine with specific shaders and effects will not look good without those shaders and effects.

Again, high quality appropriate assets are not the only thing necessary for a high quality game, but they're both important enough and often left out of this sort of discussion that I felt they bore special mention. As I said in my original response, engines and technology can and do have an impact, and you should consider all of these factors when deciding how to approach the look of your game.

...and again, it's important to remember we're giving advice to a beginner who will not be using the latest and greatest technologies for quite a long time if ever.

- Jason Astle-Adams

Also, on the High Quality Assets... DEAR GOD, HOW MANY POLY'S IS THAT THING... high quality or not, anyone who uses THAT in a game wants their engine to fall on it's knee's in terror.

But if games would use such hight detail characters it would be real nice - this is still lower than move quality (i think) but is indeed a high one model

To be honest you should follow the tool methodology, languages are tools and some are better suited to things than others. There's a reason what might be called "next gen" games are often written in C++ besides simply a lot of existing code being out there.

Of course you can theoretically use higher tri models and fancy shaders but at a certain quality point performance really does become a concern and some languages can cause rather large bottlenecks.

I mean realistically python is not designed to run a "high definition" game really, you could try to make it to, but really you might as well be trying to turn a screwdriver into a hammer in that case.
What I think is perhaps a more interesting question is...

In a world where Lua exists, why would you suggest Python to a beginner for game developers?

I'm genuinely interested as when making these kinds of recommendations I am finding it virtually impossible to answer. Lua seems more popular (gaming wise), has more game library support, seems to perform better embedded, is easier to interface to C/C++, I would argue is easier to learn, etc. I don't really get what python offers that Lua doesn't at least to a new developer other than maybe greater library support and potentially more learning resources.

Both languages have the exact same major flaw (fragmented versions) so that's pretty much a wash.

I would say that the learning resources and I personally like the OOP model better in Python.

Really though for a beginner it doesn't really matter. I would say that the person should try both and pick the one they like the best. Both LUA or Python are both valid options, and this thread was specifically about Pyglet or PyOpenGL which are both Python libraries.


In a world where Lua exists, why would you suggest Python to a beginner for game developers?

Agreed completely, and I've just recently begun recommending Lua above Python. In this particular topic I mentioned Python first purely because it's what the OP asked about -- Lua only came up at all because of Green_Gill's completely random mentioning of it mid-post.

Realistically though, Python is still an acceptable choice for a beginner, and if Python is the language the OP is interested in it should be a perfectly fine choice for learning and for the beginning stages of development.

- Jason Astle-Adams

This topic is closed to new replies.

Advertisement