MrValdez's Blog

Game Engine Development: Introduction

Posted on Nov. 18, 2018

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

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. 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.

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?

Pygame - Part 1

Categories: gamedev