We may earn an affiliate commission when you visit our partners.
Christian Koch

Learn the world's most popular programming language by making games.

This course includes an incredibly comprehensive, yet easy to follow, introduction to Python and uses that knowledge to create 4 sophisticated games using pygame. By the time you finish these projects you will have a strong understanding of Python and of coding in general. You will also have amazing projects for your portfolio.

Read more

Learn the world's most popular programming language by making games.

This course includes an incredibly comprehensive, yet easy to follow, introduction to Python and uses that knowledge to create 4 sophisticated games using pygame. By the time you finish these projects you will have a strong understanding of Python and of coding in general. You will also have amazing projects for your portfolio.

The course contains over 130 videos and includes a huge amount of exercises so you can practice while you code along. You can also find the code for every video attach in the course. The course will start completely from scratch and I will begin by installing Python on Windows or MacOS; or you can use an online code editor. If you are in doubt, the entire first 11 hours are freely available both here on Udemy and on YouTube.

This course is going to cover every topic of Python, for example:

  • All of the datatypes (integers, strings, floats, booleans, lists, tuples, dictionaries etc)

  • You will learn classes and object-oriented programming

  • Inheritance, both simple and complex will be covered in detail

  • You will learn how to control the flow of the code using if, while, for and match

  • You will learn about functions and how to pass information around

  • There are many sections on scope to keep your code organized

  • Decorators will be covered in depth

  • File handling will be used

Python is one of the most desirable features on the job market and can get you into well-paying and interesting jobs. It is also a very easy to learn language that you can use as a starting point in your coding career. I am looking forward to seeing you in the course.  

Enroll now

What's inside

Learning objectives

  • You will learn how to use python effectively
  • You will create a portfolio of python games
  • You will learn how to manage large project well
  • You will learn object-oriented programming
  • You will learn and implement advanced python features
  • You will develop a thorough understanding of python

Syllabus

Introduction
Trailer
Python in context
Installing Python
Read more

I will explain how to install pygame in the next section. Although, in short, all you need is the powershell or the terminal and type

pip install pygame

or

pip3 install pygame

(for macOS)

However, python 3.11 was released recently and pygame is not fully supported yet which can cause errors on some systems. This can be fixed easily though by adding "--pre" to the install line.

So the proper line should be

For windows

pip install pygame --pre

For macOS

pip3 install pygame --pre

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Starts with installing Python and a code editor, which is helpful for those new to programming and setting up their development environment
Covers a wide range of Python topics, from basic data types and control flow to advanced concepts like classes, inheritance, and decorators, providing a comprehensive learning experience
Uses Pygame to create four games, offering practical experience in game development and building a portfolio of projects to showcase skills
Includes over 130 videos and numerous exercises, allowing learners to practice coding along and reinforce their understanding of the concepts taught
Pygame may not be fully supported by Python 3.11, and the course recommends installing a pre-release version to avoid errors, which may be unstable
Requires installing Pygame using pip, which may require some familiarity with command-line interfaces and package management, potentially posing a challenge for absolute beginners

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Learn python through game projects

According to students, this course offers a highly engaging and effective way to learn Python fundamentals by building games. Learners appreciate that it starts completely from scratch, making it ideal for beginners, and that the instructor explains complex concepts clearly. The course provides helpful exercises and project files that reinforce learning. While the coverage of core Python is generally praised, some learners felt the game projects themselves were basic or simplistic, suggesting the course is primarily focused on teaching Python using games rather than advanced game development.
Exercises and project files are useful.
"The exercises are helpful for practicing."
"The exercises and project files provided are very useful."
"The materials are well-organized."
"The exercises reinforce the concepts effectively. The exercises are spot on."
Clear explanations and effective teaching style.
"The instructor explains complex concepts like OOP and decorators clearly."
"The instructor is excellent and makes learning enjoyable."
"The instructor is very clear and explains concepts step-by-step."
"The instructor has a great teaching style."
Ideal starting point, covers Python basics thoroughly.
"Highly recommend for beginners!"
"Definitely worth the time for anyone wanting to learn Python from scratch."
"Excellent course for beginners!..."
"This course is a gem for anyone starting with Python. Learned so much about Python fundamentals..."
Learn Python interactively by building games.
"This course was absolutely fantastic for learning Python. Starting with games made it so much more engaging than typical programming courses."
"Amazing course! The approach of learning Python by making games is brilliant. It keeps you motivated."
"The game examples make learning interactive and fun."
"Learning through games is a great idea and kept me engaged."
Some reports of audio, clarity, and pace issues.
"Poor quality audio in some videos, makes it hard to follow."
"The explanations are sometimes unclear, especially for complex topics."
"Found the pace inconsistent, sometimes too slow on basics, sometimes too fast on more advanced topics."
"The project structure was a bit confusing in places."
Game examples are simple, not advanced.
"My main issue was that the game projects, while fun, felt slightly simplistic after covering the core Python concepts. I was hoping for something a bit more advanced..."
"The game development part is interesting but could be more detailed."
"The Pygame projects are a bit basic but serve as good practice."
"The game projects are fun but basic. It serves as a good foundation but don't expect to become a game developer just from this course."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learn Python by making games with these activities:
Review Basic Programming Concepts
Reinforce fundamental programming concepts like variables, loops, and conditional statements to build a solid foundation for learning Python.
Browse courses on Programming Fundamentals
Show steps
  • Review online tutorials or introductory programming books.
  • Complete basic coding exercises on platforms like Khan Academy or Codecademy.
  • Write simple programs to practice using variables, loops, and conditional statements.
