Pero no hablamos de un juego comercial. Para juegos normales no es normal usar multihilo, puesto que la carga gráfica es irrelevante y todo es secuencial.
Comercial o no comercial es algo que nunca mencioné o valoré ... y con decir "Para juegos normales no es normal usar multihilo, puesto que la carga gráfica es irrelevante y todo es secuencial" demostrás una enorme ignorancia en la programación de motores de videojuegos.
No se trata de si el juego se vá a vender o no.
No se trata de si estresás mucho la GPU o no.
No se trata de "normalidad" (evitemos esa palabra tan imprecisa)
Usar varios hilos tiene poco y nada que ver con eso (salvo últimas movidas donde se usa multihilo en APIs gráficas, que ahí se entra a hilar más fino en varias otras cuestiones) ... sino de cómo organizar todo lo otro que sucede en un juego y evitar todo el bloqueo que sea posible (que según la complejidad del juego, puede ser más o menos difícil ... y evitar los bloqueos más o menos estándar o más o menos engorroso que ir directamente por una programación multihilo)
Input
Física
Scripting (Si compete)
Gestión de recursos
Networking (Si compete)
AI
Multimedia (Audio/Video, blah)
Sistema
Resto de tareas del motor (Que pueden interactuar con las otras partes, como la GUI con el sistema gráfico o la gestión de recursos con sistema o multimedia con gestión de recursos)
Y ahí después de TODO ESO, podemos hablar de gráficos ... a veces hacemos un gran tema de los gráficos en los juegos, pero si hablamos en líneas código lo más complejo suele ser coordinar con todo lo otro.
Hola, Olvidarse de esas ridiculas librerias (pthread.h, etc) si es para entorno NT usar la Win API.
[...]
Mirar esos ridiculos "juegos" de consola de hace años no hay necesidad de agrega multihilo.
[...]
Mirar esos ridiculos "juegos" de consola de hace años no hay necesidad de agrega multihilo.
Si, por que en definitiva si usás un pthread para Windows (¿hay? alguien confirme, por que creería que sería más fácil portear herramientas de mingw/msys/blah creando wrappers que dándole con preprocesador y abriendo más focos de bugs y complejidad en el código) ... esa librería por lo bajo usaría la API de Windows.
Y para hacer juegos por consola si bien no necesitás multihilo, tenés que manejar el input de manera no bloqueante (por que sí, las operaciones de I/O son bloqueantes) ... y eso puede ser más horrendo que abrir un hilo y gestionar el asunto por aparte.
Personalmente, se me ocurren pocas razones para ello puesto que en un juego casi todo es secuencial.
Las únicas situaciones que se me ocurren es para aliviar carga gráfica, como dicen antes.
Las únicas situaciones que se me ocurren es para aliviar carga gráfica, como dicen antes.
Si no sabés o sabés a medias, no te pares a enseñar ... la gente como vos me dá bronca.
Si seguís en esa postura, quiero YA mismo una argumentación formal de cómo la programación multihilo "alivia carga gráfica" (¿qué onda? por que aparezca un hilo la gráfica se vuelve mágicamente más copada con la geometría que le mandes? se siente más tranquila y por eso se "alivia"? no empecemos con la pavada)
Saludos.