Summer coding bootcamps are here!

Available for beginner to more advanced. Flexible options to fit your families summer plans.

PyGame: Python Game Development

4.9 (117 ratings)
Taken by 552 students

Does your kid want to be a game developer? They can start now. After completing Python Level 1, students can take this course to build more sophisticated graphics-based games. They’ll also learn object-oriented programming, a key component of computer science. Game on!

Private 1:1
Age 11-18
50 minutes
Per class
PyGame: Python Game Development

About this Course

Making your own game is one of the most exciting things you can do with code. Students in this course will work one on one with an instructor to learn how they can use object-oriented programming, game physics, and event handling to create real-world games like Space Invaders or Ninjas vs. Aliens. Students will also get the opportunity to build and share their very own game!

Billed as

$250 / month

4 classes / month × $62.50 / class
First class free!
  • First class free!
  • Cancel anytime

1:1 classes are 50 minutes long and can be scheduled anytime Monday-Sunday from 7am to 7pm PT. To begin, select Try a Free Class to signup. Our team will then match you and set up your first class!

  • Course duration
    4-6 months
  • Lesson
    50 minutes
  1. Actors-1: I know how to use width and height to specify the dimensions of the screen in PyGame.

  2. Actors-2: I know what an actor is in PyGame.

  3. Actors-3: I know how to create a new actor in PyGame.

  4. Actors-4: I know how to use position keywords to control the position of the alien in PyGame.

  5. Actors-5: I can use the draw() function correctly in PyGame.

  6. Actors-6: I can use screen.clear() correctly in PyGame

  7. Actors-7: I know what global variables are and when to use them in my code.

  8. Actors-8: I can use global variables to move the alien on the screen in PyGame.

  9. Actors-9: I can use the update() function correctly in PyGame

  1. Event Listeners-1: I understand what event listeners are and how we use them in PyGame projects.

  2. Event Listeners-2: I can use the on_key_down() function correctly in PyGame.

  3. Event Listeners-3: I can use the key parameter correctly in PyGame.

  4. Event Listeners-4: I can use the on_mouse_down() function correctly in PyGame.

  5. Event Listeners-5: I can use the button parameter correctly in PyGame.

  6. Event Listeners-6: I can use the position keyword correctly in PyGame.

  1. ZRect-1: I know what a ZRect is in PyGame.

  2. ZRect-2: I can use the ZRect((x,y),(w, h)) function correctly in PyGame.

  3. ZRect-3: I can use the screen.draw.filled_rect() function correctly in PyGame.

  4. ZRect-4: I know how to change the color of a ZRect in PyGame.

  5. ZRect-5: I know what dynamic attributes are in PyGame.

  6. ZRect-6: I can use dynamic attributes to move an Actor in PyGame.

  7. ZRect-7: I can use the .colliderect() function correctly in PyGame.

  8. ZRect-8: I know the difference between the functions .colliderect() and .contains()in PyGame.

  1. Collectibles-1: I know how to incorporate lists into my PyGame code.

  2. Collectibles-2: I know how to incorporate loops into my PyGame code.

  3. Collectibles-3: I know how to draw collectibles on the screen by using a loop in PyGame.

  4. Collectibles-4: I know how to change dynamic attributes of list objects in PyGame.

  5. Collectibles-5: I can use nested loops to check for collisions of collectibles with each other in PyGame.

  1. Gravity-1: I know what global variables are necessary to add gravity in PyGame.

  2. Gravity-2: I can set up the necessary dynamic attributes for gravity in PyGame.

  3. Gravity-3: I can correctly apply gravity in the update function in PyGame.

  4. Gravity-4: I can prevent an actor from falling through the floor in PyGame.

  5. Gravity-5: I can make an actor jump in a game with gravity in PyGame.

  1. Friction-1: I know what global variables are necessary to add friction in PyGame.

  2. Friction-2: I can correctly apply friction in the update function in PyGame.

  3. Friction-3: I know how the value of the friction variable will affect an actor in PyGame.

  1. Platforms-1: I know what is necessary to create a platform in PyGame.

  2. Platforms-2: I can create a ZRect in a given spot on the screen in PyGame.

  3. Platforms-3: I know how to incorporate conditionals into my PyGame code.

  4. Platforms-4: I can write the correct code to keep an actor on top of a platform in PyGame.

  5. Platforms-5: I can create a moving platform in PyGame.

  1. Many-1: I know how to store many platforms in a list in PyGame.

  2. Many-2: I can create and fill a list with platforms in PyGame.

  3. Many-3: I can draw all platforms in a list to the screen in PyGame.

  4. Many-4: I can apply platform collision to all platforms in the list in PyGame.

  1. System Control-1: I can use a gameState variable correctly in PyGame.

  2. System Control-2: I can use conditionals in the draw() function to display the correct screen based on the gameState in PyGame.

  3. System Control-3: I know that PyGame Zero’s built in Clock can be used for scheduling game events.

  4. System Control-4: I can use the moveTargets() function correctly in PyGame.

  5. System Control-5: I can use the clock.schedule_interval() function correctly in PyGame.

  6. System Control-6: I can use the clock.unschedule() function correctly in PyGame.

  1. Projectiles-1: I can use a variable to check if the laser has been fired in PyGame.

  2. Projectiles-2: I know how to manage lists of projectiles correctly in PyGame.

  3. Projectiles-3: I can loop through the list in the draw() function correctly in PyGame.

  4. Projectiles-4: I can loop through the list in the update() function correctly in PyGame.

  5. Projectiles-5: I know how to make an actor move in the direction of another actor in PyGame.

  1. I use spacing and logical variable names to improve my code's readability

  2. I regularly comment my code to improve my code's readability

  3. I appropriately and frequently test my code

  4. I can independently debug my code

  1. Joyful Collaboration

    1. I practice listening to my instructor and sharing my ideas to co-create understanding.
    2. I attempt tasks independently and ask my instructor questions when I need help.
  2. Unlimited Curiosity

    1. I take ownership of my learning by asking meaningful questions both when I need clarification and when I want to know more about a topic.
  3. Nimble Determination

    1. I practice resilience when I am frustrated that I have not yet achieved mastery of a new concept or skill; instead of complaining about challenges, I try new approaches and creative solutions.
  4. Invest in Excellence

    1. I arrive to class on time and prepared to learn, with my computer set up with a strong internet connection.
    2. I complete my homework on time, and if I cannot complete my homework due to other obligations, I honestly communicate the reasons for late homework to my instructor.
    3. I do my best to stay present and on task for the whole session. I support my focus by putting away any distracting technology and setting notifications on my device to “do not disturb” mode.

Instructors will assign students roughly 60 minutes of project related homework at the end of each session. Homework is designed to complement the class experience and ensure the student continues to gain practical experience outside of the session.

Who are Juni’s Instructors?

Our instructors are subject matter experts from top US universities. Instructors are highly-vetted and background checked prior to joining and undergo extensive training before ever teaching on our platform.

Upon signing up, parents are asked a series of questions that allow us to match your child with an optimal instructor based on their unique needs and interests. Factors that are considered in our matching process include Learning Style, Personality, Personal Experience, and Academic & Career Aspiration.

Headshot for Puja D
Puja D
I really like bringing a strong energy to my classes, and sharing excitement with my students about learning new topics.

More Courses You Might Like

Real reviews from real parents

4.9 out of 5(117 ratings)
5 stars
4 stars
3 stars
2 stars
1 stars
Isaac is outstanding- Sammy really enjoys learning with him and I truly appreciate his detailed session notes, diligence and skill as a teacher
Laurel M
Jan 31, 2022
Isaac is outstanding- Sammy really enjoys learning with him and I truly appreciate his detailed session notes, diligence and skill as a teacher. We are very happy with Juni and especially with Isaac!
Alex has been participating in coding courses at Juni since age 7
Fern M
Jan 31, 2022
Alex has been participating in coding courses at Juni since age 7. He started with Scratch and Python, and now he chose to do PyGames which is an application of coding to develop games. He is learning so much, and at his age, he knows more than me regarding coding. I am engineer with some basic knowlegde in coding, but he is only 10 now and is feeling so comfortable with the computing language and math basics. I believe it will help him to make career choices later on, if he decides to go that route. EIther way, those skills are for life. I am very happy witht the pressure-free format at the classes, knowl;eageable instructors, consistent and fun .
My 5th grade daughter Zoe really enjoyed the Python classes (Python 1 and PyGame)
Ding L
Jan 23, 2022
My 5th grade daughter Zoe really enjoyed the Python classes (Python 1 and PyGame). Instructor Juliet L. is very friendly and responsible. I am happy that Zoe want to learn more classes with Juni.

Start Learning with Juni

Turn your child’s passion into a professional skill