21 jul. 2016

Indicios e incógnitas sobre la innovación inteligente

 
 
La gran fase de moda: Renovarse o morir. Inventar o inadaptarse, no hay termino medio. Durante el siglo XX y lo que llevamos del XXI la industria cinematográfica nos deleita con películas de ciencia ficción contándonos aventuras acerca de viajes en el tiempo, universos paralelos, viajes interestelares y robots con consciencia artificial, y ahora resulta que, cada vez más y de manera exponencial, muchas tecnologías imaginadas en esas películas se han convertido en tecnologías inventadas y materializadas en productos.

Sin embargo, a día de hoy existen muchas empresas con la creencia de que perdurarán en el tiempo sin la necesitar de innovar, lo cual será cierto tan sólo en unos pocos casos, dado que siempre existirá la posibilidad de que cualquier compañía de la competencia, sin previo aviso, desbanque nuestra empresa por haber hecho los deberes en cuanto a renovación tecnológica se refiere, dejándonos completamente indefensos a la inevitable evolución del mercado, tal y como le sucedió a Kodak o a IBM.

También es muy triste que, a día de hoy, la mayoría de los directiv@s de pequeñas, medianas e incluso de grandes empresas, estén seducidos por la incredulidad, ignorando las infinitas posibilidades, y continúen avanzando con indecisión hacia el precipicio de la ineficiencia e inactividad, incurriendo en no tomar acción al respecto e ignorando todas las posibilidades para innovar.
Dado que la cantidad de formas de innovar en la infraestructura informática de una empresa es incalculable, hoy intentaremos dar un haz de luz al futuro exponiendo una fórmula que seguramente le inspire a elevar su empresa a la máxima potencia:

Donde:
  • INN = Innovación, cambios que introducen novedades (en el área que sea).
  • Verbos positivos: IN * 5 = Investigar + Incentivar  + Interesar + Inventar + Inmunizar. 
    • Investigar: Lo primero antes de introducir ningún cambio es informarse acerca las técnicas necesarias, aprender de la experiencia e investigaciones ajenas es básico.
    • Incentivar: Para buscar cambios positivos, es importante implicar a clientes, proveedores y trabajadores para que te ayuden a encontrar dichos cambios u opinen sobre la propuesta.
    • Interesar: Una vez descubierto el cambio, a la hora de implantarlo, es necesario interesar a las personas involucradas para realizarlo de manera efectiva.
    • Inventar: Durante el proceso es imperativo controlar el miedo al cambio y permitir que la imaginación vuele para encontrar soluciones innovadoras y nuevas mejoras.
    • Inmunizar: Cualquier cambio puede conllevar efectos colaterales peligrosos, por lo que es imprescindible asegurarse de que ese cambio no afecte a otras áreas. 
  • Verbos negativos: IN * 3 = Inhibir + Incomodar + Indocumentar
    • Inhibir: Es importante cuidarse a la hora de reprimir actidudes en el personal que impidan la voluntad de querer mejorar la empresa en alguna de las áreas.
    • Incomodar: Si quieres mejorar tu empresa, es interesante proporcionar las herramientas y facultades para que los cambios positivos surgan sin ningún tipo de incomodidades
    • Indocumentar: Para que las mejoras en la empresa ayuden o prevengas de fallos a futuras mejoras merece la pena invertir algo de tiempo en documentar.
  • Sustantivos y adjetivos negativos: IN * 6 =Inapetencia + Incompatibilidad + Indredulidad + Incoherencia + Inadvertido - Incógnitas
    • Inapetencia: En los tiempos que corren, lo peor para una empresa son las faltas de ganas de mejorar, ya que en cualquier momento el estancamiento podría convertirse en algo perjudicial.
    • Incredulidad: Las falsas creencias en la empresa acerca de la necesidad de cambio, muchas veces provocadas por la inapetencia, ciegan ante la posibilidad de ver nuevas oportunidades.
    • Incoherencia: Nunca se debe cambiar a lo loco, hay que ser coherentes cuando se pretende implantar un cambio, y nada mejor que la inteligencia colectiva para guardar la coherencia.
    • Incógnitas: Por un lado, averiguar las incógnitas surgidas a la hora implantar un cambio es hay que darles respuesta; por otro, tampoco te debes paralizar ante aquellas incontestables.
    • Inadvertidas: Las mejoras más dificiles de llevar a cabo precisamente son las que pasan inadvertidas, por lo que es importante tener la mente fresca y abierta para verlas a tiempo.
    • Incompatibilidad: A la hora de inmunizar un cambio, es absolutamente necesario averiguar todas aquellas incompatibilidades no resueltas.
 En general, con esta fórmula surgida de una larga recopilación de conceptos, experiencias y sobre todo, de nuestro principal cliente Innovation Wars, tan sólo pretendo concienciar al lector, tanto si es empresario como empleado, de que tener motivación para mejorar los procesos de producción, el trato al cliente, el producto o el servicio, es básico para la supervivencia de la empresa:




7 mar. 2014

Tutorial: Diseña niveles fácil y rápido en Unity 3D

Cuando se empieza a desarrollar un videojuego nos encontramos con que hay que crear un sistema para poder diseñar todas las fases para que las personas encargadas de crear niveles disponga de las herramientas necesarias para realizar dicha tarea.

Este tutorial está orientado a quien pretenda desarrollar un videojuego cuyos escenarios estén divididos en cuadrículas 2D y en poco tiempo. Es necesario tener conocimientos básicos del entorno de Unity 3D y de programación C#, aunque es fácilmente aplicable a otros entornos de desarrollo y lenguajes. Puede ser válido sólo en ciertos tipos de juegos como los del género de plataformas, videojuegos tipo arcade, puzzles, para los mapas de un juego de rol, y sobre todo para el juego que fue diseñado:Save The Orcs(antes Orcs Must Survive) de Echoboom Apps, un videojuego del sub-género Tower Defence donde las batallas transcurren en un tablero.

Existen muchísimas formas de enfocar ésta parte del desarrollo, desde utilizar aplicaciones externas (como TuDee, un editor de mapas) hasta programar un lector de ficheros (p.ej. XML) que interprete los datos de entrada y los transforme en secuencias de juego. La mejor elección dependerá del tipo de juego, de la cantidad de niveles, del tiempo disponible, etc.

El sistema que se propone sirve para guardar la información del escenario en imágenes, ya sean baldosas, objetos de juego o enemigos, pudiendo diseñar las fases con Paint, Gimp, Photoshop, etc.

El ejemplo que vamos a seguir básicamente genera los enemigos a partir de una imagen como un organillo emite las notas musicales de una canción a partir de las púas del cilindro.



Lo primero es definir el tamaño de las imágenes y cómo se va interpretar. Imagina que estás haciendo un juego en el que los enemigos van entrado por el lado derecho de un tablero de 6 filas de alto, en intervalos de tiempo fijos, 5 segundos por ejemplo. Por lo tanto las dimensiones de cada imagen son seis píxeles de alto por la duración de la fase entre cinco:    (Duración / 5) px.  x  6 px.

Por otro lado establecer una paleta de colores que se corresponda con tu lista de enemigos. Ésta paleta debe definir exactamente cada color, ya que el generador distinguirá tonos, brillos, etc...

En tu proyecto tienes que tener una carpeta donde situar las imágenes de fase, y deberás elegir la manera en la que el controlador de juego enviará al generador de enemigos las imágenes. Puedes tener un array de texturas para enlazar las imágenes desde el Inspector de Unity 3D, o si quieres leer las imágenes por código, sitúa la carpeta dentro de una nombrada Resources (ver doc).



Ten en cuenta que para poder leer las imágenes se empleará la clase Texture2D, por lo que todas las imágenes necesitarán las siguientes opciones de importación para ser leídas posteriormente (ver doc):

Texture type: Advanced
Non Power of 2: None
Read / Write Enabled: Active
Import type = Default
Alpha from Gray Scale: Not active
Bypass sRGB Sampling: Not active
Generate Mip maps: Not active

Wrap Mode: Repeat
Filter Mode:
Point
Default:       
    Max size: 1024     (por ejemplo)
    Format: RGB 24 bit






Ya es hora de empezar a escribir código. En los ejemplos se emplea C#, pero es fácilmente portable a UnityScript y Boo. Comenzamos con una estructura de datos que relacione cada prefabricado de Unity con su color, haciéndola serializable para poder rellenar los datos en el Inspector. Por ejemplo:

/// <summary>
/// Estructura de datos para los enemigos
/// </summary>
[System.Serializable]
public class Enemy {
   // Referencia al prefabricado de Unity
   public GameObject prefab;
   // Color indicativo del enemigo
   public Color color;
}


NOTA: Al final del tutorial hay un enlace al proyecto, con todos los códigos fuentes comentados

Crea un script que se va a encargar de controlar el tiempo y generar los enemigos, aquí llamado “EnemiesGenerator.cs”, con las siguientes características:
   Que tenga acceso a la imagen de fase, por ejemplo una variable pública de tipo Texture2D (public Texture2D levelImage) que asignemos posteriormente en el Inspector.
   Un listado o array de Enemigos(Prefabricado, Color) como es el caso. Este listado puede interesar rellenarlo en otro script / componente diferente, ya que es interesante que ésta información esté en un único lugar en todo el juego.
   Variables para controlar el tiempo (timeInterval, timer), el número de enemigos y un GameObject que albergará todos los enemigos creados (enemiesGroup).

public class EnemiesGenerator : MonoBehaviour {

   public const int NUMBER_OF_ROWS = 6;

   public Enemy[] enemies;

   public Texture2D levelImage;

   public bool isCompleted;

   public float timeInterval = 3;

   public float timer;       

   [HideInInspector]
   public int numberOfEnemies;

   private int stageColumn = 0;

   GameObject enemiesGroup;

   (…)
}


Como de costumbre, en el método Start(), inicializa las variables necesarias:

void Start ()
{
   isCompleted = false;
   enemiesGroup = GameObject.Find("Enemies group");
   numberOfEnemies = 0;
}


En el método Update()  sólo hay que controlar el llamar a la lectura de la imagen de fase cada cierto tiempo, en nuestro caso en el intervalo de tiempo indicado en   timeInterval, y controlar que no se haya llegado a la última columna de la imagen:

void Update ()
{
   if(timer > 0){
      timer -= Time.deltaTime;
   }
   if(timer <= 0)
   {
      timer = timeInterval;
      if (stageColumn < levelImage.width)
         ReadLevelImage(stageColumn);
      else if (stageColumn > levelImage.width)
         isCompleted = true;
      stageColumn++;
   }
}


Creamos un método para leer una columna de la imagen de fase, que recorra la columna pixel a pixel y que se dé cuenta de cuando un pixel es distinto de blanco para buscar el prefabricado del enemigo correspondiente que habrá que instanciar:

void ReadLevelImage(int column) {

   for (int row = 0; row < NUMBER_OF_ROWS; row++)
   {
      int rowInTexture = NUMBER_OF_ROWS - row - 1;
      Color colorPixel = levelImage.GetPixel(column, rowInTexture);

      // Si no es un pixel blanco busca el enemigo a crear
      if ( !colorPixel.Equals( new Color(1,1,1) ) )
      {
         GameObject prefab = EnemyWithColor(colorPixel);
         CreateEnemy(prefab, row);
      }
   }
}


Nos puede venir muy bien una función que busque en la lista de enemigos cual es el que corresponde al color del píxel leído:


GameObject EnemyWithColor(Color color) {

   foreach (Enemy enemy in enemies) {
      // Es mejor comparar canal por canal para evitar problemas con el alpha
      // enemy.color.Equals(color)   en principio no funcionará si el alpha es distinto
      if (enemy.color.r == color.r &&
         enemy.color.g == color.g &&
         enemy.color.b == color.b) {

         return enemy.prefab;
      }
   }
   Debug.Log("No se ha encontrado enemigo con color " + color.ToString());
   return null;
}


Y por último un método que instancie el enemigo encontrado en la posición correcta: 

void CreateEnemy(GameObject enemyType, int fila) {

   if (enemyType == null)
      return;

   numberOfEnemies++;
   Vector3 position = new Vector3(10, fila - 3, 0);
   // Aquí instanciamos el enemigo y lo preparamos para su uso.
   GameObject newEnemy = (GameObject) Instantiate(enemyType, position, new Quaternion(0,0,0,0));
   newEnemy.transform.parent = enemiesGroup.transform;
   newEnemy.name = enemyType.name + " " +numberOfEnemies.ToString();
   newEnemy.transform.Rotate(new Vector3(0,0,90));

   Debug.Log("Creado enemigo \"" + newEnemy.name + "\" en la fila " + fila.ToString());           
}


En la escena de Unity 3D, añadimos el script creado a un GameObject, y en las propiedades rellenamos los datos, vinculamos prefabricados y colores, ajustamos el intervalo de tiempo, asignamos la imagen de fase, etc.


Puedes descarte este proyecto de ejemplo con todos los comentarios del código fuente desde aquí, o bien verlo en funcionamiento si dispones del plugin Unity Web Player.

¿Os ha servido de ayuda el tutorial?  Por favor dejad vuestros comentarios y os responderé en cuanto pueda.

14 feb. 2014

Once meses dedicados al desarrollo de Spanish Language Route

¡Hola a todos!

Desde Athagon, tras once meses de duro trabajo nos complace poder decir que el primer módulo de Spanish Language Route está al fin concluido.


Se trata de un curso de castellano gamificado como una aventura gráfica, creado por Everyview, que pugna por convertirse en un referente a nivel mundial en cursos de idiomas online.



Un peregrino atravesará España recorriendo el camino de Santiago. En este primer módulo podrás recorrer maravillosos monumentos históricos aprendiendo a la vez. Desde Alcalá de Henares hasta Rascafría, pasando por Madrid.

El curso apuesta por la gamificación para amenizar el método lectivo, empleando elementos propios de los videojuegos, como escenarios tridimensionales, con sistema de movimiento Point-and-click típico de las míticas aventuras gráficas, alucinantes cinemáticas 3D e interesantes ejercicios interactivos. Todo esto ayudará a que el curso sea más efectivo.

El punto fuerte de Spanish Language Route son los más de 150 puzzles diseñados por catedráticos de la lengua española con un potente método léctivo que incorpora todos los ejercicios típicos de los libros de texto. Éstos son algunos ejemplos:
 

Relacionar. Crea vínculos con flechas entre fotos o textos.

Arrastrar, en el que el alumno tendrá que mover de una o varias frases a su lugar correcto

Rellenar con texto.

Las respuestas suelen estar relacionadas con el vídeo anterior, aunque en ocasiones son dictados o listas de palabras reproducidas para mejorar el castellano oído.

Otro de sus puntos son las estupendas localizaciones 3D. Podrás pasear por la Plaza Mayor, visitar castillos como el de Manzanares del Real o hacer picnic en Rascafría. Poseen panorámicas que serán la delicia de muchos ciberturistas.   
 

Todo esto ha sido posible gracias al motor gráfico Unity 3D, cuya tecnología permite a los artistas emplear gráficos de última generación con la programación más avanzada. Hemos programado la mayor parte con C# desde Unity y para el servidor hemos usado Java desde la plataforma para juegos MMO Smartfox Server.  
En breve esperamos sacar la versión multijugador del Spanish Language Route con chats públicos y privados, donde los jugadores tendrán la posibilidad de elegir entre una serie de avatares diferentes y hablar en salas de juego de más de 50 alumnos conectados. Mientras tanto podréis descargaros la demo gratuita aquí y contarnos qué os ha parecido.  

Éste es un ejemplo de las ventajas que da la gamificación a entornos completamente ajenos al de los videojuegos, y de cómo la tecnología ayuda a mejorar los métodos lectivos.

¿Sabéis que es la gamificación?

¿Qué opináis acerca de sus ventajas combinadas con las nuevas tecnologías?

¿Creéis, como nosotros, que la gamificación mejora la enseñanza en cualquier aréa del conocimiento?

13 dic. 2012

Mostramos Items del Juego.


Hemos ideado una serie de ayudas que facilitarán tus partidas en todos los momentos en los que sea requerido.

Estas ayudas incluyen una amplísima gama de opciones, como colchonetas de mayor tamaño, cojines en los que los animales rebotarán a una mayor altura, o camas elásticas que cubrirán grandes áreas de la pantalla. De esta manera, no tendrás que preocuparte durante el juego más de lo que tu mismo quieras preocuparte.

Con la instalación del juego se incluirá una buena cantidad de ayudas que podrás ir gastando, y no solo eso, si no que en caso de querer adquirir algunas más, siempre tendrás la opción de hacerlo. 


10 dic. 2012

Novedades desde Athagon Studios.



