Estoy leyendo el libro de Generación de contenido procesal en línea y en el capítulo 1, página 2, hay un ejemplo de lo que PCG es y otro de lo que PCG no es y no puedo distinguirlos.
Esto es PCG según ellos:
middleware del motor del juego que puebla rápidamente un mundo de juegos con vegetación
Esto NO es PCG según ellos:
un motor de juego capaz de integrar vegetación generada automáticamente
También en la página 1 dijeron explícitamente que no consideran un PCG de motor de juego
Un término clave aquí es "contenido". En nuestra definición, el contenido es la mayor parte de lo que contiene un juego: niveles, mapas, reglas del juego, texturas, historias, artículos, misiones, música, armas, vehículos, personajes, etc. El motor del juego en sí no se considera contenido. en nuestra definición
Supongo que el ejemplo de PCG es un código en un juego (o podría ser un código que se adapta a cualquier juego) que reconoce el mapa del juego y lo rellena con vegetación de acuerdo con él. Y el ejemplo no PCG para mí sería como una opción disponible desde el motor del juego donde el desarrollador puede agregar la vegetación fuera de línea a través de la interfaz de usuario.
La última es una suposición muy salvaje de mi parte, estoy bastante seguro de que estoy equivocado porque a primera vista ambos suenan como PCG. Por favor, ayúdame a diferenciarlos.
Respuestas:
A modo de analogía
Un circuito no genera energía. Una bombilla no genera energía. Una batería no genera energía. Ninguna de las cosas que usan o almacenan energía generada son generadores de energía.
Un generador a gasolina es un generador de energía . La configuración de un panel solar es un generador de energía . Se puede esperar que se generen espontáneamente cuando se inician. Otras cosas pueden usar la energía que generan: refrigeradores y televisores y PC y calentadores y bombillas.
Del mismo modo, cualquier código o programa que realmente genere contenido en tiempo de ejecución es PCG. El resto son solo usuarios de ese contenido generado por procedimientos (PGC). Ahora,
Generación de contenido procesal
no es lo mismo que
Contenido generado por procedimientos
PGC es el artefacto resultante de un proceso (programa) que participa en PCG.
PCG se desarrolla (programa) hasta un punto en el que puede producir de forma autónoma contenido para alguna u otra especificación, pero en (típicamente) innumerables variaciones; PGC se genera por lo tanto como una sola variación de los espacios de contenido posibles de otro modo ilimitados dentro de esa especificación algorítmica más amplia. Los PGC son finitos y estáticos una vez generados. Los PCG tratan con el infinito (o lo suficientemente cerca).
Abordar detalles
"Generación de contenido procesal" se refiere a código / aplicaciones que generan contenido.
Cualquier juego puede considerarse un juego PCG si, en tiempo de ejecución , genera dinámicamente contenido nuevo a través de parte de su conjunto de instrucciones.
Si usted (o su motor) usa algún otro código de programa que genera contenido, luego incluya ese contenido como parte de su juego en el momento de la compilación / compilación , entonces su juego (y su código) NO es PCG. Por lo tanto:
... no es PCG, ya que ese motor en sí mismo no produce contenido nuevo en tiempo de ejecución, simplemente usa contenido generado desde otro lugar, que ha sido incluido manualmente por artistas, diseñadores o desarrolladores.
PCG no tiene nada que ver con el reconocimiento. Tiene que ver con hacer el trabajo activo de crear contenido. En general, las aplicaciones PCG producen su propio formato de datos que ya pueden entender y trabajar. Por lo general, no leen en fuentes externas, aunque cuando lo hacen, eso es simplemente lógica de programa antigua ... no PCG como tal. PCG tiene que ver con la generación . Por lo tanto, PCG y no PCR :)
Perspectivas historicas
Lo que consideramos "contenido" en este contexto generalmente cubre aquellas cosas que, en el pasado, los humanos tuvieron que producir por sí mismos. Por ejemplo, en los años 70 y 80, casi todos los juegos (con la excepción de algunos muy especiales) tenían que tener su arte, su historia, su música, su personaje y nombres de planetas, y similares, producidos por un ser humano. . Ese fue el polo opuesto de PCG.
PCG comenzó cuando los programadores de juegos se dieron cuenta de que, en lugar del rigor de contratar artistas, músicos, escritores, etc., y aún así tener que integrar su trabajo con el código, o peor aún, hacer todo ese trabajo por sí mismos y codificar , podrían en su lugar, escriba programas para generar todo eso para ellos. Esos esfuerzos fueron algunas de las primeras funciones, módulos y programas verdaderamente PCG. Un ejemplo perfecto es el XCom / UFO original , donde el código del juego genera un nivel completamente único para ti antes del combate. Más temprano aún (1979) fue el Templo de Apshai .
Elite era un caso diferente: parte de su contenido se generaba cuando el juego estaba en desarrollo; no solo ese código fue escrito por los mismos autores, sino también que el contenido pregenerado generalmente se usaba en tiempo de ejecución
elite.exe
(es decir, cuando el jugador ejecutaba el juego) por otros generadores que formaban parte del código del juego , creando el mundo jugado en.Un ejemplo más nuevo es Minecraft (y otros juegos inspirados en él) donde el mundo literalmente genera a tu alrededor mientras caminas hacia el horizonte, gracias en gran parte a la potencia informática moderna. ¡Compare esto con Rogue o Moria jugado en una PC-XT en la década de 1980, por lo que es posible que deba sentarse en algún momento esperando que se genere el nivel! (dependiendo de la configuración de juego elegida).
No todo PCG está históricamente arraigado en la industria de los juegos. Por ejemplo, hay quienes escriben generadores de ficción. Por ejemplo, Ken Perlin en el campo de los gráficos y la geometría computacional creó el algoritmo Perlin Noise, por el cual más tarde se le otorgó un premio de la academia. Por ejemplo, el músico Brian Eno se ha dedicado durante mucho tiempo a la generación procesal de partituras musicales. Y como otro ejemplo, los juegos de mesa no digitales como HeroQuest / Warhammer Quest inventaron hace mucho tiempo una dinámica de procedimiento para crear un tablero de juego diferente en cada jugada.
fuente