PLAY PODCASTS
Questions for New Dependencies & Comparing Python Game Libraries
Episode 111

Questions for New Dependencies & Comparing Python Game Libraries

The Real Python Podcast · Real Python

May 27, 202251m 37s

Audio is streamed directly from the publisher (dts.podtrac.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.

Show Notes

<p>What are the differences between the various Python game frameworks? Would it help to see a couple of game examples across several libraries to understand the distinctions? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder&rsquo;s Weekly articles and projects.</p> <p>We discuss a Real Python article by previous guest Jon Fincher titled &ldquo;Top Python Game Engines&rdquo;. Jon compares five different game frameworks and provides example projects and thorough commentary for each.</p> <p>We talk about a blog post by recent guest Adam Johnson about determining if a project is well maintained. He suggests twelve questions to decide whether to add a new dependency to your project.</p> <p>We cover several other articles and projects from the Python community, including a news roundup, Python decorator patterns, finding the smallest and largest values with <code>min()</code> and <code>max()</code>, a discussion about the most-used Python packages, the pony object-relational mapper, and a project to read PEPs in your console.</p> <div class="alert alert-primary" role="alert"> <p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/asteroids-game-python-pygame/">Using Pygame to Build an Asteroids Game in Python</a></p> <p>In this course, you&rsquo;ll build a clone of the Asteroids game in Python using Pygame. Step by step, you&rsquo;ll add images, input handling, game logic, sounds, and text to your program.</p> </div> <p>Topics:</p> <ul> <li>00:00:00 &ndash; Introduction</li> <li>00:02:04 &ndash; News: Python Release Python 3.11.0b1</li> <li>00:02:56 &ndash; Faster CPython project</li> <li>00:04:16 &ndash; nogil conversation at the 2022 summit</li> <li>00:06:08 &ndash; PEP 690: Lazy Imports</li> <li>00:08:14 &ndash; DjangoCon US &amp; Europe 2022 Call for Proposals</li> <li>00:09:25 &ndash; Top Python Game Engines</li> <li>00:20:38 &ndash; Sponsor: CData Software</li> <li>00:21:20 &ndash; Python Decorator Patterns</li> <li>00:24:00 &ndash; The Well-Maintained Test: 12 Questions for New Dependencies</li> <li>00:29:27 &ndash; Python&rsquo;s min() and max(): Find Smallest and Largest Values</li> <li>00:33:33 &ndash; Video Course Spotlight</li> <li>00:34:44 &ndash; Which Python Packages Do You Use the Most?</li> <li>00:41:42 &ndash; pony: Pony Object Relational Mapper</li> <li>00:47:41 &ndash; pepdocs: Read PEPs in Your Console</li> <li>00:50:20 &ndash; Thanks and goodbye</li> </ul> <p>News:</p> <ul> <li><a href="https://www.python.org/downloads/release/python-3110b1/">Python Release Python 3.11.0b1</a></li> <li><a href="https://github.com/faster-cpython/ideas/blob/657830f1ab35466053634bb165f6582f6d788614/main-vs-310.rst">Faster CPython</a></li> <li><a href="https://github.com/faster-cpython/cpython">faster-cpython/cpython: The Python programming language</a></li> <li><a href="https://pyfound.blogspot.com/2022/05/the-2022-python-language-summit-python_11.html">nogil conversation at the 2022 summit</a></li> <li><a href="https://peps.python.org/pep-0690/">PEP 690: Lazy Imports</a></li> <li><a href="https://2022.djangocon.eu/talks/cfp/">DjangoCon Europe 2022 Call for Proposals</a></li> <li><a href="https://pretalx.com/djangocon-2022/cfp">DjangoCon US 2022 Call for Proposals</a></li> </ul> <p>Topic Links:</p> <ul> <li><a href="https://realpython.com/top-python-game-engines/">Top Python Game Engines</a> &ndash; In this tutorial, you&rsquo;ll explore several Python game engines available to you. For each, you&rsquo;ll code simple examples and a more advanced game to learn the game engine&rsquo;s strengths and weaknesses.</li> <li><a href="https://bytepawn.com/python-decorator-patterns.html">Python Decorator Patterns</a> &ndash; Decorators are a way of wrapping functions around functions, they&rsquo;re a common technique for providing pre- and post-conditions on your code. Learn about the different ways decorators get invoked and how to write each pattern.</li> <li><a href="https://adamj.eu/tech/2021/11/04/the-well-maintained-test/">The Well-Maintained Test: 12 Questions for New Dependencies</a> &ndash; There is lots of openly available code out there, but how do you know if you should build a dependency on some random coder&rsquo;s package? 12 Questions you should ask yourself before using a library.</li> <li><a href="https://realpython.com/python-min-and-max/">Python&rsquo;s min() and max(): Find Smallest and Largest Values</a> &ndash; In this tutorial, you&rsquo;ll learn how to use Python&rsquo;s built-in min() and max() functions to find the smallest and largest values. You&rsquo;ll also learn how to modify their standard behavior by providing a suitable key function. Finally, you&rsquo;ll code a few practical examples of using <code>min()</code> and <code>max()</code>.</li> </ul> <p>Discussion:</p> <ul> <li><a href="https://twitter.com/driscollis/status/1524749533208489986">Which Python Packages Do You Use the Most?</a></li> </ul> <p>Projects:</p> <ul> <li><a href="https://github.com/ponyorm/pony/">pony: Pony Object Relational Mapper</a></li> <li><a href="https://github.com/gahjelle/pepdocs">pepdocs: Read PEPs in Your Console</a></li> </ul> <p>Additional Links:</p> <ul> <li><a href="https://mobile.twitter.com/ericsnowcrntly/status/1520558350328496128">Eric Snow on Twitter:&rdquo;We need your help making CPython faster. Publish benchmarks for your app or library.&rdquo;</a></li> <li><a href="https://realpython.com/podcasts/rpp/59/">Episode #59: Organizing and Restructuring DjangoCon Europe 2021 – The Real Python Podcast</a></li> <li><a href="https://realpython.com/pygame-a-primer/">PyGame: A Primer on Game Programming in Python – Real Python</a></li> <li><a href="https://realpython.com/courses/pygame-primer/">Make a 2D Side-Scroller Game With PyGame – Real Python</a></li> <li><a href="https://realpython.com/primer-on-python-decorators/">Primer on Python Decorators – Real Python</a></li> <li><a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/">The Joel Test: 12 Steps to Better Code – Joel on Software</a></li> <li><a href="https://realpython.com/podcasts/rpp/97/">Episode #97: Improving Your Django and Python Developer Experience – The Real Python Podcast</a></li> <li><a href="https://pypi.org/project/pyflakes/">pyflakes · PyPI</a></li> <li><a href="https://pypi.org/project/coverage/">coverage · PyPI</a></li> <li><a href="https://pypi.org/project/pudb/">pudb · PyPI</a></li> <li><a href="https://www.djangoproject.com/">Django | The web framework for perfectionists with deadlines</a></li> <li><a href="https://pypi.org/project/django-awl/">django-awl · PyPI</a></li> <li><a href="https://pypi.org/project/waelstow/">waelstow · PyPI</a></li> <li><a href="https://pypi.org/project/six/">six · PyPI</a></li> <li><a href="https://pygments.org/">Pygments — Welcome!</a></li> <li><a href="https://pypi.org/project/chardet/">chardet · PyPI</a></li> <li><a href="https://pypi.org/project/certifi/">certifi · PyPI</a></li> <li><a href="https://pandas.pydata.org/">pandas - Python Data Analysis Library</a></li> <li><a href="https://jupyter.org/">Project Jupyter | Home</a></li> <li><a href="https://bokeh.org/">Bokeh</a></li> </ul> <p>Level up your Python skills with our expert-led courses:</p> <ul> <li><a href="https://realpython.com/courses/asteroids-game-python-pygame/">Using Pygame to Build an Asteroids Game in Python</a></li> <li><a href="https://realpython.com/courses/map-function-transform-iterables/">Python&#x27;s map() Function: Transforming Iterables</a></li> <li><a href="https://realpython.com/courses/python-decorators-101/">Python Decorators 101</a></li> </ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast &amp; join our community of Pythonistas</a></p>