“Invent Your Own Computer Games with Python“: A good book to start programming games with Python. The author presents features straightforwardly and clearly. The only drawback is that you have to wait for the last chapter to start with 2D graphics. Text games: “Guess the number”, “Dragon Realm”, “Hangman”, “Tic Tac Toe”, “Bagels”, “Sonar Treasure Hunt”, “Caesar Cipher”, “Reversi”. 2D graphics game: “Dodger”.
For object-oriented programmers:
“Learn Design Patterns with Game Programming“: This is my first book. I wrote it when I was a teacher in an engineering school, just before going to the industry. It is based on my courses, where students have to create a video game while learning software design. The book organization is then different from the usual ones, where you find a list of independent patterns. It also focuses on patterns combination and tries to give many ideas to stimulate creativity. More details here.
“Game Programming Patterns” by Robert Nystrom: There are many books on design patterns, and this one is very good. It draws the list of all relevant patterns for game creation with excellent explanations and illustrations.
“Game Development Patterns and Best Practices” by Matt Casanova, John P. Doran: Yet another book with a list of relevant patterns for game dev. This one is not my favorite, but you’ll find in some cases nice ideas.