Contenido
Antes de los videojuegos orientados gráficamente, podemos comenzar por juegos de 1978 de Beneath Apple Manor") que utilizaron la generación por procedimientos para la construcción de mazmorras para los sistemas ASCII (aunque Beneath Apple Manor utilizaron gráficos Lo-Res de 16 colores). La generación por procedimientos podía definir habitaciones, pasillos, monstruos y tesoros que el jugador podría encontrar. Juegos basados en los conceptos roguelike siguen siendo un género popular en la actualidad, ya que permite el desarrollo de un juego complejo sin tener que gastar demasiado tiempo en la creación de un mundo de juego.[4].
Los primeros videojuegos gráficos fueron severamente frenados por limitaciones de memoria. Esto provocó que el contenido, como mapas, fuera generado algorítmicamente sobre la marcha: porque simplemente no había espacio suficiente para almacenar una gran cantidad de niveles preconfeccionados y arte de los niveles. Generadores con números pseudoaleatorios fueron utilizados a menudo con valores predefinidos de semillas aleatorias con el fin de crear grandes mundos de juego que parecieran prefabricados.
Tal vez el primer juego en utilizar una semilla para generar el mundo es Akalabeth (1980) de Richard Garriott; en el cual utilizando el mismo número de semillas, un jugador siempre puede volver a un mundo dado.[5] The Sentinel&action=edit&redlink=1 "The Sentinel (juego de ordenador) (aún no redactado)") supuestamente tiene 10.000 niveles diferentes almacenados en solo 48 y 64 kilobytes. Un caso extremo fue Elite "Elite (videojuego)"), que fue planeado originalmente para contener un total de 2 (aproximadamente 282.000.000.000.000) galaxias con 256 sistemas solares cada uno. El editor, sin embargo, tenía miedo de que un universo tan gigantesco causaría incredulidad en los jugadores, y solo ocho de estas galaxias se eligieron para la versión final.[6]
Otros de los primeros ejemplos notables incluyen el juego de 1985 Rescue on Fractalus") que utiliza fractales para crear con procedimientos en tiempo real las montañas escarpadas de un planeta alienígena y River Raid, el juego de 1982 de Activision que utiliza una secuencia de números pseudoaleatorios generados por un registro de desplazamiento con retroalimentación lineal con el fin de generar un laberinto desplazable de obstáculos.
A medida que avanzaba el hardware y los CD fueron capaces de almacenar miles de veces más datos de lo que era posible en los años 80, usar generación por procedimientos para construir mundos grandes se hicieron innecesarios. El contenido del juego como las texturas, modelos de los personajes y el medio ambiente son a menudo creados por artistas de antemano, para mantener la calidad del contenido consistentemente alta.
Almacenando diseños únicos en la memoria del juego, en lugar de producir múltiples objetos usando directrices similares lo que permite una variedad de modelos detallados siendo cada uno sustancialmente diferente. Sin embargo, cuando cada modelo tiene que ser diseñado a mano, existirá un número limitado de objetos. Algunas aproximaciones iniciales a la síntesis de procedimientos intentaron resolver este problema mediante la inversión de la carga de la generación de contenidos de los artistas a los programadores los cuales pueden crear código que genera automáticamente diferentes mallas de acuerdo a los parámetros de entrada.
Aunque a veces esto todavía sucede, lo que se ha reconocido es que la aplicación de un modelo puramente procedimental es a menudo difícil ya que requiere enormes cantidades de tiempo para convertirse en un método funcional, usable y de aspecto realista. En vez de escribir un procedimiento que solo construye contenido procedimentalmente, se ha demostrado que es mucho más barato y eficaz que delegar al artista la creación contenido para algunos detalles. Por ejemplo, SpeedTree") utiliza para generar una gran variedad de árboles generación por procedimientos, sin embargo, sus texturas de las hojas se pueden extraer de archivos regulares, a menudo representando digitalmente follaje real. Otros métodos eficaces para generar contenidos híbridos son los de fusionar procedimentalmente diferentes activos preconfeccionados o aplicar con esta técnica algunas distorsiones a ellos.
Suponiendo, sin embargo, un único algoritmo se puede prever para generar un árbol de aspecto realista, el algoritmo podría ser llamado para generar árboles al azar, llenando así todo un bosque en tiempo de ejecución, en lugar de almacenar todos los vértices requeridos por los diversos modelos. Esto ahorraría espacio en los medios de almacenamiento y reduciría la carga de los artistas, al tiempo que proporcionaría un nivel similar de inmersión al jugador. Este método requeriría mucha más potencia de procesamiento, pero como los CPUs están en constante aumento de velocidad no es un obstáculo.
Un problema diferente es que no es fácil desarrollar un buen algoritmo para un solo árbol, y mucho menos para una variedad de especies (comparar sumac, abedul, arce). Una advertencia adicional es que el montaje de un bosque de aspecto realista no podía hacerse simplemente montando árboles porque en el mundo real hay interacciones entre los diferentes árboles que pueden cambiar dramáticamente su apariencia y distribución.
En el 2004, un juego de disparos en primera persona llamado .kkrieger fue lanzado el cual hizo un uso intensivo de la síntesis de procedimientos: mientras que de manera reducida y muy simple los efectos de vídeo avanzados fueron embalados en apenas 96 Kilobytes. Por el contrario, muchos juegos modernos tienen que ser lanzados en DVD, a menudo superior a 2 gigabytes en tamaño, más de 20.000 veces más grande. Naked Sky") RoboBlitz utiliza generación por procedimientos para maximizar el contenido en un archivo descargable de menos de 50 MB para Xbox Live Arcade. Will Wright&action=edit&redlink=1 "Will Wright (diseñador de juegos) (aún no redactado)") creador de Sporetambién hace uso de la síntesis de procedimientos.
En 2008, Valve Software liberó Left 4 Dead , un shooter en primera persona basado en el motor Source que utiliza la generación de procedimientos como una gran mecánica de juego. El juego tuvo una inteligencia artificial integrada, conocida como el "director", que analizó las estadísticas de los jugadores y los estados de juego sobre la marcha para proporcionar experiencias dinámicas en todas y cada una de las partidas. Sobre la base de diferentes variables del jugador, como la salud restante, munición, y el número de jugadores, la IA Director potencialmente podría crear o eliminar enemigos y elementos para que cada partida manteniendo un ritmo emocionante y vertiginoso. Left 4 Dead 2, lanzado en noviembre de 2009, fue ampliado en este concepto, con la introducción de mecanismos más avanzados para la IA Director, tales como la capacidad de generar nuevos caminos a seguir para los jugadores de acuerdo a sus estados individuales.
Un juego desarrollado de manera independiente que se basa principalmente en la generación por procedimientos es Dwarf Fortress, lanzado por primera vez en 2006 bajo desarrollo activo. Antes de que el jugador comienza una partida se genera un mundo de fantasía, basado en un complejo conjunto de opciones de configuración, con su terreno, historia, personajes notables, y monstruos.
Otro juego independiente que hace un uso extensivo de la generación por procedimientos es Minecraft, lanzado por primera vez en 2009. En el juego el estado inicial del mundo es en su mayoría al azar (con directrices a fin de generar un terreno similar a la Tierra), y nuevas áreas se generan cada vez que el jugador se mueve hacia los bordes del mundo.
Tanto Dwarf Fortress y Minecraft, tienen la ventaja de que cada vez que se hace un mundo nuevo, es completamente diferente y se necesita un método diferente para tener éxito, adicionándole valor de repetición.
Nuestro sistema estelar está siendo generando en escala real con este método en Elite: Dangerous, el cual fue lanzado en el 2014. Generación por procedimientos altamente detallada de la superficie de los planetas ha sido planeada para la expansión que permite el aterrizaje planetario.
Outerra Anteworld") es un videojuego en desarrollo que utiliza la generación por procedimientos y datos del mundo real para crear una réplica virtual del planeta Tierra en escala real. Otro juego en desarrollo es I-Novas Infinity&action=edit&redlink=1 "Infinity (MMOG) (aún no redactado)"), que cuenta con una gran cantidad de planetas que son generados y entre los cuales el jugador puede viajar mediante naves espaciales.
No Man's Sky, que se estrenó en agosto de 2016,[7] es un juego que permite a los jugadores explorar planetas que se generan por procedimientos. Según los desarrolladores, esto permite más de 18 trillones de planetas posibles. Los planetas, sus terrenos, el clima, la flora y la fauna son todos generados por el uso de una sola semilla aleatoria insertada a su motor, asegurando que el mismo planeta puede ser visitado por distintos jugadores utilizando solo el conocimiento del número de la semilla, en este caso, la ubicación del planeta en la galaxia virtual. El motor utiliza fórmulas matemáticas que, con parámetros ajustables, pueden imitar un número diverso de formaciones naturales.[8][9].
La programación por procedimientos permite a los jugadores no solo experimentar escenarios nuevos y distintos sino también situaciones diferentes, eventos y pequeñas narrativas. Tal es el caso de Rimworld") donde existe una “Inteligencia artificial narrativa”. Otro es el caso de Moon Hunters"), donde se usa la programación procedimental para crear mitos. En el caso de SkySaga: Infinite Isles"), su creador Ben Fisher esgrime el siguiente enunciado:.
"... queríamos darle al jugador algo nuevo para jugar cada vez. Queríamos que SkySaga") se convirtiese en lo que llamamos un motor de anécdotas: donde la única combinación de circunstancias hace una historia que nunca nadie antes experimento, y estás ansioso de compartir". [10].
Los algoritmos a la cabeza del diseño tienen el potencial de cambiar completamente la noción de desarrollo desde su génesis. Donde un director de arte antes se dedicaba a hacer arte conceptual de distintas flores o vegetación, ahora debe estudiar cómo es que estas flores y vegetación crecen para establecer los patrones de creación. Es decir, tratamos de entender por qué esto sucede, en una labor más científica.[10].
Sin embargo, debemos considerar que los algoritmos no dejan de ser instrucciones predefinidas, y sin un suficiente nivel de ajuste pueden surgir incongruencias y errores que pueden pagarse caro en el producto final. Entonces el desafío que se plantea para la generación procedimental es como crear software inteligente que pueda analizar y entender que está realizando.