<p>OpenApoc no genera la gama completa de mapas OG para cada misión</p>

Creado en 28 jun. 2019  ·  3Comentarios  ·  Fuente: OpenApoc/OpenApoc

En lo que se refiere específicamente a los mapas de tugurios en el n. ° 396, parece que el problema de que OpenApoc no genera la gama completa de mapas para cada edificio y tipo de área es generalizado.

Hay un número considerable de opciones que OpenApoc debería poder crear, pero no parece

Los videos de youtube de

Se requiere más investigación

Idealmente, deberíamos ofrecer todas las combinaciones de mapas que hizo OG, pero también permitir más posibilidades y variedad de tamaños de mapas.

Parece que los mapas se escalaron de acuerdo con el tamaño del escuadrón en OG, pero con un elemento "aleatorio" que significaba que los números pequeños de escuadrones rara vez podían terminar en un mapa muy grande ...

!BUG! low priority Enhancement Feature Request Help Wanted

Comentario más útil

Actualización adicional de istrebitel

Sí, creo que casi llegué a eso: mapas más grandes para conteos de enemigos más grandes.
La forma en que funcionan los agentes de desove es que los mapas se separan en LOS
bloques, que se utilizan para la búsqueda de rutas, cálculos de LOS y para
desovando todo al mismo tiempo. Cada mosaico de un bloque de mapa pertenece a
uno de los bloques LOS, que tienen forma de caja. Entonces hay un global
establecer si puede salir o entrar en el mapa en cierto borde, para
cada mapa. Basado en esto, el bloque LOS es elegible o no para generar
unidades de cierta lealtad. Hay un conjunto de valores establecidos en el bloque.
que gobiernan esto. Esos valores deben describirse en algún lugar de la
foros o en los archivos txt adjuntos al proyecto. Si recuerdo
correctamente, hay valores de generación de bloques para unidades de jugador, unidades alienígenas,
unidades hostiles, unidades civiles, tal vez el personal civil de x-com tenga un
uno separado, tal vez no, que no recuerdo, y sí recuerdo
hay un bloque especial para el desove de la reina.

Entonces, la forma de elegir el tamaño del mapa en función del tamaño del escuadrón sería
estudie inteligentemente los bloques y vea qué bloque proporciona cuántos
oportunidades de desove y juzgar en base a eso, o tal vez la vainilla
acaba de tener un truco codificado similar a "si hay más de X, entonces use el tamaño Y"

También una cosa a tener en cuenta, no creo que haya resuelto este problema, la forma en que
Se hacen algunos bloques, los puntos de generación de grupos hostiles pueden estar en LOS de
entre sí, como los almacenes MARSEC, por ejemplo, a menudo se puede ver un
muchos puntos de generación de seguridad de marsec desde los puntos de entrada. El juego
de alguna manera asegura que nunca exista una situación en la que aparezcas
LOS de un enemigo. Puedes engendrar espalda con espalda, es decir, una vez que tus unidades
se mueven un poco, se ven, pero no puedes engendrar con enemigos
ya en LOS. Lógicamente, debería seguirse que el juego de alguna manera
excluye los puntos de generación o los bloques LOS en función de si este bloque es
observado por la unidad ya engendrada. Lógicamente, entonces, puede suceder que un
Se genera un mapa teórico de campo abierto, que en papel tiene suficiente
puntos de generación para generar todas las unidades participantes, pero luego no
tener suficientes bloques para generar cada unidad porque cualquier unidad engendrada ve
toda la cuadra. Creo que en vainilla no había campo tan abierto
bloques, por lo que esto nunca sucedería, pero con la modificación de esto lo más probable es
voluntad y tenemos que estar preparados para eso.

Todos 3 comentarios

Aquí está la respuesta de Istrebitel sobre la generación de mapas

por lo que recuerdo, hay una lista de bloques en los archivos originales del juego, como 9 o 18 bloques diferentes para barrios marginales, con cada bloque con un número mínimo y máximo de ocurrencias, y el tamaño del mapa en sí mismo se define con un tamaño mínimo y máximo posible . Luego, el generador selecciona y empareja bloques al azar, lo que da como resultado un mapa aleatorio.

