The Art of Doing: Video Game Creation With Python and Pygame
What you'll learn
- Fundamentals of the Pygame library and overall video game design.
- The use of Classes and Inheritance to make complex code more organized and efficient.
- How to create surfaces, blit images, render text, handle user input, and detect collisions.
- How to work with sprites, sprite groups, and more robust collision methods.
- How to create our own tile map and read a tile map to design a game level.
- How to use 2 dimensional vectors to handle complex platformer motion such as running and jumping under gravity and friction.
- How to add custom character animations using sprite sheets to help make our games really come to life.
- How to use collision masks to have pixel perfect collisions when needed.
- Create 7 awesome games in total! 4 that are very beginner friendly, 2 that are intermediate, and 1 that is advanced.
Requirements
- Basic Python/computer science understanding.
- Students should understand basic things like variables, lists, loops, and conditionals as I wont really spend time teaching these concepts but rather showing how to use them in larger projects.
- In the second half of the course we will be switching to using classes extensively. I will spend some time reviewing and teaching the topics of classes and inheritance but prior knowledge may be helpful.
Description
Have you learned the fundamentals of Python and then asked yourself; what's next?
If so, consider taking this course which will start you on your journey to making your own playable, fun, and rather addicting video games using Python and the Pygame library.
So often, when students ask for advice they are told to, "Go build something" or "Get involved on a project" but have no idea what projects to build or get involved in.
This course will set you on your way! In this course I will walk you though, step by step, on how to to design the layout and the functionality of 7 unique, engaging, and most importantly, FUN games. By the end of this course, I promise that you will be coming up with your own game ideas and feel confident enough in your abilities to create them.
In my experience teaching computer science, students tend to flourish under the basics but hit a wall when we approach object oriented programming. The shift to using Classes as a way to structure code is difficult and often times students don't have enough exposure to meaningful examples of how to use Classes to help make complex code more efficient. I believe by the end of this course, you will understand how to use classes.
This course is designed in such a way that NO KNOWLEDGE OF CLASSES is needed to start! We will begin by learning the fundamentals of the Pygame library and video game design concepts as we move onto making 4 very fun arcade style games.
We will then review/teach concepts of classes and inheritance in Python as they are crucial tools to help us take our games to the next level using Sprites and Sprite Groups. We will spend some time learning more intermediate concepts such as how to use sprites, sprite groups, and various sprite collision detection methods as we move onto making 2 intermediate level games.
The third portion of this course will focus on more advanced topics such as creating a tile map and using/reading it to create more complex level designs, using 2 dimensional vectors to aid with more complex player movement such as running and jumping under forces of friction and gravity, and adding character animations to make our games really come to life! We will use these more advanced concepts as well as all of our previous knowledge to make one last game that will be a great final project for you to show off!
I'm really proud of this class. I really believe it not only is a great learning experience but it is also A LOT OF FUN! I hope you consider joining and taking part in the learning.
Who this course is for:
- Beginner Python developers curious about video game design and the Pygame library.
- Beginner Python developers looking to strengthen their understanding of Classes and how they can be used in larger projects.
- Beginner Python developers who have a love for classic style arcade games.
Instructor
Hello, my name is Michael Eramo. I am a life long learner, a self-taught programmer, and an experienced educator. I hold official Bachelor's degrees in Music, Education, and Physics, as well as a Masters degree in Mathematics. I also hold a certificate in Software Development from Microsoft.
I have years of experience as a high school Physics teacher, Computer Science Teacher, and college Mathematics teacher. I am part of the New York State Master Teacher Program a network of more than 800 outstanding public school teachers throughout the state who share a passion for their own STEM learning and for collaborating with colleagues to inspire the next generation of STEM leaders.
I am passionate about learning new things and teaching what I know to those around me in a way that is engaging, meaningful, and with purpose.