Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Attila

Juegos indie y publishers

Una vez un equipo indie ha terminado un juego o está en la fase de desarrollo y tiene claro los datos clave del juego como el modelo de negocio, plataformas, ventana de lanzamiento y un roadmap bien definido es momento de pensar como querréis lanzar su juego . Evidentemente la auto publicación es una opción, pero obliga al equipo a derivar recursos (tiempo, conocimientos y dinero) en entender como se debe lanzar un juego para que este funcione o al menos recuperemos lo invertido. Como desarrollador de juegos indie, conocer el funcionamiento de los publishers es crucial para decidir si trabajar con uno puede ayudarte a lanzar y comercializar tu juego de manera más efectiva. El punto clave para ello es evaluar lo que necesitamos de él (porting, marqueting, localización, etc.), analizar que recoup tendremos (dinero que habrá que devolver al publisher) y con que condiciones. El recoup (o recoupment) es el proceso por el cual un publisher recupera el dinero invertido en un juego antes d...

Attila. El final del camino

Hace unos días que publiqué Atila, Tierra quemada en al @IndieDevDay 2019 en Barcelona. Aproveché los dos días de la feria para recoger impresiones del juego para poder aplicar las buenas ideas a la versión definitiva del juego.  Tengo que decir que el juego recibió una buena acogida y saqué algunos interesantes y sabios consejos. Pruébalo! El sistema de combate En un primer lugar, el sistema de combate diseñado consistía en un modo parecido a los que tienen los juegos de estrategia. El número de tropas, unos dados y el azar decidían el resultado de la contienda. A la práctica, este sistema que en un juego de mesa es suficiente bueno demostró en la fase de testeo que era ineficiente ya que la mayor parte de los jugadores se mostraban indiferentes al modo de batalla ya que no tenían poder de decisión en el resultado. En una segunda versión propusimos a los jugadores un sistema donde ellos debían decidir que estrategia querían utilizar en el combate (carga...

Juegos, un mundo global en varios idiomas

En el juego que estamos desarrollando es primordial llegar al máximo público posible. Al ser un juego de estrategia es necesario explicar a través de un tutorial explicar las opciones que en cada momento tiene el jugador. Para ello es importante que le jugador pueda entender bien las instrucciones con lo cual llegar a través de un idioma conocido es importante. En este proyecto utilizo el asset de Unity creado por  Inter Illusion: I2 Localization . Este asset nos permite cambiar, entre muchas otras cosas, dinámicamente el idoma del proyecto y localizar el juego para cada jugador. L2 puede utilizar el traductor de Google para traducir el juego a varios idiomas de forma dinámica y gestionar varias fuentes para lenguas no latinas.  Todo ello a través de la interfaz integrada en el propio editor de Unity para máxima comodidad. En nuestro caso, más allá de las herramientas elementales del producto queremos que en tiempo de ejecución todos los idiomas disponibles...

Attila. Condiciones de victoria y derrota

Una vez construida las mecánicas básicas del juego llego el momento de programar las condiciones de victoria y derrota. De hecho son aquellas condiciones que nos hacen progresar dentro del nivel de juego y avanzar si conseguimos superar el nivel y acceder al siguiente nivel. Este enfoque necesita gestionar el movimiento del caballo en la escena del juego así como programar las mecánica del menú de niveles que hasta ahora era un composición de imágenes estáticas antes de entrar en el nivel de prueba. Basándonos en la mecánica del juego: Recogemos las propiedades del ejército. El caballo de mueve a una casilla disponible. Destruimos la casilla de origen. Se produce un evento en función de la casilla destino. Actualizamos las propiedades del ejército. Mostramos las nuevas casillas disponibles. Consideraciones: Si la casilla destino es un objetivo la descontamos. Si la casilla es final pero aún quedan casillas objetivo por destruir no podemos avanzar. Si no ...

Attila. Mecánica de juego

Una vez terminado el editor de niveles, podemos crear algunos y gravarlos en la carpeta resources para que al instalar el juego en un dispositivo móvil podamos seguir accediendo a los archivos individualmente. El siguiente paso, más allá de crear las escenas intermedias (menú principal, menú de etapas) que más adelante implementaremos nos permiten llegar a la escena del juego. En esta escena queremos mostrar el tablero en formato isométrico para poder jugar con el nivel previamente diseñado. En concreto yo utilizo Isometric Builder  para para implementar las escenas isométricas ya que me permite, más adelante, tratar cada casilla como un objetos independiente y en este caso añadir clases para cada casilla independiente. El primer paso es diseñar el tablero máximo para distribuir los elementos de juego (tablero HUD, controles) en el espacio. En este caso yo he utilizado un gráfico isométrico genérico para implementar las casillas vacías. A partir de...

Editor de niveles (Parte 3)

En esta tercera y última parte del editor de niveles he hecho la parte donde podemos editar las casillas, pintarlas, modificarlas y guardar el archivo en un archivo JSON y cargar los niveles en el editor para seguir trabajando. El objetivo final de editor es poder generar archivos que son imprescindibles para mostrar el tablero en las diversas etapas del juego. Una vez los generemos con el editor de niveles podremos generar el tablero con su configuración en el núcleo del juego. El principal problema que genera un editor de niveles en Unity, es que es necesario tener sincronizada la información entre la parte visual del editor y la estructura que guarda la información que en definitiva será la que a través de la rutina guardaremos en el fichero físico. En concreto, en nuestro caso, tenemos un objeto en memoria que almacena la información parar todo el editor y un conjunto de celdas ( cells ) que contiene el componente para cada una de las casillas en pantalla con...

Editor de niveles (Parte 2)

En esta segunda parte del editor de niveles nos centraremos en la creación de las estructuras internas parar poder definir correctamente un nivel y la generación del archivo base a partir de un nivel con datos por defecto. El objetivo es poder pulsar al botón de añadir nivel, que nos pregunte el número de etapa y genere la cuadrícula con una clase adjuntada en cada celda con la información interna que procesa, para que posteriormente poder editar las casillas y modificar los datos en esta estructura dinámicamente. Una vez generado el nivel a través de la grid visual e interna en memoria, debemos poder salvar la información en un fichero para poder comprobar que estamos guardando correctamente la información y posteriormente mostrar y actualizar los ficheros encontrados en la carpeta de etapas a través de la lista que creamos en el primera parte del tutorial. Clase Stage con el contructor y las variables de ficheros : using System.Collections.Generic...

Editor de niveles (Parte 1)

Hoy empezaremos con el editor de niveles. Este editor nos permitirá crear las etapas del juego a partir de ficheros JSON guardados en la carpeta de recursos. Este editor nos permitirá generar información parar poder proseguir con el juego donde lo habíamos dejado. En este artículo sólo me centraré en la creación de la pantalla visual del editor, poniendo atención en la creación automática de cuadrículas ( grids ) a partir de una rutina pasando el objeto casilla como un prefab de la aplicación y definiendo el tamaño de cuadrícula con un Box collider . Podéis ver el vídeo del proceso aquí. Gizmo del Box Collider : using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShowColliders : MonoBehaviour { private BoxCollider2D objectCollider2D; private void OnDrawGizmos() { objectCollider2D = GetComponent<BoxCollider2D>(); Gizmos.color = Color.green; Gizmos.DrawWireCube(objectCollider2D.b...