If you want to have intelligent agents runing around theres another engine you might also consider -> unity3d.
I did a city simulation 4 months ago on "unity3d", based on (BDI)beliefs desires and intentions model for agent cooperation.
It was a simulation of realistic robotic agents, where they must discover and communicate with each other to solve a given problem.
It had the following agents:
Builders:
- they build buildings using resources available on a center hub.
- can cooperate on building buildings.
- when the resources are gone they go back to the center hub to refill their resources.
- when at night they got to the center hub to sleep and regain energy.
- they discover the city streets and prioritise where to go based on what they do daily.
- the city street knowdledge is shared when agents come in contact with each other.
Buildings can catch fire and have 4 tiers of fire intensity forcing firefigthers to cooperate to put out the fires, dependent on the degree of fire and if they have enough water to put it out.
Firefigthers:
- Put out fires with water that needs to be refiled at a center hub, they also need to bring a water purification unit to the center hub in order for water to be refiled.
- Comunication is done on several levels i had to model things like "getting help" or "give me your water and go get help", or even warn a builder to get several firefigthers.
- they gather statistical data during the day and before night a reunion is made where the most effective firefigther is elected as a leader and decides if more firefigthers need to be spawned
- the way agents cover the city is also monitored and they learn how to cover it more effectivly
etc....
Also i had unit colision so the agents themselves had to avoid each other, on a constant basis.
I also implemented a reactive only state agent model for testing purposes.
I had to implement A* pathfinding on a huge grid and i had over 100+ agents doing their own computations, and since the number of agents increases each night dependent on how well they do during the day the lag was real sometimes.
So in all honesty its not an easy project if you want to have independent agents runing around.
If what the player has to do is place buildings and watch some people runing around from point A to B, unity3d or especially spring will allow you to make a decent game, but more than that youll have to code a lot by yourself.
Spring abstracts a lot of work you have to do even AI might be doable, and overall its a better alternative for building an RTS.
But in all honesty unity3d will help you implementing things like Agent fields of vision, detecting if colisions happen on what side of your agent. Even triggers and memory management of your own GRID that allows you to have dynamic build placement that isnt awkward and fiddly, that also allows you to pass and store important variables.
Thing is it all depends on what you want to do, if your going for an RTS without complex agent structures Spring is the engine for you, if not id say unity3d is the best FREE alternative you have, but you will have to implement 90% of what you want on it.