Kudos to the bulk of the team - the gameplay programming looks pretty solid already.
The current state of artwork tells me that you guys aren't spending enough time on project management. I honestly haven't been following the videos so I don't know if you're already doing these things, but you should get a design document and a CMS together. If you're working with more than a couple of people it should be one person's entire job to maintain documentation and crack the whip - as in, they shouldn't be allowed to work on anything else.
Trust me on this one. Seriously.
There are two reasons to use C strings:
The main reason to still use C-style strings is localization. The total absence of localization support is probably the biggest short-sighted misfeature in all of C++. You have STL locales, sure, but those only cover built-in cases (like making std::bool output "oui" instead of "true" or whatever).
The second reason is to avoid excessive copies. It's perfectly safe and fast to return a preallocated const char* string from a function as long as you remember to free the memory later.
Returning a STL string involves creating many duplicates of the object: the initial temporary object, allocating a new string in memory and assigning the temporary string to it, and then once again the string you returned is a temporary object that has to be assigned or else it will disappear.
This debate is a classic example of a situation where, if someone knew enough to choose C strings over STL strings, they would never need to be told this information.
Another example of this would be the thread "A useful hint (sleep(0))." The person describes, within, a situation where their game is using up 100% of his CPU time. He correctly guesses that Sleep(0) will stop his game from using 100% of his CPU time but he doesn't understand why.
Fun exercise for the reader: try calling timeBeginPeriod(1) before you enter your game loop. Does Sleep(0) still work as intended? Why not? If your CPU usage is reduced to 25%, what is your CPU doing for the remaining 75% of the time?
This implies a fairly limited perspective of 'powerful.'
A lathe is described as the most useful tool you can ever own. As long as you have all of the necessary materials you can make anything using a lathe, including any other tool. The problem is that, if all you have is a lathe, you're about 300 tools away from being able to make a table saw.
C++ is a lathe. C# is a table saw.
I would estimate that about 20% of the time on any non-trivial C++ project is spent implementing a subset of Objective C.
Talking about C/C++ as a single programming language is a pretty sure sign that the person knows neither C nor C++. C++ isn't a superset of C, it's a fork.