If you want to know what sorts of libraries the game industry wants to license, take a look at RAD Game Tools, they are the masters of this stuff. Some of the stuff they are currently focused on are large data-set compression/decompression (Charles Bloom) and I would guess some sort of tool/library to generically handle sparse virtual texture rendering (Sean Barrett) which is similar to id's megatexture technology... though the SVT guess is more speculation on my part than public knowledge.
In any case, this market is probably not a great one to get into unless you are a deep subject matter expert in one of these areas (or you want to become one and have a lot of time to spend doing so), the bar is set pretty high already and few game development studios are willing to put any effort into exploring solutions that aren't either well-proven or from people they already know and trust (the game industry is still rather incestuous).
So a fully functional physics engine, a complete procedural tree generator, a self-contained front-end system, a reasonably complete animation package, that's fine, that's great stuff.
Sixty percent of a solution plus an API is not okay.
A complete solution to a problem (no matter how niche) with the smallest integration surface is key.
Procedural generation is, IMO, the way to go here, but it's an unsolved problem. I've been thinking about this for a long time and I've had two specific ideas in mind for how to ease the cost of content development. Please, steal these!
Idea one is for the creation of individual assets. You start with what is, in effect, a block of clay. You (programmatically) cut away at it, apply materials to it (which could, in turn, do things like cut a wood grain into it), add on to it, etc. So let's say you want to build a sign generator for shops in your town. You'd start with a block of clay roughly the size of your sign, cut it into the (2d) shape you want, emboss the logo into it, then apply a wood material to the sign, and paint the raised areas. This allows you to quickly create unique assets in your world.
Idea two is for the high-level creation of a world. You have an editor where you can create a landscape. You start by setting the size of the area, drag points up and down to affect terrain, etc -- all stuff that's been done before. The key, though, is in world brushes. For instance, you select a 'forest' brush. This brush, when painted onto an area, creates trees, rocks, bushes, etc as appropriate based on elevation, angle of the ground, etc. So you paint part of your area with a forest brush, then go in and paint in a river, paint in paths, etc. Once you've created the high level look, you can go in and add features like signs to cities, unique quest/story-related assets, etc. This allows you to create large areas with completely unique geometry very quickly and cheaply, without sacrificing quality; after all, you're starting off with unique objects and then adding specific touches.
The latter idea has been implemented to a certain extent in the past, but it's been entirely via instanced geometry. The problem there? Everything looks the same. Procedural generation lets you get a unique world, then you can go in and actually make it feel real.
Procedural art is really cool if you can think about your asset as a programmer - but you need to remember artists do not think like us. If you are willing to replace your artists with tech artists though, that's a different story (note: normally those people are rare, and stay in one field programming shaders).
"The problem there? Everything looks the same." -- Yes, that's exactly the desired consequence by artists, and as mentioned, will cry if their flexibility is revoked by tools they are not familiar with (in house model/texture generators).
While you as a programmer think of a texture of "noise and color", artists think about it as brush strokes, materials and emotions.
You have to make the GUI artist-friendly though, inputting some numbers and hitting a button won't do. The tree generation company (SpeedTree) is actually a good example. Their program is very easy to work with even for artists and you can generate a large scala of realistic-looking trees.
Also, with procedural generation you can achieve a more varied look. For example: If artists have to design every tree, you get a few specimens that you place everywhere. With automatic generation, every tree can be different,
The second idea is also already being done by software like Terragen from Planetside Software: http://www.planetside.co.uk/ I don't know how widely used this is; I have the impression lots of game companies build similar tools in-house, tailored to their particular games.
I guess you talk about SpeedTree. We used in some of our games, but not in our latest.
One of the problem of using middleware, especially one generating content is how to integrate it with the rest of the pipeline.
If our pipeline sees that as just another model/texture like the rest of the provided, then no problem - e.g. An artist uses the tool to generate the geometry. But if we have to put some control over it, and integrate it deeper so far into the rendering system, then other problems arise: - Speed of rendering - Memory usage - Collision support - Can it reuse existing shader techniques, or new are required. - others
And since you've talked about procedural - this would entail more variations:
For example if this is an multiplayer game you would have to synchronize the tree generation to look exactly the same for each player, and have the same collision box, or collision model (usually low-poly bounding convex or set of). This means you would have to communicate synchronize this with the clients.
Then some animatiors might've adjusted certain cut-scene to look very good, but the TREE has changed and now it's weird.For an open world RPG, or strategy game this might not be a problem - more variation there for the better.
But all in all, if the price is right, and artists and coders agree - why not?
They just have to use identical seed values for their random number generators.
Look at dwarf fortress: a few worldgen parameters and a single number are all you need to generate a fantasy world with complete with procedurally generated geography, population with traceable lineage, governments and other entities, and history, including artifacts and artwork that portray said history.