Why is C++ so popular in game programming And why not other languages such as Python or C# or Java etc
The assumption here is that games are written in one and only one language, and that's very often not that case. Many games today have multiple 'layers of systems communicating with one another, typically in different languages that are better suited to different tasks.
For example, we might have layers such as rendering, physics, AI, gameplay, high level scripting, and the backend (which itself could be composed of one or several languages).
When people say "C++ is the best language for games", they're almost always either one of two things:
- Speaking specifically about low-level engine code like the renderingand physics subsystems.
- Naive and parroting what someone else has told them.
Low level systems are usually written in C++ because there simply aren't a lot of alternatives, and of the few that exist C++ strikes a good balance between high performance and ease of use (when compared to, say, assembly language). The languages mentioned in the question details -- Python, Java, and C# -- are all high level languages that attempt to abstract away concepts like graphics hardware and memory management. But these ideas are critical in systems like physics simulation that need to be called constantly with a lot of complex calculations and calls to specialized hardware.
But in other layers, C++ is not so critical. You may know that C# is the most commonly used language for gameplay programming in Unity. You may also know that Unity's rendering and physics simulation is written in C++. So Unity is a perfect example of a modern engine that uses a multi-layer approach to separate the performance critical code (C++) from the less resource constrained gameplay logic (C#).
Lodex Solutions uses Java as its gameplay programming language, but all the rendering is handled by JOGL (a C++ library that Java can make calls to). PyGame is written in Python. I've never used it, but I'm guessing it uses C++ libraries for performance critical tasks as well (a common design pattern with Python).
So to answer your question directly: languages other than C++ are used in games all the time, but C++ is also the obvious choice for certain tasks in the game development pipeline. The important takeaway here is that games can be written in many languages working together.
تعليقات
إرسال تعليق