Review "Automate the Boring Stuff with Python"
Learn practical Python skills applicable to game development by studying a book that focuses on automation.
Show steps
  • Read the book and complete the coding exercises.
  • Experiment with the code examples and modify them to suit your needs.
  • Apply the concepts learned to automate tasks related to game development, such as asset management or level design.
Create a Simple Text-Based Game
Solidify your understanding of Python fundamentals by building a simple text-based game, reinforcing concepts like user input, conditional logic, and game loops.
Show steps
  • Design the game's story, rules, and mechanics.
  • Write the Python code to implement the game logic.
  • Test the game thoroughly and debug any errors.
  • Add features to enhance the gameplay experience.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Pygame Tutorials and Examples
Practice using Pygame functions and classes by working through tutorials and examples to become familiar with the library's capabilities.
Show steps
  • Find Pygame tutorials online or in books.
  • Follow the tutorials and try out the code examples.
  • Modify the code examples to experiment with different features and settings.
Review "Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming"
Learn Python through project-based learning, including building a Space Invaders game, which aligns with the course's focus on game development.
Show steps
  • Read the book and complete the coding exercises.
  • Work through the Space Invaders project and understand the code.
  • Modify the game to add new features or change the gameplay.
Document Your Game Development Process
Improve your understanding and retention by documenting your game development process, including challenges faced, solutions implemented, and lessons learned.
Show steps
  • Keep a journal or blog to record your progress.
  • Describe the problems you encountered and how you solved them.
  • Reflect on what you learned from each stage of the development process.
Contribute to a Pygame Project
Deepen your understanding of Pygame and game development by contributing to an open-source project, collaborating with other developers, and learning from their code.
Show steps
  • Find an open-source Pygame project on platforms like GitHub.
  • Read the project's documentation and understand its goals.
  • Identify areas where you can contribute, such as bug fixes, new features, or documentation improvements.
  • Submit your contributions and participate in code reviews.

Career center

