Mission Python: Code a Space Adventure Game! by Sean McManus, is a book that guides a novice through python programming, and in the end, they get a pretty good video game for free.
You can actually download the Python code and have the game without learning anything beyond how to download then run a Python program. You can not download anything, and follow the book through all the stages of development, making the occasional and learning from your mistake. Or, you can download the code, and do a combination of entering it yourself, cutting and pasting, and slowly building up the program, for a less frustrating (frustrations caused by your typos) yet very educational experience.
(Also, the game uses sounds that you can download from the same source as the source code.)
The code is actually remarkably short given the complexity of the game. As the reader develops the game, they are guided through the process of understanding what the various code blocks do. Someone who goes through the book pretty carefully, and works with the code though most of it, will get a basic understanding of how to use Python to write other programs.
The book sues Pygam Zero, which is a graphics and sound library.
Since this is Python, it works on all the usual platforms.
Here is a video of the game:
This is a fun book, and though I’ve not completed the process of making the game, I have worked through quite a bit of it. This is a good way to learn Python, in my opinion. Might make a great holiday gift for a gifted younun’ looking to up their game in coding games.