Jump to content

  • Log In with Google      Sign In   
  • Create Account


Can Pyglet or PyOpenGL make high quality graphics games?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
16 replies to this topic

#1 johnnyMakesGames   Members   -  Reputation: 168

Like
0Likes
Like

Posted 27 August 2013 - 06:12 PM

I didn't know.  It uses OpenGL.  Isn't that a "super" graphics engine like DirectX?



Sponsor:

#2 jbadams   Senior Staff   -  Reputation: 17932

Like
6Likes
Like

Posted 27 August 2013 - 07:28 PM

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

 

High quality art assets.

 

Engine and technology certainly can and does have an impact -- especially when wanting to use certain graphical effects -- but beginners often forget that rather than the engine or API used it's the art assets themselves that play one of the biggest roles in graphical quality; you can make a stunningly gorgeous game with almost any API choice if you have high-quality assets, and you can make the ugliest game in the world with the latest and greatest technology if you have bad assets.

 

 

More specifically addressing your question, I don't really know all that much about Pyglet, but PyOpenGL should certainly be capable as long as it's used properly and you're able to work within the constraints presented by working with Python as a language.

 

 

Hope that helps! smile.png



#3 serumas   Members   -  Reputation: 712

Like
1Likes
Like

Posted 28 August 2013 - 12:32 AM

Only High quality art assets? Its just 50% of quality, becouse other 50% is shaders, buffers,geometric-grafic algorithms (than effect is more math than art)...


Edited by serumas, 28 August 2013 - 12:34 AM.


#4 jbadams   Senior Staff   -  Reputation: 17932

Like
0Likes
Like

Posted 28 August 2013 - 01:01 AM


Only High quality art assets?

Did I say "only high quality art assets"? ph34r.png

 

I'm fairly certain that what I actually said was that high quality art assets are "one of the most important factors", and that "engine and technology certainly can and does have an impact -- especially when wanting to use certain graphical effects". smile.png

 

 

You're absolutely correct that shaders, rendering capabilities, etc. are also very important in some cases, but all too often in these sort of discussions assets go entirely unmentioned when realistically -- unless we've been given specific information suggesting other factors will be more important, and especially when addressing a beginner -- assets should probably be one of the first and most important considerations.

 

AAA teams are going to have access to talented artists, and are almost certainly going to be making use of some of the latest and greatest in graphical technology to get the absolute best our of their game and produce something truly stunning.  The same cannot be said about a beginner asking whether certain APIs will allow them to create "high quality graphics", and it's likely that someone in that position will get far more bang for their buck by concentrating on good quality assets rather than worrying too much about high-end rendering capabilities that won't make poor assets look better anyway.

 

 

The context of the question is important, and johnnyMakesGames isn't going to be working on a AAA blockbuster with all of the latest and greatest effects; he might not even use shaders at all, but that doesn't mean he can't make a beautiful game by using great assets that are appropriate for the project.

 

smile.png



#5 hurleyman77   Members   -  Reputation: 102

Like
0Likes
Like

Posted 28 August 2013 - 08:13 AM

A little bit off topic, perhaps, but I think still relevant:

Is python itself (as an interpreted language) fast enough to make something that might be considered a "high quality graphics game?"

I've used python before, but I'm pretty new to both python and game dev, so I'm genuinely curious.



#6 SimonForsman   Crossbones+   -  Reputation: 6035

Like
1Likes
Like

Posted 28 August 2013 - 09:29 AM

A little bit off topic, perhaps, but I think still relevant:

Is python itself (as an interpreted language) fast enough to make something that might be considered a "high quality graphics game?"

I've used python before, but I'm pretty new to both python and game dev, so I'm genuinely curious.

 

Pushing a 3m triangle model with some textures and a advanced shaders to the GPU and then drawing it using python will be pretty much as fast as doing it with any other language (most of the work will be done by the driver and the GPU and any overhead in the language runtime will be pretty close to irrelevant). Sorting through a scene with 10k objects and performing things like occlusion culling for them however will be significantly slower if your chosen runtime doesn't perform well.

 

Thus:

Yes, you can make games with high quality graphics using python.

but:

Excessive processing on the CPU will take longer with any currently available python runtime than it would with well optimized native code which does reduce the possible complexity of your scenes and of your gameplay on any given hardware.


I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#7 hurleyman77   Members   -  Reputation: 102

Like
0Likes
Like

Posted 28 August 2013 - 10:40 AM

Ah, that makes sense. Thanks.



#8 johnnyMakesGames   Members   -  Reputation: 168

Like
0Likes
Like

Posted 28 August 2013 - 04:49 PM

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

 

High quality art assets.

 

Engine and technology certainly can and does have an impact -- especially when wanting to use certain graphical effects -- but beginners often forget that rather than the engine or API used it's the art assets themselves that play one of the biggest roles in graphical quality; you can make a stunningly gorgeous game with almost any API choice if you have high-quality assets, and you can make the ugliest game in the world with the latest and greatest technology if you have bad assets.

 

 

More specifically addressing your question, I don't really know all that much about Pyglet, but PyOpenGL should certainly be capable as long as it's used properly and you're able to work within the constraints presented by working with Python as a language.

 

 

Hope that helps! smile.png

 

I'm sorry to be dumb again, but how do you know if something is high quality for the purposes of a game?  Do you have an example?  I can see some sprites look better than others but not sure what you mean by high quality.  Was hoping for links so I could see.



#9 frankinshtein   Members   -  Reputation: 181

Like
0Likes
Like

Posted 29 August 2013 - 12:59 PM

We did Jewel Quest 5 and Jewel Quest 6 on python. It was C++ engine with python bindings.

Where 99% of game code was written on python. 



#10 frob   Moderators   -  Reputation: 20135

Like
2Likes
Like

Posted 29 August 2013 - 03:35 PM

I'm sorry to be dumb again, but how do you know if something is high quality for the purposes of a game?  Do you have an example?  I can see some sprites look better than others but not sure what you mean by high quality.  Was hoping for links so I could see.

 

 

High quality assets:

Krall_HighPoly_1.jpg

 

Low quality assets:

steamengineer.jpg

 

 

Most beginner games look like the second one because they cannot afford to pay for full-time professional modelers and artists.


Check out my personal indie blog at bryanwagstaff.com.

#11 Green_Gill   Members   -  Reputation: 139

Like
0Likes
Like

Posted 02 September 2013 - 08:11 PM

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.



#12 jbadams   Senior Staff   -  Reputation: 17932

Like
0Likes
Like

Posted 03 September 2013 - 04:00 AM


[...]

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.



#13 fir   Members   -  Reputation: -452

Like
0Likes
Like

Posted 03 September 2013 - 05:44 AM

 

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



#14 Satharis   Members   -  Reputation: 949

Like
0Likes
Like

Posted 03 September 2013 - 06:28 AM

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.

#15 Serapth   Crossbones+   -  Reputation: 5311

Like
0Likes
Like

Posted 03 September 2013 - 09:51 AM

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.

#16 shadowisadog   Crossbones+   -  Reputation: 2398

Like
0Likes
Like

Posted 03 September 2013 - 09:36 PM

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.



#17 jbadams   Senior Staff   -  Reputation: 17932

Like
0Likes
Like

Posted 03 September 2013 - 10:17 PM


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.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS