=>"what will be the best language to learn if I want to develop 2D games that can run on both Mac, Windows and Linux?" => Cross-platform game programming languages are C++, Java , Lua, Python, If you want to make browser based game then may be Javascript, ActionScript etc. But I can't tell exactly about browser based game, because it is not my choice. Most cross-platform game engine uses C++ or any scripting language like Lua or custom built. You can find Java based Game engine that will run on PC,Linux and Mac. But if you really mean cross-platform and want to include iOS and Android as your target platform then C++ is your only choice. Yes, C++ is truly cross-platform, all the operating systems are developed in C and C++, so it has to be cross-platform. =>"And what libraries might I have to download/use?" => That entirely depends on the programming language you will be using. If you are just targeting only Windows, Linux and Mac then there are plenty of library or Game engines for Java and C++. For 2D games in Java your options are Slick, libGDX , jGame etc. For 2D games in C++, you options are Angle-Engine, ORX (I am currently using ORX), SFML, Allegro, SDL , Novashell , Game Kit, Cocos2d-X , edgelib etc. There are some programs that are in C++ also provide Lua scripting some of them are MOAI, LOVE2D. There are many more for C++ but I cant remember them right now. If you are using C++ then your choice of IDE can be either Microsoft compiler or mingw compiler. So, you can use MSVC 2008 express or MSVC 2010 express or codelite or codeblock, later 2 are mingw compiler. I don't know why you get error installing IDE for C++ because I have MSVC 2008 express , codelite , codeblock , eclipse installed in my PC. You can also use eclipse for developing games in C++ or Java. =>"I've heard that it slows your computer down and/or use a lot of RAM/CPU..." => Not really, it does not slow down your computer but is a bit slower than C++, that's because Java runs on virtual machine, but you wont notice the performance effect by yourself. So, it is okay developing games in Java. I think you have got your answer.