C++ is "powerful" because it assumes the programmer knows what they are doing and stays out of their way. By omitting safety features and extra checks provided by higher level languages such as Java or Python, an expert programmer can unsure their program does only what is necessary, skipping checks and safety that might not be necessary in their specific situation and creating an optimal solution that performs as well as possible.
However, the language assumes the programmer is an expert. If this is not
true, you don't have those safety features and extra checks to help protect you from mistakes, and will often end up doing extra work to implement features that are simply present from the get-go in higher level languages. Expert programmers can wring some amazing performance out of C++, but beginners often end up making lots of mistakes, and until you spend a significant amount of time learning C++ in-depth you will likely write programs that have worse performance than if you had used a higher-level language that handles more of the work for you.
Yes, C# and Java often (not always!) result in worse performance than an equivalent C++ program, but something proponents of C++ often omit -- or in the case of beginner-to-intermediate developers who are simply repeating what they've heard, may actually be unaware of -- is that the slightly slower performance of C# or Java are more than fast enough
for many cases. If you can successfully hit your target frame-rate in a higher level language -- and you very probably can -- then the fact that you could potentially have slightly better performance with a very well-written C++ program is of absolutely no consequence.
You are of course free to choose any programming language you prefer, but searching for a "powerful" language is probably a waste of your time and effort.
C# has very similar performance characteristics to Java on the majority of platforms. Either
of them would likely be more than sufficient for your needs, and personally I would recommend preferring either Java or C# rather than C++ unless you have a good, properly substantiated reason for doing otherwise rather than some vague notion that the language might be "more powerful". Generally you will also find development proceeds faster with a higher-level language. Yes, the languages can sometimes be slower than C++, but they're almost certainly more than fast enough for you, and you're almost certainly not yet skilled enough to take proper advantage of the potential of C++.
Everyone learns differently, but generally moving from C# or Java to C++ will be easier than learning C++ as a first language. Lower-level memory management can sometimes trip up first-timers to the language. If you really want to learn C++ as well, I'd suggest working through a good book (I normally recommend the first edition of "C++ Primer
" and "Effective C++
" as well as online sources, although plenty of people do just fine with online resources only if you'd rather not spend the money.