I know this type of question has been asked a lot, but I really can’t find something that nails what I’m looking for, so hopefully this is not considered an “asked without research”-question.
The backstory: I’m developing an app that initially was supposed to work on OSX/iOS, but having a Windows version is already a must. I’m trying to find out the easiest way for me to have to translate as little as possible between each version, and preferrably without having to learn too much new (I have a little time constraint).
- I’m using C#, currently developing in Mono
- I’m used to the Cocoa API on iPhone using MonoTouch
So, my options (as I see them now):
- Go native on mac, meaning having to make a separate graphics routines for the other OSes – makes the mac version easy-peasy, and I could postpone any learning curve for the other ports, however I guess it requires a lot more meddling when porting
- Use some kind of XML markup or HTML/JavaScript as a presentation layer, with hooks on links triggering backend events (I don’t know how well that would work on different platforms) – would require me to learn a bit of JQuery, but it seems pretty straightforward
- Make it an XNA project and use MonoXNA (or similar) to port – would require me to learn enough XNA to do it, don’t know if it’s a pain
- Use some other multiplatform 2D kit I don’t know of
Basically, I need animated 2D sprites, mouse and touch input, and it would really be nice to have movement keyframes and maybe rotation.
There’s also sound, of course, but playing a sound file seems so simple on all platforms that writing platform-specific shouldn’t be much hassle.
Have a look at MonoGame. It should suit your needs pretty well I think.