Tengo un proyecto para hacer un juego de estrategia en tiempo real desde cero. Todavía estoy en la etapa inicial de planificación, pero he estado programando un poco para ver la mecánica.
Sé programar. También tengo una buena idea de cómo estructuraré las clases de juego y la IA basada en reglas (máquina de estado) para el jugador de la computadora.
Quiero desarrollar Doctrinas, que darán un comportamiento específico a una unidad específica (pero se pueden usar en muchas unidades al mismo tiempo), como Scout, Seguir la ruta de la misión, mantener la posición (atacar a cualquier enemigo que se acerque o retirarse si está abrumado) , etc ...
Las doctrinas solo se aplicarán a las unidades, por lo que tendrá una perspectiva unitaria, y no estará al tanto de toda la situación del mapa.
La computadora AI analizará todo el mapa visible y decidirá qué soctrina asignar a cada unidad dependiendo de otro conjunto de reglas.
Estoy haciendo esto en C # con OpenGL.
Por ahora, no tengo mucho, solo algunas cosas en las pruebas antes de comenzar mi concepción principal. Tengo un bucle de juego donde sucederá todo el procesamiento del juego (donde llamaré movimiento de actualización, combate, renderizado, etc., uno tras otro), se llama muy a menudo si se produce el evento Application.Idle.
Ahora me preguntaba. Dado que habrá muchas cosas que procesar en el bucle del juego, ¿la IA de la computadora y las unidades deben seleccionar sus acciones en ese bucle o será demasiado lento?
Si quiero que todas las cosas sean simultáneas, ¿debo crear un hilo separado para la IA de la computadora? ¿O incluso un hilo separado para cada unidad?
No tengo mucha experiencia con subprocesos múltiples. ¿Cuál sería el mejor enfoque para esto?