When you look for stuff that is a bit more generic, you often get something like a basic graphics + audio + input package (and if you're lucky, +networking), but very few things on top of that. Here and there maybe you get a nice particle system or a tilemap engine, but that's usually it.
I'm planning to write an easy to use, yet high performance 2D engine (simply as a hobby project). I will not start from scratch, but will instead mostly refactor code of an engine I finished a couple of months ago. Meeshoo correclty pointed out that I should list the features that I already implemented, just to help you help me finding new features that are on the top of your wish-list.
(I'm just looking through the source code and listing everything halfway high-level that I see)
- quadtree for space partitioning
- collision detection algorithms for AABB/AABB, AABB/OBB, OBB/OBB, Ray/Ray, Ray/AABB, Ray/OBB (based on SAT)
- Custom settings file parser (this is super ugly, but hey it's there and easy to use)
- Content management. Load textures/soundfiles/shaders/everything through one generic class. Easily extensible (custom loaders) using template specialization.
- gamestate managament. transitions between gamestates, have multiple gamestate running at once (render everything, update and respond to input only in "top gamestates" and features like that)
- renderer that centralizes all drawing and does some basic optimizations, but can also do dynamic 2d hard-shadows (with an arbitrary number of light sources).
- path finding using A*.
- animation system (simple spritesheet based keyframe animations)
- camera system
- math utilities (mostly stuff for 2d vectors, but also things like fast inverse sqrt in there)
- ingame console (you can type lua-script one-liners in it and it will execute it. you still have to bind your code to lua manually, though)
- entity/component system.
- tilemap engine. you can construct tilemaps with the TILED map editor and load it with the tilemap engine. you can give tiles properties that match properties in the engine, like "solid" which makes the tile collide with things, you can give tiles scripts to execute on collision, etc.
That's basically it. There's some other (lower-level) stuff in there, but it isn't really worth mentioning, since it's just used to make the higher-level stuff work.
So what are some other features that you'd like to see the most, because they're usually missing in other engines?