Game Engine Development: Introduction
Posted on Nov. 18, 2018In 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
Python have different frameworks for making games. For this series, we will focus on pygame, arcade, and ren'py. Each of these frameworks have their own pros and cons.
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. Collision detection (Maths)
8. Sprite interaction
9. Collision detection (pygame implementation)
10. Sprite animation
11 Text
12. Pygame surfaces
13. Sprite special effects
14. Mouse input
15. Audio
Chapter 2
1. Game Engine development - Triggers
2. Game Engine development - Game Object composition model
3. Game Engine development - Game State/Flags
4. Game Engine development - Menus
5. Game Engine optimization tricks
6. Game Engine development - Physics (simple)
7. Game Engine development - Physics (platformers)
8. Game Engine development - Physics (using libraries)
9. How does game loops tick rates works
10. 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.
If you want to check for new posts, you can visit my gamedev category, or subscribe to my rss feed.
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?
