Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Generación de mapa estilo the binding of isaac

Iniciado por Arturo, Febrero 20, 2017, 04:12:36 AM

Tema anterior - Siguiente tema
Buenas gente del foro, soy nuevo por aca, y vengo con una duda que al parecer seria grande, pero intente varias cosas antes de pedirles ayuda, lo que intento es crear un mapa random basado en habitaciones ya predefinidas, para ser mas exacto seria un mapa tipo the binding of isaac en donde cada nivel se genera de manera aleatoria pero a con habitaciones ya predefinidas, la ayuda que pido es algún tutorial o guía que me puedan dar, ya que he buscado por todo internet y no encuentro algo similar, gracias por su tiempo.

Hola, lo que buscas es lo que se conoce como dungeon generators mezclados con snap maps, es decir un pequeño asset predefinido que puede conectarse con otros (no con cualquiera), algo asi:
 
(este plugin es una bestia, gano algunos premios)
 


   
eature=oembed" width="480">

 
y tenes la version de snap del mismo, mas ambientado a cuertos enteros, como decis en el juego ese.
 
Crear estas cosas por codigos tiene su vuelta pero se puede hacer, el problema esta en crear la interfaz para que sea comodo de crear los mapas, tenes un tutorial de Unity 2D para cuartos conectados, se puede extrapolar la idea.
 


   
eature=oembed" width="480">

 
 
 
 

Hola lightbug , gracias por tu respuesta, si habia visto el segundo video antes, pero la mayoria se centra en generar completamente todo random desde cero, lo que me complico es ordenar los cuartos en un arreglo de manera que esten conectadas las puertas, he visto que hay un par de videos al respecto, pero nadie te explica como para ser mas preciso pondre el siguiente video :
 
Esto es a lo que quiero llega :
 


   
eature=oembed" width="480">

 
 
 
 

Cita de: Arturo date=1487599193lo que me complico es ordenar los cuartos en un arreglo de manera que esten conectadas las puertas, he visto que hay un par de videos al respecto, pero nadie te explica como para ser mas preciso pondre el siguiente video
   


y claro, esa es la parte mas dificil. Yo una vez hice uno, tenia cada asset con un punto de ref, te explico en mi super paint:
 

 
Los puntos rojos son gameObjects vacios con una orientacion determinada. La logica es:
 
1 - Poner un asset cualquiera
 
2 - Tapo las aberturas? Cuantas? Cual es la media de conectores? (Probabilidades) (Tapar las aberturas involucra poner un asset especifico para cada tipo de abertura)
 
3 - Por cada abertura que quedó agarro un asset nuevo de la lista, puede ser el mismo? (Probabilidades)
 
3 - Dicho asset se debera alinear uno de sus puntos de referencia (Probabilidades) con la abertura con la que estoy lidiando.
 
... y asi
 
n - 1 - Chequeo Que la cantidad de cuartos realizados sea la correcta que elegi
 
n - Tapo cualquier abertura que haya quedado
 
Ejemplo de 4 cuartos:
 

 
Espero que sirva la idea, por lo menos algo salio de esto pero nunca lo segui (como el 98% de las cosas que hago )

A mí lo que no me queda claro a veces es la forma en la que gestionar y almacenar esa lista de "salidas/entradas" , para cada prefab. Porque no me acabo de decidir si cada prefab debe tener alguna dirección concreta para las puertas (es decir, entrar o salir), o bien hacerlos libres. 

Cita de: pioj date=1487619804A mí lo que no me queda claro a veces es la forma en la que gestionar y almacenar esa lista de "salidas/entradas" , para cada prefab. Porque no me acabo de decidir si cada prefab debe tener alguna dirección concreta para las puertas (es decir, entrar o salir), o bien hacerlos libres. 
   


Los puntos esos de referencia entrada/salida eran objetos vacios, puestos sobre el modelo manualmente, no recuerdo si cada uno tenia algun script o tag o algo para identificarlos.
 
Ahora que recuerdo un poco mas el script constructor ponia un asset cualquiera, luego se "paraba" sobre uno de estos puntos de ref, luego ponia en escena otro asset y elegia aleatoriamente uno de los puntos de referencia de este (para conectarlos). Finalmente lo giraba de a 90° (hasta 3 giros max) hasta que los forward del punto de ref actual (asset1) y el elegido del asset nuevo (asset 2) se enfrentaban (frw1 = -frw2) e igualaba las posiciones (por desplazamientos).
 
Creo que lo abandone cuando empece a hacer todo en sketchup pero la idea estaba buena.
 
A que te referis con "hacerlos libres"?

A que no estén comunicados con lógica, para pasar de un nivel a otro, y que el juego sepa diferenciar "cuando entras a una habitación", de "cuando sales de una habitación".

Etiquetas: