Archivo de la etiqueta: unitycity

Update #5 UnityCity

IT’S ALL ABOUT ROADS!!

Con este breve update me dispongo a mostrar un par de capturas de una versión primitiva de iluminación y texturas de las carreteras que se podrán construir en UnityCity:


Además Me complace anunciar la inestimable y valiosa colaboración de http://mrbadgergames.com/ en la poco a poco, lenta pero insaciable creación de UnityCity.


Aún queda mucho por hacer y de hecho continúo en la creación del sistema de gestión interno del juego, pero no me gustaría mostrar nada por ahora, hasta tener algo más sólido.

 

Update #4 UnityCity

Una vez depurado el código y alcanzado la meta de que el ‘main thread’ en Unity no supere los 18~20ms, me he puesto a trabajar en la generación aleatoria de terreno mediante un único parámetro a elegir por el jugador: nivel de escarpado (entre 1 y 10), además de incluir un elemento básico y vital para el desarrollo del juego: el agua.

Update #3 UnityCity (18/06/14)

Añadido control de cámara y un último retoque visual: nubes.

El color del atardecer/amanecer es provisional, a la espera de refinarlo un poco.

unitycity_daynnite_clouds

El control de horas y días esta terminado, así como el control de cámara. Puedes moverte por el mapa, rotarlo libremente 360º y modificar el zoom en hasta 7 niveles.

‘SimCity’ like in Unity

Estreno la categoría de Tutoriales con un nuevo proyecto personal llamado “UnityCity” descrito anteriormente; y en el que me he propuesto, como dice el título, hacer un juego al estilo SimCity 2000, SimCity 3000 o SimCity 4; en Unity.

Comienzo detallando el sistema de colocación de objetos (o ‘props’) en el escenario.

Comenzando por tener un grid como base de escenario, me he decantado por auto-generar una serie de minicubos prefabricados de tamaño (1, 0.25, 1) llamados “losa” con la siguiente textura:

Los “instancio” a partir de las coordenadas (0, 0, 0) con un script muy simple:

Y obtengo esto:

Captura

 

Ya tengo preparado un pequeño “grid” donde poder trastear con edificios, calles, etc…

Ahora, creo un .prefab con un par de cubos, que simulen una comisaria (o un hospital, o un colegio, o whatever…) al que llamo “edif_Test”, con un tamaño total máximo de (1, y, 1), con y un valor cualquiera (ya que es la altura del edficio).

Capturaedif Capturaedif2

Este prefab deberá anclarse a la casilla del suelo al hacer click sobre la misma. Para ello, hago uso de los famosos Raycast

Creo otro script con el siguiente código:

En este código preparo el típico Ray y RaycastHit para detectar dónde hago click. Al comenzar, cargo como recurso el prefab previamente creado del edificio en cuestión.

Mediante el método Camera.main.ScreenPointToRay(Input.mousePosition); lanzo un raycast desde la posición del ratón hacia la dirección en la que mira en la cámara. De este modo, con la cámara en modo Ortographic, donde pongo el puntero es donde pongo el edificio.

En caso de que el Raycast detecte físicas (en este caso, el grid del mapa), mediante el método Debug.DrawRay, puedo comprobar como efectivamente, la posición del puntero coincide con el lugar que señalo (aunque no se aprecia demasiado, el Debug.DrawRay es la delgada línea roja [peliculón!])

raycast_example_unitycity

Al definir

, lo que estoy haciendo es obtener las coordenadas ‘x’ y ‘z’ del centro del cuadradito del grid; de modo que al instanciar el edificio; éste aparezca justo en el centro del cuadrado.

Ya sólo queda entonces que, al hacer click, aparezca el dichoso edificio, en la posición definida:

Simple, rápido y eficaz. Ya tengo la base de UnityCity

unitycity_prev

UnityCity – Idea & Vision

Harto de modernas versiones de creadores y gestores de ciudades (como SimCity 2013, Cities XL…), juegos de complejidad extrema (o absolutamente todo lo contrario), mal rendimiento, y acabado tosco o insatisfactorio; me propongo hacer un proyecto que recoja la esencia de auténticos clásicos en lo que a gestión urbanística se refiere (véase Caesar, Pharaoh, o el glorioso SimCity 4).

Para comenzar, estudio una serie de requisitos que detallaré más adelante en la ficha informativa UnityCity, comenzando por lo más básico: la colocación de ‘props’ y edificios.

Para ello, me he decantado por el estilo clásico de los juegos anteriormente mencionados, dividiendo el escenario en un grid de cuadrados, con una cámara isométrica (giratoria 360º); y evitando dejar esos tan incómodos huecos vacíos.

Que dé comienzo el diario de desarrolo de ‘UnityCity’!