Using the Terrain
Of course we should never forget to make creative use of the terrain, to catch, split up and harass the enemy.
I've notice that in the career scenarios that I've played, there are often boundary formations that serve as the 'anchor' points of defensive structures. The two passes in Mediolanum are the prime example, but there are also rocky areas that serve as natural walls on both the east and west side of Carthago and on one side of Tingis. One of the things I do when preparing to start a scenario is to find where these defensive points are and to plan walls to bound the city.
Your suggestion can preclude most defense problems. Almost any map has good choke points or defensive barriers you can build the city around. Never clear trees until you are ready to build something in their place. They are great delayers, diverters and chokepoints against enemies. When the forests are really dense, I use a tactic I shall label FOREST PATH; It involves cutting some very narrow paths through dense forest. You may withdraw javelins units through the path, with the enemy in pursuit, leading the opponents through a narrow maze . If they catch up, they can only hurt the few units at the end of your retreating column, yet take fire from all your peltasts throughout. As they delve deeper into the Forrest, they often loose track of your city, and chase your troops through the maze until attrition grinds them down. You can even loop the path back to the map edge. Once deep in the forest, the enemy has no choice but to follow it, in or out. This is a rural version of the firing choke point tactic posted before.
Engaging the enemy along narrow roads has an additional advantage: Your opponents can attack only one or two of your troops at the head of your road bound column at once, and it will take them a long time to overcome the blockage. (Recall how Spartans and allies defended the narrow pass at Thermopylae for days in spite of horrendous odds. In the narrow pass, only an equal number of Persians could attack the Spartan array at once. ) Given this delay, Prefects, Ballistas and gladiators have that much more time to join the defense. This chokepoint defense can be done in skirmish order, or even in formation if most enemy are coming upon a single point. Of course the enemy can outflank the column to engage the units in the rear, but only after the delay of tearing down buildings along the side of the road, while you continue to throw ballista, javelins or prefects against them.
VARIATION- FIRING CHOKE POINT
Place a javelin unit(s) in a column formation along a narrow road through which the enemy moves. Retreat along road, stopping to fire now and again as the enemy approaches, (Or even use two javelin units on same narrow road in bounding overwatch). Do this until you have no room left to retreat, or reach an indispensable structure you simply must stand and defend. Even if the enemy now engages your javelin column in hand to hand combat, they will only be able to harm the first two peltasts at the head of the column, at any one moment, while those behind continue firing. The peltasts can hold out longer, in direct shock combat along such a narrow path than in the open field. The enemy must either work their way down the column, or take time to destroy building on the flanks, to get at the javelin units in the rear of your column.
VARIATION: FORMATION CHOKE POINT
Although formations don't keep their strength too well on broken terrain, it is sometimes best to keep your troops in formation even in such ground, because it at least keeps them in a single place, rather than letting them pursue the enemy all over. Just as the enemy enters your city, and before it branches out along your streets, such a formation choke point can provide a blockage along the one or two approaches into your city, which stem from the enemy's breach point. While deprived of formation integrity, your units will still congregate in dense clumps along roads and block rapid enemy entry along these few approaches.