PLAY PODCASTS
Building a Platform Game With Arcade and Covering Python News Monthly
Episode 60

Building a Platform Game With Arcade and Covering Python News Monthly

The Real Python Podcast · Real Python

May 14, 202154m 36s

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>Did you know the Python Software Foundation is hiring! With the recent support of three Visionary Sponsors, the PSF has been able to open positions for a developer-in-residence and a Python packaging project manager. Real Python now has a monthly Python news article. Frequent guest of the show, David Amos compiles and summarizes the biggest Python news from the past month.</p> <p>This week on the show, David Amos is back, and he&rsquo;s brought another batch of PyCoder&rsquo;s Weekly articles and projects. We discuss David&rsquo;s news article from the last month. We also discuss previous guest Jon Fincher&rsquo;s new step-by-step tutorial about creating a platform game with the arcade framework. </p> <p>We cover several other articles and projects from the Python community including, how to use ipywidgets to make your Jupyter notebook interactive, the hidden performance overhead of Python C extensions, adding else to for loops, film simulations from scratch using Python, a gradual programming language named Hedy, and a Python raytracer.</p> <div class="alert alert-primary" role="alert"> <p><strong>Spotlight:</strong> <a href="https://realpython.com/products/cpython-internals-book/">CPython Internals: Your Guide to the Python 3 Interpreter</a></p> <p>Unlock the Inner Workings of the Python Language, Compile the Python Interpreter From Source Code, And Participate in the Development of CPython</p> </div> <p>Topics:</p> <ul> <li>00:00:00 &ndash; Introduction</li> <li>00:02:04 &ndash; How to Use ipywidgets to Make Your Jupyter Notebook Interactive </li> <li>00:06:07 &ndash; Build a Platform Game in Python With arcade </li> <li>00:12:35 &ndash; Sponsor: Digital Ocean&rsquo;s App Platform</li> <li>00:13:11 &ndash; The Hidden Performance Overhead of Python C Extensions</li> <li>00:21:17 &ndash; For-Else: A Weird but Useful Feature in Python</li> <li>00:25:42 &ndash; Python News: What&rsquo;s New From April 2021?</li> <li>00:39:43 &ndash; Spotlight: CPython Internals Now in Paperback!</li> <li>00:41:15 &ndash; Film Simulations From Scratch Using Python</li> <li>00:47:44 &ndash; hedy: Hedy Is a Gradual Programming Language, Which Increases in Syntactic Elements Level by Level</li> <li>00:50:27 &ndash; Python-Raytracer: A Basic Ray Tracer That Exploits NumPy Arrays and Functions to Work Fast</li> <li>00:53:31 &ndash; Thanks and goodbye</li> </ul> <p>Show Links:</p> <p><a href="https://www.wrighters.io/use-ipywidgets-with-jupyter-notebooks/">How to Use ipywidgets to Make Your Jupyter Notebook Interactive</a> &ndash; Jupyter Notebooks are great for exploratory data analysis. They&rsquo;re also a good way to share results and analysis with other people, who can alter the notebook to further explore the data themselves. But there are some limitations to notebook interactivity. That&rsquo;s where <code>ipywidgets</code> comes in! In this tutorial you&rsquo;ll learn how to create widgets like check boxes, drop-down menus, sliders, and how to handle events like button clicks.</p> <p><a href="https://realpython.com/platformer-python-arcade/">Build a Platform Game in Python With arcade</a> &ndash; Building games can be a fun way to learn new Python concepts and practice techniques you&rsquo;ve already learned. Plus, they make for great projects to share! This step-by-step tutorial shows you how to build a platform game using the <code>arcade</code> library. You&rsquo;ll learn techniques for designing levels, sourcing assets, and implementing advanced features</p> <p><a href="https://pythonspeed.com/articles/python-extension-performance/">The Hidden Performance Overhead of Python C Extensions</a> &ndash; It&rsquo;s no secret that Python is slower than compiled languages like C, C++, and Rust. If you need a performance boost, you can write compiled Python C extensions. But there are some hidden performance costs that you should be aware of if you decide to do this. This article explains two ways that Python C extensions can actually be slower than pure Python and discusses some solutions and work around for them.</p> <p><a href="https://medium.com/techtofreedom/for-else-a-weird-but-useful-feature-in-python-2076d8dafad1">For-Else: A Weird but Useful Feature in Python</a> &ndash; Python <code>for</code> loops have an unusual feature: they support an <code>else</code> block that only executes if there is no break in the loop. The pattern isn&rsquo;t used very often with the argument against it being that it is a bit weird and potentially difficult to understand. But there may be times when <code>for/else</code> makes sense. This article presents three situations where <code>for/else</code> is useful and argues that, in these situations, the pattern makes the code more readable.</p> <p><a href="https://realpython.com/python-news-april-2021/">Python News: What&rsquo;s New From April 2021?</a> &ndash; April 2021 was an eventful month in the world of Python. In this article, you&rsquo;ll get up to speed on everything that happened in the past month, including new sponsorships for the PSF, changes to Python error messages, and a community-led discussion over the future of type annotations.</p> <p><a href="https://kevinmartinjose.com/2021/04/27/film-simulations-from-scratch-using-python/">Film Simulations From Scratch Using Python</a> &ndash; In analog photography, you can achieve different &ldquo;looks&rdquo; for your photographs by selecting different kinds of film to shoot with. Digital camera manufacturers often include different presets to simulate different kinds of film. In this article, you&rsquo;ll learn how to simulate different films on your own images using <strong>color lookup tables</strong>, or <strong>CLUT</strong>s, using NumPy and the Pillow image library.</p> <p>Projects:</p> <ul> <li><a href="https://github.com/felienne/hedy">hedy: Hedy Is a Gradual Programming Language, Which Increases in Syntactic Elements Level by Level</a></li> <li><a href="https://github.com/rafael-fuente/Python-Raytracer">Python-Raytracer: A Basic Ray Tracer That Exploits NumPy Arrays and Functions to Work Fast</a></li> </ul> <p>Additional Links:</p> <ul> <li><a href="https://arcade.academy/index.html">The Python Arcade Library</a></li> <li><a href="https://realpython.com/arcade-python-game-framework/">Arcade: A Primer on the Python Game Framework</a></li> <li><a href="https://kenney.nl/">Kenney: Free game assets, no strings attached</a></li> <li><a href="https://www.mapeditor.org/">Tiled: Free and Open Source, Flexible Level Editor</a></li> <li><a href="https://realpython.com/podcasts/rpp/">Episode 24: Options for Packaging Your Python Application: Wheels, Docker, and More</a></li> <li><a href="https://twitter.com/postmortemgirl/status/1270679779335794688?s=20">Your Code Is Without a Doubt the Worst I Have Ever Run</a></li> <li><a href="https://pyfound.blogspot.com/2021/02/welcoming-google-as-visionary-sponsor.html">Welcoming Google as a Visionary Sponsor of the PSF</a></li> <li><a href="https://pyfound.blogspot.com/">Welcoming Microsoft as a Visionary Sponsor</a></li> <li><a href="https://www.python.org/jobs/5317/">Python Job Board: Project Manager - Python Packaging</a></li> <li><a href="https://www.python.org/dev/peps/pep-0563/">PEP 563 &ndash; Postponed Evaluation of Annotations</a></li> <li><a href="https://realpython.com/podcasts/rpp/45/">Episode 45: Processing Images in Python With Pillow</a></li> <li><a href="http://rawtherapee.com/">RawTherapee: A free, cross-platform raw image processing program</a></li> </ul> <p>Level up your Python skills with our expert-led courses:</p> <ul> <li><a href="https://realpython.com/courses/using-jupyter-notebooks/">Using Jupyter Notebooks</a></li> <li><a href="https://realpython.com/courses/python-for-loop/">For Loops in Python (Definite Iteration)</a></li> <li><a href="https://realpython.com/courses/pygame-primer/">Make a 2D Side-Scroller Game With PyGame</a></li> </ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast &amp; join our community of Pythonistas</a></p>