I think the engine for Civ4 is really well-developed, yet simple.
The precepts for the engine are this:
Each unit has a simple Movement and Strength score. That's it. No offense and defense ratings.
Each unit has a type (melee, archer, gunpowder, mounted, etc.)
Many units have a specific attack or defense bonus that applies in certain situations. Usually, these are: 1) attacking or defending against a certain unit or type of unit, or 2) being on a certain terrain. (There can also be penalties.)
For instance, all units may gain +25% to strength when defending on a Hill. Spearmen may gain +50% when attacking or defending against mounted units (cavalry, elephants, horse archers, etc.)
Units that win battles gain experience, and the victor can choose an advancement for the unit. An advance can be a 10% across-the-board Strength bonus, or a larger bonus that only applies in certain situations.