When I started work on Deep Field, I wanted to make the enemy empires fully simulated -- they would explore, colonize, grow, declare war, etc. As I built out the A.I. for the enemies, I started to realize that it felt fairly shallow. Battles were always front-loaded, with all of the fleets of the respective empires clashing in one massive confrontation near the border. After this battle, whichever side had more ships left would quickly steamroll over their enemy's solar systems, ending the war.
When the player was on the losing end of this, it felt unfair -- the player didn't have time to react to mistakes that they had made. Obviously there are circumstances where the player deserves to lose completely for making a truly egregious mistake, but most of the time mistakes should be equated with setbacks, not with losing completely.
To make things worse, it felt shallow when the player was on the winning side as well. There was no give and take to empires fighting. When you win one fight and then defeat the enemy empire wholesale, it's fairly boring.
Eventually I realized that the better option was something like the campaigns from RTS games. In Starcraft 2, the enemies in the campaign level aren't fully realized A.I.'s. They start with a huge amount of structures, units, and resources, and then the player whittles them down over time. This makes the game almost feel like a bit of a dungeon crawl. That's the feel that I realized I needed, and so I changed the game to have enemy A.I.'s that attack you every now and then, but don't colonize new stars. The player defeats larger, more powerful opponents one at a time, as they progress through the dungeon of nodes.
Flash 4x Lesson Learned:
Fully realized enemy empires feel shallow in short-form games. The game is decided on a knife-edge, which isn't as interesting as a slow steady advancement as you defeat chunks of the enemy's empires.