Muchos de vosotros os habréis preguntado a que se debe la reciente falta de actividad en el blog. Pues bien, nos complace comunicaros que después de un mes y medio de duro trabajo en el desarrollo del videojuego hemos hecho un gran avance.
Finalmente ya hemos definido todos los animales que protagonizarán esta aventura.
Para que podáis disfrutarlos, hemos realizado una ilustración en la que aparecen juntos en una divertida escena.



Y no solo eso, si no que ademas ya hemos terminado un teaser del juego en el que podréis ver a algunos de estos pequeños granujillas en movimiento.




23 oct. 2012

Diseño de escenario del actual proyecto de Athagon.

Tras una semana sin actualizar el blog, hoy tenemos suficiente contenido como para realizar una nueva entrada.

Ha sido decidido que el actual proyecto que estamos realizando será desarrollado con el programa Unity 3D, dado que después de estudiarlo al detalle, nos hemos dado cuenta de que cumple por completo con nuestras expectativas.

Por otro lado, hemos puesto a trabajar a nuestros grafistas para que nos desarrollasen un fondo de prueba, que si bien no será el definitivo, servirá, tanto a nosotros como a nuestros seguidores, para dar una idea mas definida de la estética que seguirá este videojuego.




16 oct. 2012

Teaser promocional de Athagon Studios


Ya tenemos un teaser promocional para iniciar los juegos que desarrollemos, el único defecto es que aún no tiene sonido.
Esperamos que os guste.



Diseños preliminares del actual proyecto de Athagon Studios.

Tras una semana de duro trabajo, podemos ir dando a nuestros fans algunos detalles de lo que será el nuevo juego para móviles que estamos desarrollando, el cual tendrá su versión tanto en Android como en IOS.

Por ahora, nos hemos puesto de acuerdo en que el argumento del juego girará en torno a una misión de rescate protagonizada por una valiente niña ayudada por su abuelo y un simpático chimpancé.





También ha sido confirmado que el juego en su modo historia, consistirá en cuatro mundos con una cantidad de fases por determinar, y que además disfrutará de un modo survival que permitirá a los jugadores el poder competir con sus amigos a través de rankings internacionales.






Desde la última actualización del blog, nos hemos centrado sobre todo, en el diseño de gameplay y en el desarrollo de los diseños preliminares de algunos de los personajes que aparecerán en el juego.


8 oct. 2012

Confirmado nuevo proyecto de Athagon Studios

El grupo Athagon Studios se ha embarcado en el desarrollo de un nuevo proyecto.
En la reunión informativa de esta mañana se ha hablado tanto de las fases de desarrollo, como de los líderes de cada departamento que dirigirán este proyecto.

Este nuevo trabajo, centrado como de costumbre en el desarrollo de una aplicación para móviles, en este caso consistirá en un juego orientado al jumping gameplay.
Este juego estará dirigido principalemtne a un público infantil, pero cuidaremos el que sea lo suficientemente complejo como para ser disfrutado por jugadores de todas las edades.

Uno de los puntos donde se ha hecho mayor hincapié, ha sido en el apartado gráfico, llegando a la conclusión de que este se realizará a través del desarrollo artístico de Sprites, aderezados con puntuales elementos 3D .

Desde el blog de Athagon Studios, iremos informando regularmente del avance de dicho proyecto e iremos colgando la correspondiente información de interés.

Esperamos que próximamente podais disfrutar de este nuevo y trepidante juego.

5 oct. 2012

Arranca el Blog de Athagon

Por fin los rumores han sido confirmados. 

Tras largas negociaciones, el equipo definitivo de la compañía Athagon Studios ha sido formalizado, dejando cubiertas todas las necesidades presentes y futuras que puedan presentarse en nuestra empresa.

El equipo definitivo de Athagon Studios se ha comprometido a dedicarse al desarrollo de aplicaciones móviles abarcando el ámbito más hetereogeneo posible y asegurando el nivel de excenlencia en cuanto a la calidad de sus productos.

 Un saludo a todos nuestros seguidores, y presten atención a nuestros próximos lanzamientos que, les aseguramos, no les dejarán indiferentes.



Athagon
Servicios
Compañia
Prensa
Blog
Trabajo
Contacto
Politica de privacidad
Productos
Save Your Pets
Siguenos
twiter facebook
google youtube
linkedin vimeo
En resumen
Somos una compañia independiente centrada en el desarrollo de videojuegos y aplicaciones