Hi Pullo,
1) All of the units of one of the factions will have a limited lifespan. A unit’s HP will decrease over time until it dies. The rate at which HP decreases will depend on what surface this unit is standing and I don’t mean grass/sand etc, each ‘square’ will have its hidden value that will determine the rate of decrease. Also note that units will have its max total HP decreased, i.e. if unit has 250/250 HP now then after say 10min it gets down to 200/200 HP. Or if 100/200 -> 50/100 etc.
This will obviously need to be coded in, but it wouldn't be overly difficult. The max-hp would need to be moved or duplicated to the Unit class though, Glest uses the Flyweight pattern for game objects (including units), so max-hp is stored in the UnitType class, not Unit.
2) Units of other faction are battery powered and they get discharged. The rate of discharge depends on the current action (idle, movement, shooting etc.). The battery can be recharged by standing close to a special building.
EP provides the mechanism for requiring 'power', to get it to recharge only if within the vicinity of a certain building will require some code.
3) Each of the factions will have its special units with special abilities like going invisible for example
Invisible/Cloaked units would probably be the toughest thing on your list to implement. I can't really comment on the graphical side of things, not my area of expertise
4) Some units should be able to divide itself forming two units.
This should be easy enough to implement, either as a new command in it's own right, or by chaining a produce and morph command together.
5) In one of the factions a worker does not build a building, it becomes a building.
Morph command will do this for you out of the box.
Of course, I’m not asking you to help me with implementing these features I just want to know preferably from someone who is involved in developing the engine whether it’s technically practical within realistic timeframe of about 4-5 months. I have an average programming abilities just like any other 4th year Computer Science Student and I mainly have experience in Java and C# and a lot less in C++ but I don’t think that this is an issue though.
I think you should be able to get it done. The only one I'd be unsure about is the invisible units, the rest I think could be whipped up rather quickly... of course I'm already quite familiar with the engine
Ultimately it would probably come down to how much time you had to explore the codebase. That said, I'd be happy to provide what pointers I can if you did decide to use Glest.
Either way, best of luck!