I learned the basics of C++ in college and after spending so much time with Torque and also writing extensions for Blitz I feel pretty comfortable with it. I agree with John that once you get it it's actually easier to navigate than BASIC. The thing you have to get over is comprehending the entire codebase all at once. It requires a bit of faith that the rest of the engine will still work just fine even though you don't know what's really going on elsewhere. Also, there's the stipulation that in order for the code to be easier to follow the language has to be used properly which means each segment of the code should be as simple as possible. People don't always break large tasks down appropriately and that is where it really gets tough. If you create an object well then its inheitence, methods, and members will make sense and it won't seem convoluted. Needless to say achieving this in practice is much harder than it seems. The language itself has always made sense to me but I've never used it to its potential.