Learners who complete Learn Python by making games will develop knowledge and skills that may be useful to these careers:
Python Developer
A Python developer specializes in building applications using the Python programming language. This course helps build a foundation to become a Python Developer by providing comprehensive knowledge of Python, including data types, object-oriented programming, and advanced features. Creating games helps build a portfolio of Python projects, demonstrating practical skills to potential employers. Mastery of Python makes this course especially useful as a Python Developer.
Application Developer
An application developer designs and builds software applications for computers and mobile devices. This course helps build a foundation by teaching Python through game development. Creating games using `pygame` will allow you to gain practical experience in designing user interfaces, handling user input, and managing application logic. The course also covers object-oriented programming, which is essential for building complex applications as an Application Developer.
Game Developer
A game developer designs and creates video games for various platforms. This course helps build a foundation by teaching Python through game development. By creating sophisticated games using `pygame`, one will gain practical experience in game design principles and coding. The course also covers object-oriented programming, a core concept in game development, enabling you to structure your game code efficiently. This background may be useful if you are interested in becoming a game developer.
Software Developer
A software developer designs, writes, and tests code for a variety of applications. This course helps build a foundation by teaching Python through game development. The course covers essential programming concepts such as data types, control flow, functions, and classes. Creating games using `pygame` provides practical experience in applying these concepts to solve real-world problems, which is directly applicable to software development as a Software Developer.
Software Engineer
A software engineer designs, develops, tests, and maintains software applications. Learning Python can be a great tool to become a Software Engineer. This course may be useful as it introduces you to Python, a popular language in software development, and covers essential programming concepts like data types, control flow, functions, and classes. Creating games using `pygame` provides practical experience in applying these concepts to solve real-world problems, which can be very useful as a future Software Engineer.
Automation Engineer
An automation engineer designs, develops, and implements automated systems and processes. This course may be useful as it introduces you to Python, which is often relied on in automation tasks, and covers essential programming concepts such as control flow and functions. Learning to manage large projects while creating games provides practical experience in organizing code and implementing complex systems, useful for designing automated solutions as an Automation Engineer.
Artificial Intelligence Engineer
An artificial intelligence engineer develops and implements AI models and algorithms. This course may be useful as it introduces you to Python, which is a widely used language in AI development, and covers object-oriented programming concepts. Learning to manage large projects while creating games provides practical experience in structuring complex codebases, which is very useful for developing AI applications as an Artificial Intelligence Engineer.
Data Analyst
A data analyst collects, cleans, and analyzes data to identify trends and insights. This course may be useful by introducing you to Python, covering data types, data handling, and functions, all of which are valuable for data manipulation and analysis. Learning to manage data and automate tasks through game development translates into efficiently processing and analyzing datasets as a Data Analyst.
Data Scientist
A data scientist analyzes large datasets to extract meaningful insights and develop data-driven solutions. Learning Python may be useful to become a Data Scientist, and this course introduces you to Python, a popular language in the field of data science, whilst covering data types and data handling techniques. The course also covers functions, modules, and file handling, all of which are useful for working with data as a Data Scientist.
Web Developer
A web developer builds and maintains websites and web applications. This course may be useful, by introducing you to Python, covering functions, modules, and data handling, all of which are useful for backend web development. Learning to manage large projects while creating games provides practical experience in organizing code and implementing complex systems, which helps in developing robust web applications as a Web Developer.
Mobile App Developer
A Mobile App Developer helps in the creation and maintenance of mobile applications on platforms such as iOS and Android. This course may be useful in your journey, by introducing you to Python, covering functions and object-oriented programming concepts. While `pygame` primarily targets desktop games, the fundamental programming skills acquired, such as managing classes, handling user input, and structuring code, are transferable to mobile app development as a Mobile App Developer.
Quality Assurance Engineer
A Quality Assurance Engineer tests software to ensure it meets quality standards. This course may be useful, by introducing you to Python and covering control flow, functions, and data handling techniques. These skills are useful for writing automated tests and scripts to identify bugs and ensure software quality. Gaining experience managing large projects helps in understanding software architecture, aiding in the development of comprehensive test plans as a Quality Assurance Engineer.
Embedded Systems Engineer
An embedded systems engineer designs and develops software for embedded systems, such as those found in IoT devices. This course helps build a foundation by introducing you to Python, covering functions, data handling, and object-oriented programming. These skills are useful in embedded systems development for tasks such as scripting and data analysis. Learning to manage large projects while creating games helps in organizing code for complex embedded systems as an Embedded Systems Engineer.
Robotics Engineer
A robotics engineer designs, builds, and programs robots for various applications. This course may be useful by introducing you to Python, covering control flow, functions, and data handling, which can be applied to robot control software and simulations. Managing large projects while creating games provides experience in structuring code for complex systems, which is useful in robotics as a Robotics Engineer.
Academic Researcher
An academic researcher conducts research in a specific field and publishes findings. Often requires a masters degree or a phd. This course may be helpful by introducing you to Python, covering essential programming concepts and data handling techniques. These skills can be applied to research projects involving data analysis, simulations, and modeling. Learning to manage large projects while creating games provides practical experience in organizing code, helpful for managing research projects as an Academic Researcher.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learn Python by making games.
Provides a practical introduction to Python programming, focusing on automating everyday tasks. It's an excellent resource for beginners to learn Python syntax and apply it to real-world problems. The book covers topics like web scraping, working with Excel spreadsheets, and automating file management, which can be helpful for game development tasks. It is commonly used as a textbook at academic institutions.
Offers a fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you’ll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You’ll also learn how to make your programs interactive and how to test your code safely before adding it to a project. The second half of the book walks you through three substantial projects: a Space Invaders arcade game, data visualizations with Python’s super-handy libraries, and a simple web app you can deploy online. It is commonly used as a textbook at academic institutions.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser