I should mention that the Pygame SGE documentation can be found here:
http://pythonhosted.org/sge-pygame/Check out some other 2D game engines; if a lot of them support a feature, that's a good indication of usefulness.
Alright, I'll try. I'm unfortunately not familiar with many of them; mostly just Game Maker, Game Editor, and ENIGMA.
Collision management. Engines are all about improving productivity so make it as easy to add basic physics as possible. This means group vs. item or group vs. group collisions, checking overlap, even resolving overlaps if enabled, figuring out which direction the collision was, modifying the size of hit boxes, players sliding against walls etc. A lot of "game makers" make this as easy as checking a "collide" flag on game objects, you could do things along the same lines.
A lot of that is in the SGE. The sge.Object.collision method can check for collisions between an object and another object, a list of objects, a class, or all other objects, and it returns a list of objects currently being collided with. Directional collisions can be detected with directional collision events (sge.Object.event_collision_{left|right|top|bottom}). Bounding boxes can be changed to whatever.
Can you think of an example of a case where it would be useful to check for collisions between two groups of objects?
I'm not quite sure what you mean by "checking overlap" and "resolving overlap". Do you mean precise collision detection? I've got that.
What aspect of "players sliding against walls"? It seems to me that this kind of thing would simply be setting the position to just above/below/next to the wall in question. The way the SGE currently is, I would set the bbox_{left|right|top|bottom} variables in relation to the wall's bbox_{left|right|top|bottom} variables.
Animation, sprite sheets. Given a spritesheet, specify the frame dimensions, animation frames and duration, and that's it. You can support bitmap fonts using similar means.
Is the sge.Sprite.from_tileset method flexible enough for what you're thinking of with regard to sprite sheets?
Particles and emitters
Didn't think of that. Alright.
Tilemaps. There's probably a python implementation of the tiled format already, if so it'll be good to support that in your engine.
Tilemaps isn't a concept I'm familiar with, but it looks like you're talking about something like this, right?
http://www.mapeditor.org/And this:
https://pypi.python.org/pypi/PyTMX/3.19.5It's a good thing you mentioned that, because I might have been reinventing the wheel lately. But is this something that should really integrated into the SGE directly? It seems like it's more likely something to read and then derive a room from.
Tweens and easing. A generic utility that you can attach to any variable - sprite alpha, rotation, x/y - to animate or move it.
That's another thing I didn't think of. Thanks.