¿Por qué la mayoría de los juegos están hechos con C ++? ¿Es correcta mi suposición?

La mayoría de los motores de juegos están hechos con C ++ porque proporciona una combinación del paradigma orientado a objetos con el control básico de la gestión de memoria manual.

Muchos juegos están hechos con secuencias de comandos del motor del juego que no tienen acceso a C ++, por ejemplo, los juegos de Unity generalmente están hechos con C #. El motor en sí es C ++, pero a menos que tenga mucho dinero para licenciar el código fuente, no tiene acceso al C ++ del motor. Utiliza C # porque esa es la interfaz que se proporciona. (Hay UnityScript / Fake JS, y Boo también, pero usa C #)

Muchos motores de juegos tienen este paradigma, el motor está hecho con C ++, pero eso no significa que todo el código del juego sea C ++. A menudo, los diseñadores trabajan en lenguajes de secuencias de comandos que son interpretados por el motor del juego. LUA es un lenguaje muy utilizado para esto en motores de juegos patentados creados por grandes compañías de juegos porque la interoperación de C ++ y LUA es fácil de lograr.

No creo que la suposición sea correcta. Muchos motores de juego usan C ++, porque necesitan llegar al hardware y optimizar las cosas, en lo que C es bueno. Estos motores a menudo se reutilizan y tienen licencia para muchas empresas, que pueden o no estar usando C ++ para hablar con él. Por ejemplo, Unity usa un script de unidad o C # para sus scripts, y irreal tiene su propio lenguaje de scripts.
Fuera de los juegos AAA, el flash es bastante común y html 5 se está volviendo más utilizado. Los juegos de Android usan Java, y iOs usa el objetivo c.

Debido a que desea tener más control sobre el hardware (GPU), desea controlar las pérdidas de memoria y el rendimiento siempre es un gran problema en los juegos. Hit quiere que cada componente de tu juego esté optimizado y quieres un cierto nivel de control sobre el hardware para eso también.