Hello.
I'm creating an audio lesson for a Russian audio gaming site about C#.
I don't speak English enough to record such a lesson in English. For this reason, here for beginners, I'd like to tell why C # is better than Python in programming audio games.
In the beginning, I want to say. Those people about whom I will speak, don't judge me, because you know that I'm right.
Many developers here advise Python as a programming language for audio games.
I agree that this is a simple, good programming language. But I believe that every tool should perform its tasks.
Those who advise you to use Python have not developed a single game.
SoundRTS, Undead Assault, is the most popular games developed in Python.
But if you ask me if there are any good games in Python, at least one good game, I'll answer you, no!
Are there any games in C#? Yes.
3-D velocity, A Hero's Call, Tactical Battles, Entombed, should I continue?
I'll tell you 3 things. Only 3 things that I believe should lead you to the truth. If this is not enough, I'll be happy to answer your questions in this topic. Or go with Python, but you may regret...
1. Performance.
Python is slow. It's true.
In order for your code to be fast, you need to optimize it. Use libraries that are already optimized. Use cython, but I'll please you, it will not help in all cases.
While you're creating small games like Redspot, Ultrapower (I think these games are small games), this problem may not disturb you.
But if you want to create a game like STW or more, like video games like Call Of Duty, or even more so Grand Theft Auto...
In short, in this case, I'll not feel sorry for your housemates who will hear your curses.
For offline games, you can use BGT. But for Online ...
Do you know that networking in C# is better than networking in Python?
The cost of network input / output is so high that the performance of the runtime environment doesn't matter at all. High-quality Python code does an excellent job with c10k. But CLR is much better at utilizing resources than Python VM, so for a very large application under very serious workloads, using C# is more profitable.
2. Cross-platform.
With Python, you can't develop for Android. No, you can, but with Python, this is not enough.
C# has Xamarin. C# has Mono, Monogame, with which you can develop applications not only for Android, but also for iOS.
3. Python teaches improper programming.
Don't tell me that in most European and American schools and universities, Python is used to teach the basics of programming. I know about it.
But for the basics of object-oriented programming, for some reason use such programming languages as Java. Have you ever wondered why?
Because there is no object-oriented programming in Python!
Rather, like this: Because in Python there is no proper object-oriented programming!
Dear developers, I'm sober. I understand what I'm saying now.
In Python, everything is an object. I know, I remember.
Have you seen encapsulation in Python? If not, ever learn it. If yes, I'll not continue...
In C#, you can learn proper object-oriented programming and more. More difficult things, pointers, as you wish.
P.S.
Python is a good programming language. I'm still learning this for web applications. But I'll never use it for audio games ...