Clearly I am not the first to propose turrets in Glest. In fact, I don't really care which engine implements them; I just want them! Now, the way I think they can be implemented is simpler, in my opinion.
In my proposed system, each unit could have a turret on it. It would make the most sense for buildings, though, of course. In my system, the turret is independent of the building. But first, let me define my terms:
Building The bottom unit which does not turn. We can already make these!
Turret The unit placed on top of the building, which turns.
So each building can have a turret added relatively easily. I think that this feature should be implemented because it has been requested multiple times. I think my system is superior because the turret is totally independent of the building files. It is therefore very simple to add/remove the turret, and is simple as well. The file would look as follows. Below (file names were chosen capriciously), building.xml is the building *.xml file, turret.xml is the turret *.xml file, building.g3d is the building model, and turret.g3d is the turret model. Each also have their respective textures.
\building
\images
building_icon.bmp
\models
building.g3d
turret.g3d
building_texture.tga
turret_texture.tga
building.xml
turret.xml
Building.xml is a normal *.xml file for a building. But it should have a special line in it to tell the engine how to find the turret. It could be as simple as follows:
<turrets="true" file="turret.xml">
Then the engine would know to look in turret.xml, which would have additional info, like the following:
<model="true" file="models/turret.g3d"/>
<height="##.##"/>
<rotation_speed>4</rotation_speed>
etc.
If the turret attacks, it is the building.xml which will define it, but the angle which the attack comes from should match up with the angle the turret is turned to. The height is the cool thing in my system; you will place the turret model on top of the building model, and change the height value so it looks right.