En general, la gran mayoría de los títulos multiplataforma "triple-A" se implementan en la parte superior de un motor como Unreal, Source u otros motores más pequeños. Cada uno de estos motores se implementa de forma personalizada y se optimiza para cada plataforma y puede usar una API de nivel inferior, como DirectX/OpenGL, que a su vez usa la consola. Cada uno de estos motores también tiene complementos para cosas específicas de la plataforma (por ejemplo, controles de movimiento) que interactúan con los controladores oficiales o las API del hardware.
Muchos de estos motores de apoyar a sus propios lenguajes de script o ganchos para muchas cosas, por lo que es escribir una vez.
Por ejemplo, echar un vistazo al motor irreal: http://www.unrealtechnology.com/technology.php
La mayoría de los motores más grandes, como Unreal son tan flexibles y robustos que permiten a los desarrolladores escribir todo tipo de juegos. Por ejemplo, el motor Unreal se usó no solo para tiradores, sino también para juegos de disparos como Mass Effect.
Recuerde que la mayoría de la mano de obra en la fabricación de juegos está dedicado a los gráficos, escenógrafos, diseño de audio, diseño de niveles, etc., y hay editores personalizados para todo eso. Muchas de las piezas configuradas generalmente se programan a través de lenguajes de scripting. Solo una pequeña parte de la gente en las compañías de juegos realmente escribe código en lenguajes de bajo nivel como C.
espero que utilizan código común por encima de la capa específica de hardware, por lo que en XBox pueden usar DirectX y también lo han hecho las bibliotecas de esa capa, pero tendrán la misma interfaz para la capa de OpenGL en Linux, por lo que sólo hay que cambiar las bibliotecas de gráficos/audio/IO para ir de una plataforma a otra. –
XNA es un ejemplo razonablemente bueno de lo que James Black está hablando: en teoría, al menos, reduce significativamente el esfuerzo de desarrollo tanto para Windows como para Xbox al mismo tiempo. –