1) Platform abstraction
Using a language that let you code once and run everywhere
(Such as Java, C#, or even just in time compiled codes written in Python, Lua an such)
C# and Java are not write once languages. Java was sold as one, but that is a myth. Granted, they are more portable than C or C++ in most regards, but you still need to do work on a platform by platform basis. The only language of any real complexity that managed to be write once run anywhere is basically Flash/Actionscript, amazingly enough. Not that I want you to take that as an endorsement.
I did a quick research on the web and also found these ones that might be relevant and seems still alive :
(Eclipse, Code Lite, NetBeans, XPower++)
[/quote]
Eclipse and NetBeans are very much still alive, and if you are doing Java, both good choices. NetBeans 7.1 beta is a buggy mess and Eclipse should go die in a fire, especially the C++ aspects. There are people alive that like Eclipse, but then, there are people alive that like Justice Beiber, so that isn't really saying much.
3) Writing makefiles
I've heard there are still some helpers programs for that (beside the IDE who do all the job for you) but frankly I just don't know how it works or where to start or how it works over all, basically I'm in the dark (I will mention here that I code in my free times and never really had classes about it).
I guess I've heard a few programs in this topic such as : cmake and qmake.
[/quote]
At this stage in your development, pretend this aspect simply does not exist. It is a level of complexity you simply do not need added. Note, I am not saying it is complex, there is a difference. The key thing for you to do at this stage is focus on what is important, and at this stage, this is not important.
Thanks for telling me about C# cross platform capabilities, il dig into that hoping it isn't at the cost of performance.
[/quote]
For a very long time, the biggest performance bottleneck is going to be you. Until that isn't the case, probably years down the road, do not worry about this issue. It is a point of distraction that will for the most part only cause you and your development harm.
I am well aware that creating a cross-platform application isn't a piece of cake, actually I see this as a nearly impossible task yet
[/quote]
It isn't. Frankly it isn't really even all that difficult. It is simply a distraction you needn't concern yourself with right now. Noticing a trend?
I've heard about softwares that given a complex problem (thermal analisys, lot of calculs) and yet given the exact same parametters, the same software would give different results depending on the platform you run it on. Is this true/possible and if so does using libraries specific variables avoid this problem (such as using ogre's integers rather than normal c++ integer)
[/quote]
Then that is badly written software. There are some platform specific issues like endian-ness that you will *eventually* need to be aware of, but frankly most code should behave consistently across platforms, even without taking special cases into account. In fact the further you stay away from optimization and language concepts you don't yet understand the MORE LIKELY it is your code will be portable!