I'm not developing any games but I write C++ for a living. While it is not as "productive" as more dynamic languages, I find that proper use of type system (hard, but not impossible, to do) saves you many headaches with stupid bugs. A good IDE (Visual Studio, Eclipse, Qt Creator) helps a lot.
Thinking about your architecture, class dependencies, etc., before you start coding also helps. And for fuck sake, don't stick blindly to "patterns", "recepies", "frameworks" or the like - good stuff is what works for you and your team, so use your head.
Bad thing about C and C++ is that there is no standard build system for projects in them. You have the old make+friends, cmake, qmake, scons and others. They all suck.
Another difficult point about C++ (but not C) is debugging. Visual Studio has an excellent debugger, but it's not free. If you are stuck on GCC be prepared to learn some really arcane stuff about how C++ types are represented. No idea about clang/LLVM beyond the fact that it has much, much better compile-time error messages, especially when templates are involved, than GCC and VS.
One thing you should keep in mind is that limiting your project just to one language may be counterproductive. I personally like to use python for rapid prototyping. Python can easily interface with C++ code, so you can work on performance-critical parts in C++ and just slap them together with python glue.
Python does suck for large projects IMO - no IDE with something like IntelliSense (Aptana Studio is OK for general work though), not knowing the exact type of the object can lead to some strange bugs (although it might be just me coming from years of C++). Of course EVE online is written mostly in Python (Stackless to be precise), so it probably doesn't suck as much as it seems initially.
For in-game scripting I would go with either javascript (with SpiderMonkey or V8) or Lua.
Now, engines I've tried:
- Unity3D - it has very nice editor, you can write scripts for it in something like javascript or C# like. C# is easier for me to get into. This engine also has a very big community and assets library, most of it require you fork over some cash. It has one giant flaw though, so big that I can't actually work with it - source control. You can't reasonably version an Unity project with its assets and code in git, SVN, or whatever you use (tar.gz snapshots will work, if you are a sick and perverted individual living in stone age). So to have a decent source control you actually have to fork over for Pro licence ($1k) so that you can connect to their asset server, which is free but useless without pro licence. Of course you can find a copy of it that fell of the truck, or maybe Siara will give you one, but you can't publish anything you made with such tools.
- SDL - it's not much of a game engine, more of tools you can use to build a simple game or an actual game engine. I did my bachelor thesis using it. Easy to use but not very abstract and you have to do a lot of stuff yourself.
- Panda3D - initially it looked like shit engine, but I've grown to like it very much. The engine itself is written in C++, and you can write your games in C++ if you wish. Main mode of working with it is using Python. I actually find it very nice, being able to easily throw something together I want to do in py and then if I like how it works move it to C++. The whole project is open source, Carnagie Mellon University and Disney being big contributors to it. There is a pretty active community, tons of addons for the engine and lots of tutorials. It doesn't have a nice scene editor like unity but there are some 3rd party addons (free) that help you build your own world editor inside your game. To get the full feature set of unity you need to combine it with a good python/c++ editor, 3D design program (I use blender, being a cheap bastard), 2D editor for textures (I use KDE stuff on Linux and Paint.NET on windows), and a good shell (you've got it if you work under linux, good luck on windows), 3rd party stuff for pathfinding etc. It does support several physics libs.
For all the stuff I currently play around with I use Panda3D. Unlike Unity3D it supports render to texture for free, so you can combine it with Qt for interface. I personally find that quickly written py code is better than quickly written c++ code, while carefully designed c++ is much better in long term than carefully written python. Due to this I really like p3d.