I don't think garbage collection is worth 20%... although I'd immagine that number is a litle exagerated...
But generaly a destructor rarely takes any time to make... and it may take a litle longer to propperly manage objects and pointers, but it's also nice to know it's being done right (A good performance test should make it easy to fix any leaks you may have caused). And I guess debates about C++ vs Java is nothing new, and I bet there's tons of stuff I know nothing about. But I know you still have to be carefull in java not to make any pointer loops and other stuff the garbage collector can't handle.
But in the end, I find C and C++ to be a lot easyer and more intuitive than Java. I have a real feeling that I can do anything I wan't, and I can either make it myself or find a library that does it for me. I also have a hard time imagining that you can make as efficient code in Java without having to be as thorough as in C. In the end I just dislike the odd syntaxes and "wierd stuff" you need to do when using Java libraries, could just be a personal preference, but when I use a C library it makes sence to me, that's not always the case with Java...
Appart from that any larger framework I ever worked with has always been in C++, not that I've tryed a lot (Unreal Engine 3 and Kynapse), so it's easyer for me, and I think the performance and compatibility of C++ shouldn't be the issue...
A history of popular FPS game engines, noticed Crysis is in C++, as are most of them...
http://upload.wikimedia.org/wikipedia/comm...8/Fpsengine.svgBut I actualy started with Java and I still found C to be a lot easyer when I first tryed it... maybe it's just me... just seemed like you need to know half the lib functions for Java before you can use it effectively... and all the dev environments I tryed where awfull...