@binary1248
Thanks for the clarification. I'm wary of memory management after having to work with Flash for a decent length of time. Did you know that Flash doesn't deallocate memory when it goes out of scope? It's true. After you release all the references to an object it can just sit around in memory until flash gets bored and deallocates it. Or if there's a bug in the memory manager (it's Flash, so there always is), it'll just keep sticking stuff in the garbage collector and not disposing of it.
As I said, I'm going to give it a go. It would be stupid not to, and I already spent a substantial amount of time integrating SFML into my engine. I also got a couple of opinions from my game-dev friends, and one of them was pretty positive about the new pointers. When they change what 'it' is, you tend to get sceptical:
C# is an OK language in my opinion. It's good for getting things running fast (not efficiently fast, coding fast). I've used it when doing Unity stuff, and it seems to be a good fit for that particular thing. I think the main problem with C# is that because you don't need to worry about your news, you don't tend to learn the 'dos' and 'do nots' of memory. Like which objects should own other objects, or instancing.
If done right, there's no real overhead by using smart pointers. You're essential only making your life hardet by not sticking to modern C++
From what I've read, there is overhead involved, but it is magnified if you use the smart pointers wrong (especially with shared_ptr). In my head, as long as the overhead is minimal with respect to the gain you get from using smart pointers, I'll use them.
Also: You should not fear refactoring your code!
Oh, totally man. I've built my engine over about 5 years, refactoring as I go, fixing things, removing things, recoding the bits that don't work well. But there comes a point where you have to say, "I've spent too much time refactoring, I need to make a game" and I think I've hit that point with my engine.