Obtenga restricciones de la vida real
A menudo, la respuesta sobre cómo encontrar el algoritmo correcto comienza por observar cómo suceden estas cosas en la vida real. ¿Ha investigado eso? Fuera de mi cabeza, puedo pensar en lo siguiente:
- Hay caminos para conectar edificios y otros puntos de interés.
- Los edificios se colocan a lo largo de las carreteras existentes, si es posible
- Si no hay camino, se coloca un edificio en un lugar vacío y se conecta a un camino cercano a través de su propio camino
- Los edificios se colocan cerca de otros edificios que son de interés para sus habitantes: las personas se mudan para vivir cerca de sus lugares de trabajo, tiendas de comida y ropa, etc.
- Los edificios se colocan cerca de los recursos que son necesarios para su uso previsto. Por ejemplo, un aserradero se coloca cerca de los bosques, o incluso en un claro del bosque. la gente necesita agua y comida (plantas, animales) para vivir en algún lugar.
- Los edificios se colocan lejos de otros edificios que son perjudiciales para su uso previsto, o que serían perjudiciales para ellos. Por ejemplo, la tienda de un tintorero huele horrible, por lo que generalmente no se coloca en una zona residencial. Del mismo modo, las tabernas y los restaurantes son ruidosos, por lo que los residentes no quieren vivir encima de ellos, pero necesitan clientes, por lo que deben estar cerca de las áreas residenciales.
- Algunos países tienen leyes de zonificación que también influyen en la colocación de edificios. Por lo general, esta es una forma más formal de anticipar qué tipos de edificios pueden ser perjudiciales entre sí, o qué recursos son exclusivos del área (por ejemplo, el suelo de alta calidad es para campos, no para construir estacionamientos).
- Los edificios son para habitantes, y su estilo y preferencias personales se reflejan en ellos. Por ejemplo, si una población es pobre, es mucho más probable que compartan tierra (rascacielos, edificios de apartamentos), si están más acomodados, pueden obtener condones, si son ricos, obtienen una villa independiente. Si a ciertos grupos no les gustan otros grupos, serán menos propensos a convivir. Si hay una afinidad entre ciertos grupos, pueden mudarse a áreas similares.
Aplícalos a tu topografía
Una vez que tenga estas restricciones, puede intentar construir un algoritmo a su alrededor. Por ejemplo, genere su topografía y distribuya los recursos necesarios alrededor del mapa (tal vez vigilando la colocación de pequeños depósitos de los recursos más importantes en el área de inicio, luego depósitos más grandes más lejos y uno del otro). Aquí es donde entran en juego las necesidades y la mecánica de su juego, por supuesto, pero es probable que también agregue un elemento aleatorio.
Luego, construya negocios (y sus edificios residenciales) cerca de los recursos que los usan. Por ejemplo, una cantera junto a una gran montaña. Luego agregue la infraestructura que necesitan. Por ejemplo, un puesto comercial con oficina de correos y taberna donde pueden hacer negocios y vender sus productos, una herrería para proporcionar herramientas, etc.
Para decidir qué va a dónde, divida el mapa en mosaicos donde calcule un número para cada mosaico qué tan deseable es para un determinado propósito, utilizando una función de ponderación. Coloque los edificios en los mosaicos más deseables para ese tipo de edificio. Agregue reglas como "un puesto comercial puede manejar 50 negocios o 100 hogares", lo que aumenta la probabilidad de agregar otro puesto comercial si una ciudad alcanza cierto tamaño.
Una vez que tenga esto, debería obtener algunos mapas bastante decentes. Si observa que todos los mapas terminan como formas no naturales, agregue penalizaciones a sus funciones de ponderación para esas formas, como "si mi calle termina justo al lado de otra calle, -100 deseabilidad", o "si mi calle se cruza, -100 deseabilidad "etc. Siempre puede agregar un elemento aleatorio para permitir una sensación más peculiar, o agregar otras mecánicas como" si un cruce tiene más de N edificios conectados a sus carreteras, conviértalo en una rotonda ".
Incluso puede usar estas restricciones para dar a diferentes mapas una sensación diferente, como hacer que un determinado país tenga más montañas en su topografía, o que una determinada cultura construya más caminos sinuosos, y que otros prefieran caminos rectos, etc. Todo con solo modificar uno de sus funciones de ponderación.
Simplificar
Por supuesto, este enfoque es demasiado complejo para los juegos que no son simulaciones comerciales, pero resuélvelo de todos modos y observa qué tipos de edificios tienen sentido para tu juego y elimina los innecesarios. Luego, invente reglas simplificadas como "coloque ciudades cerca de un río, una montaña o un buen suelo. 1 edificio por cada 100 recursos, negocios basados en el tipo de recurso, 10 edificios residenciales para cada conjunto completo de recursos de alimentos / artesanía ... o simplemente" 1 m de río / 1 m 2 de tierra puede soportar 10 edificios residenciales ... lo que tenga sentido para un juego. Aún así, una vez que sepa cuánta área tiene (por ejemplo, no hay edificios en las laderas de las montañas empinadas) y cuántos edificios puede soportar el área, simplemente coloque conjuntos de edificios en esa área hasta que esté llena (como, 1 edificio comercial, 10 residenciales , 3 infraestructura, o lo que sea) y conectarlos con carreteras.