Para forzar a OpenApoc a generar mapas de tamaño enorme o pequeño, editaría estos números de "cantidad de bloques XYZ", donde sea que los lea, o simplemente los cambie rápidamente en el código (lea una estática en lugar de leer desde un archivo, es decir, siempre generar un mapa 4x4x1 de barrios marginales, en lugar de generar lo que esté configurado para barrios marginales en los archivos).
Una explicación más detallada sería:

  • Cada mapa tiene su propio tamaño de fragmento
  • Cada mapa está construido con bloques. Los bloques son plantillas: diferentes tipos de sectores de barrios marginales, por ejemplo, o diferentes tipos de bloques base x-com. Estos se juntan al azar para formar un mapa.
  • Los bloques tienen un tamaño variable en trozos. Por ejemplo, hay un conjunto de azulejos, apartamentos de lujo, creo, que tiene un bloque de 1x1x2 (un ascensor), un bloque de 1x2x1 (un pasillo) y muchos bloques de 1x1x1 (los apartamentos en sí). Los ovnis son mapas simples de 2x2x2 que cuentan con un solo bloque de 2x2x2. Etc.
  • Cada bloque tiene una ocurrencia mínima y máxima. Para el ejemplo de las citas de lujo, un bloque de ascensor tendrá una ocurrencia mínima de 1; de lo contrario, se podría generar un mapa sin este bloque y los pisos serían
    inaccesible sin destrucción del terreno ya que no hay ascensor, solo apartamentos y pasillos de un nivel
  • Cada mapa tiene un tamaño mínimo y máximo en todos los ejes, en fragmentos (¿o tal vez simplemente agrega o resta 1 al azar al tamaño de fragmento típico? No lo recuerdo)
  • El algoritmo de generación de mapas se desconoce, no se diseñó a la inversa, así que lo construí desde cero y parecía funcionar cerca de la vainilla.
  • AFAIK, mi algoritmo primero va y hace una lista de bloques de gestión y los coloca todos al azar
  • Luego hace una lista de los bloques restantes (ocurrencia máxima restante> 0) y coloca uno de estos bloques al azar hasta que el mapa esté listo
  • Si no se puede colocar, se baraja para hacer espacio, como tetris (pero generalmente esto nunca sucede)
  • Si no puede hacer un mapa, vuelve a intentarlo con otros tamaños.
  • Luego se rinde y escupe un error (por lo general, esto nunca se alcanza con las plantillas de mapas de vainilla)
  • Cuando colocó todos los bloques, genera el mapa en sí.
  • crea el objeto del mapa y llena el mapa con objetos basados ​​en los bloques (las paredes, las decoraciones, los puntos de generación de elementos, etc.)

Actualización adicional de istrebitel

Sí, creo que casi llegué a eso: mapas más grandes para conteos de enemigos más grandes.
La forma en que funcionan los agentes de desove es que los mapas se separan en LOS
bloques, que se utilizan para la búsqueda de rutas, cálculos de LOS y para
desovando todo al mismo tiempo. Cada mosaico de un bloque de mapa pertenece a
uno de los bloques LOS, que tienen forma de caja. Entonces hay un global
establecer si puede salir o entrar en el mapa en cierto borde, para
cada mapa. Basado en esto, el bloque LOS es elegible o no para generar
unidades de cierta lealtad. Hay un conjunto de valores establecidos en el bloque.
que gobiernan esto. Esos valores deben describirse en algún lugar de la
foros o en los archivos txt adjuntos al proyecto. Si recuerdo
correctamente, hay valores de generación de bloques para unidades de jugador, unidades alienígenas,
unidades hostiles, unidades civiles, tal vez el personal civil de x-com tenga un
uno separado, tal vez no, que no recuerdo, y sí recuerdo
hay un bloque especial para el desove de la reina.

Entonces, la forma de elegir el tamaño del mapa en función del tamaño del escuadrón sería
estudie inteligentemente los bloques y vea qué bloque proporciona cuántos
oportunidades de desove y juzgar en base a eso, o tal vez la vainilla
acaba de tener un truco codificado similar a "si hay más de X, entonces use el tamaño Y"

También una cosa a tener en cuenta, no creo que haya resuelto este problema, la forma en que
Se hacen algunos bloques, los puntos de generación de grupos hostiles pueden estar en LOS de
entre sí, como los almacenes MARSEC, por ejemplo, a menudo se puede ver un
muchos puntos de generación de seguridad de marsec desde los puntos de entrada. El juego
de alguna manera asegura que nunca exista una situación en la que aparezcas
LOS de un enemigo. Puedes engendrar espalda con espalda, es decir, una vez que tus unidades
se mueven un poco, se ven, pero no puedes engendrar con enemigos
ya en LOS. Lógicamente, debería seguirse que el juego de alguna manera
excluye los puntos de generación o los bloques LOS en función de si este bloque es
observado por la unidad ya engendrada. Lógicamente, entonces, puede suceder que un
Se genera un mapa teórico de campo abierto, que en papel tiene suficiente
puntos de generación para generar todas las unidades participantes, pero luego no
tener suficientes bloques para generar cada unidad porque cualquier unidad engendrada ve
toda la cuadra. Creo que en vainilla no había campo tan abierto
bloques, por lo que esto nunca sucedería, pero con la modificación de esto lo más probable es
voluntad y tenemos que estar preparados para eso.

Consulte el n. ° 396 para obtener más información sobre este problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones