Ideas for a extendible consolidation library

Hi, jME is really interesting to me: it has a liberal license, and it looks pretty in-depth. I've got a few suggestions for a library that could use jME to let people make games quicker and without having to learn too much detail about implementation of particular game features. I don't know if this is just an unrealistic project right now, but it would really appeal to me.



The concept of this library is that AI, networking, camera movement, effects, transitions, characters, buildings, vehicles, game styles, and probably more, are all handled in a way that a programmer can quickly put together the game that's in their head.



The library would negotiate all the parts so that programmers could make hybrid game types, like an isometric strategy combined with FPS. This would happen even if the integration was quite coarse-grained, like having specific areas of the game world that just ran a particular style of play – and if this was networked, it might not relay the realtime aspect of that area if one wasn't in that area.



The code would be simple and expressive. Here's a few sample lines I thought of:


world.place(object, new Location[] {new Location(Location.NEAR, otherObject), new Location(Location.ON, floor)});



Which would find a way of placing the object in a way that satisfied the location constraints.

world.place(camera, new Location(Location.FACING, team1)
camera.panTo(team2, PanStyle.get("Smooth").setAttribute("Speed", "2ms"))



Which should be selfexplanatory.

screen.display(swingMenu)



Which handles all of the work that would make OpenGL show the Swing component.

GameCharacter gameCharacter = new GameCharacter(new Characteristic[] {new Face(FaceStyle.get("Goblin"))})



Which allows character creation based on the assumption that apart from the specified characteristics, the implementation should be able to guess the rest of the model, physics, etc.

Here are some I won't comment:

world.duplicate(gameCharacter, 5, PositioningPreset.get("Square formation"))



gameCharacter.follow(anotherGC, FollowStyle.get("Chase"))



playerControl.setCharacter(gameCharacter)
playerControl.setStyle(PlayerControlStyle.get("FPS"))



//Tracker is thread checking for certain conditions
tracker.addWorld(world)
tracker.addProximityListener(ProximitySpecification.NEXT_TO,
      object,
      playersSet,
      new ProximityListener {
         public void objectEnteredProximity() {
            //Do something
         }
      })



playerCharacter.addEffect(Effect.get("On fire"))
playerCharacter.addEffect(Effect.get("Aura").setAttribute("Color", "blue"))



character.enter(car)



character.addAttribute(CharacterAttribute.get("Awaiting ball"))



trees = 3DModel.get("Tree", 5)
world.place(trees, PositioningPreset.get("Tree scatter"), new Location(Location.NEAR, mountain.getSideFacing(Location.NORTH)))



world.saveTo(file)
world.save()







All of the library would be network-ready, so all additions to the library would have to bear this in mind. All movement decisions would be done with awareness of all parts of the game. This would allow really complex (online) games to develop.

I also think that tools would be made that allowed people to develop extensions to the library with minimum programming and steep learning curves. For example, for modelling, the generic bipod skeleton could be extended with particular faces, clothes, etc. each individually without having to get involved in making the whole work.


I see from the forums that loads of work is being done in many directions, and I think jME, and Java could really make something like this possible.


Anyway, I look forward to hearing what anyone thinks about this.