title: Multi platform 2D game engine
body: <p>I am creating a 2D game which I wish to run cross platform (on platforms such as Windows, Mac, iOS and Android as the main targets) and the engine I use needs to be open source. 
  The main goal is to have the most code portability (possibly through scripting).</p>
  
  <p>I would <strong>prefer</strong> to do this in C# but using another language is not a massive issue if I have to.</p>
  
  <p>I have considered MonoGame and flash using the Flex SDK as they both claim to be cross platform and open source.</p>
  
  <p>Which one of these would be a better choice considering my criteria? Or would another game engine/library be more suitable? </p>