In this series, I want to show students and traditional programmers how to make a game using Python. The simplicity and readability of the language lowers the barrier for learning how games engines work.
I am going to assume readers have fundamentals in Python. But you don't need an intermediate level in Python as this series will be beginners friendly.
We will learn how game engines work under the hood. We will use that knowledge to make our own game. You will learn concepts not taught in traditional programming schools.
So you want to make a game
We'll start with pygame because that's where I am the most familiar with. The focus will be on 2D game development.
Throughout this series, I'll be talking about:
Chapter 1 - pygame 0. Installing pygame 1. Creating the pygame window 2. The game loop 3. Sprites 4. Game clock 5. Keyboard input 6. Game objects 7. Text 8. Collision detection (Maths) 9. Mouse input 10. Drawing shapes 12. Sprite special effects 13. Audio 14. Code structure (Refactoring) 15. Pygame surfaces 16. Optimization 17. Polish 18. Collision detection demonstration app 19. Collision detection (pygame implementation) 20. Sprite animation 21. Share your work! 22. pygame zero Chapter 2 1. Game Engine development - Particle System 2. Game Engine development - Events 3. Game Engine development - Triggers 4. Game Engine development - Entity component system 5. Game Engine development - Game State/Flags 6. Game Engine development - Menus 7. Game Engine optimization tricks 8. Game Engine development - Physics (simple) 9. Game Engine development - Physics (platformers) 10. Game Engine development - Physics (using libraries) 11. How does game loops tick rates works 12. Timer based vs frame based game engines Chapter 3 - Ren'py Chapter 4 - Arcade 0. Differences between Arcade and pygame
The above is not set in stone. I might move things around (and update this table of content) but as the time of this writing, this is the sequence that I think can build up the foundation for game programming.
Why not use an already built game engine in the market?
If you are building a game you want to sell, I don't recommend Python. I would recommend either Unity (C#) or Unreal Engine (C++). These are game engines built with speed in mind (a weakness Python will inherently have as its an interpreted language) and have thousands of manhours development time.
This series is focused on making a game engine and how it works under the hood. By the end, you should have understood enough to make a complicated game and even know how game engines are created.
When do we start?