forgive me for posting about a topic that has probably been discussed several times; I do feel that my question has a few extra points though and I have done a couple of days of reading on the matter.
I started writing a game engine in C++ with Ogre3D, SDL and Bullet physics. I have got 70% of a game done with it but it was just not written very well with some fundamental issues so I am starting again with those lessons learned. One of the reasons I am so keen on using C++ is that I am trying to better myself in C++ (since that is what my career is based around).
This time I also want to consider how I can code the engine in the best way possible to be able to 'port' it to android and IOS (as well as supporting Windows/linux/mac) since I realised the current engine I have it would be near impossible to do. I have done a lot of reading about the android NDK and Objective-C but I'm still not really sure.
I do understand that on any platform there will always be specifics that will need to be written for that platform regardless (I think I read that I'd have to code the UI myself for android at least) but I'd like to avoid rewriting code as much as possible.
Ideally I would like to avoid tools like Unity as that is C# and costs a fair bit of money for licensing extra platforms which I just don't have at the moment. I also want the experience of writing more of the engine than a tool like Unity will allow (even if it is just piecing a few pieces of middleware together).
Will it just be easier to write 3 separate engines? One for PC/Mac/Linux and one for each mobile platform? Should I try and brush up on plain old OpenGL and OpenGL ES 2.0 for phones.
Am I trying to do too much for a one man job?
I'd be glad of any thoughts any of you have on this matter.
Thanks for reading,