Skip to main content

Pygame SGE

An easy to use, universal 2-D game engine.

Julie Marchant

The SGE Game Engine ("SGE", pronounced like "Sage") is a general-purpose 2-D game engine. It takes care of several details for you so you can focus on the game itself. This makes more rapid game development possible, and it also makes the SGE easy to learn.

This implementation of the SGE uses Pygame as a backend.

You may also be interested in xSGE, which provides some extra modules for games under the GNU General Public License. You can find xSGE here.


Home Page


Pygame SGE 0.19 — 23 Jun, 2015

Pygame SGE 1.1.1 — 7 Sep, 2016

Pygame SGE 1.2 — 17 Oct, 2016

Pygame SGE — 5 Nov, 2016

Pygame SGE 0.17 — 28 Mar, 2015

Pygame SGE 0.7.0 — 18 Mar, 2014

Pygame SGE 0.5.0 — 7 Nov, 2013

Pygame SGE 0.9.0 — 16 Apr, 2014

Pygame SGE 0.10.1 — 10 Jul, 2014

Pygame SGE 0.5.1 — 8 Nov, 2013

Pygame SGE 0.8.0 — 21 Mar, 2014

Pygame SGE 0.9.1 — 21 Apr, 2014

Pygame SGE 0.6.0 — 7 Feb, 2014

Pygame SGE 0.9.2 — 21 May, 2014

Pygame SGE 0.11.0 — 19 Aug, 2014

Pygame SGE 0.21 — 11 Nov, 2015

Pygame SGE 1.0rc1 — 6 Apr, 2016

Pygame SGE 1.1 — 3 Aug, 2016

Pygame SGE 0.10.0 — 28 Jun, 2014

Pygame SGE 0.13 — 21 Oct, 2014

Pygame SGE 1.0.2 — 19 Jun, 2016

Pygame SGE 1.4.3 — 31 Jan, 2017

Pygame SGE 0.14 — 16 Dec, 2014

Pygame SGE 0.18.1 — 30 Apr, 2015

Pygame SGE 0.20 — 26 Aug, 2015

Pygame SGE 1.0 — 18 May, 2016

Pygame SGE 0.23 — 12 Feb, 2016

Pygame SGE 0.24 — 12 Mar, 2016

Pygame SGE 0.12 — 7 Sep, 2014

Pygame SGE 0.15 — 4 Jan, 2015 account Comments

  • Mike 2014-07-10 18:20:10


  • Aegar 2014-09-07 00:41:07

    This is REALLY awesome. It has the potential to be the Flixel of Python. You should set up a proper forum and start a community around it so it can gain some momentum!

    onpon4 2014-09-07 01:30:17

    Given the number of responses I've seen, I don't think a forum would be very active. Actually, I think it would turn out to be a ghost town. It doesn't help that the SGE so far is mostly all talk, with only a Pong implementation developed using it, so I'm working on fixing this by developing a far more interesting game that I've wanted to develop for some time.

    If you want to help, you can do so simply by using the SGE to make games, suggesting new features, and reporting bugs. :)

  • evily 2014-09-17 20:44:25

    may be a stupid question. but how do i install/start it once i have the source?

    onpon4 2014-09-17 21:25:13

    Standard Distutils install procedure. See this page:

  • Dude 2014-11-07 18:51:04

    how do i play this game?

    onpon4 2014-11-07 21:31:32

    It's a game engine, not a game. You use it to develop games.

  • rcueiyncdxunifgndxuewfn 2014-11-07 19:00:25

    How do download?

    onpon4 2014-11-07 21:32:45

    Click on the download link.

  • Dude 2014-11-07 19:01:53


  • DuhPhD 2016-02-21 16:39:57

    Looks like 'six' is required for Python 2.7 (error ImportError: No module named six). Hello World works after I installed it.

    onpon4 2016-02-21 16:58:52

    Yes, Six is a dependency. It is listed as such in the readme and in

    DuhPhD 2016-02-21 17:50:38

    Awesome, thanks! I'm used to 'python install' and everything magically working (but usually not). I appreciate you put that in the readme and

  • DuhPhD 2016-02-21 17:36:41

    What is the SGE-ic way to do sprite animation with multiple animations? E.g. a stationary animation, running animation, jumping, falling, etc. I can accomplish this with the current setup in a less straightforward way than I think you intended.

    onpon4 2016-02-21 18:16:31

    You have multiple sprites, one for each animation, and you change an object's sprite to change the animation. Here's an example of code that does this from one a game I made:

    DuhPhD 2016-02-21 18:27:28

    Ah, OK. I had it in my head to have a single sprite for all animations and just fiddle with the image_index. I guess I'll create a Character class as a container for all my sprites and switch them that way. Thanks!

    Nathaniel 2016-08-22 01:47:26

    you gotta learn to code print("nooby people dez days")

    DuhPhD 2016-02-28 00:36:25

    What do I do when I have multiple sprites with different numbers of frames? It seems when I set player.sprite to a new sprite, it assumes the same number of frames from the original sprite (i.e. the very first sprite assigned to the player). Thus, if I set player.image_index to an index that exceeds the number of frames in the original sprite, the index is automatically reset to 0.

    EDIT: Nevermind, I can't code.

  • alex carey 2016-06-09 08:21:09

    Hey that's mine

    onpon4 2016-06-19 09:57:24

    What is? The Pong clone in the screenshot is entirely custom-made and doesn't use any pre-existing media. I even generated the sounds myself with Sfxr.

  • ivan huang 2016-09-08 13:48:39

    Your game doesn't work bro

    onpon4 2016-09-08 15:55:00

    This isn't a game. It's a library. Pacewar, ReTux, and Kitten Command are the games I have developed with it so far.