The classic answer to this particular question is this two-post treatment by u/georgy_k_zhukov, which addresses Enemy at the Gates.