"Arrejunta" y vencerás

Aquí estamos de vuelta, por segunda vez. Y es que escribir en el blog es bastante más complicado de lo que nos parecía en principio. No sólo por pensar temas de interés y saber darles forma, sino más bien por el tiempo. Espero que este segundo retorno del blog sea el definitivo.

Durante todos estos meses no hemos parado de hacer cosas, principalmente apps para clientes. Este ritmo de desarrollo ha provocado que dejemos de lado el desarrollo de productos propios, que siempre había sido nuestro interés principal cuando decidimos montar divertap. De hecho sigue siendo nuestro principal objetivo. Aún así, sí que hemos hecho el esfuerzo de pensar cuál debería ser nuestra estrategia de cara al desarrollo de juegos para smartphones: no buscar un hit en iOS sino abarcar más mercado para hacer pequeños productos interesantes.

Este enfoque es el que he llamado "arrejuntar", es decir, conseguir tener mucho más mercado objetivo (iOS y Android principalmente) en torno a los productos que publiquemos. Sabemos que iOS tiene un mercado muy grande, pero también una competencia feroz. Por eso apostamos por conseguir llegar a muchos más usuarios potenciales que crear un producto exclusivo de una sola plataforma. Esto no quiere decir que supongamos que por que haya mucha más usuarios posibles será más sencillo conseguir tener éxito, sino que definiendo bien una línea de productos concretos (por ejemplo apps y juegos educativos para niños), es más viable conseguir una pequeña comunidad de usuarios/clientes de nuestros productos si apostamos por varias plataformas.

Hace tiempo hicimos un primer intento de desarrollar los productos directamente en cada plataforma nativa (Objective-c y Java), resultó un fracaso. No conseguimos avanzar en la parte de Android y nosotros tampoco conseguimos tener el tiempo para aprender a desarrollar en esa plataforma. Pero es que además esa línea de desarrollo, cada plataforma por separado, es excesivamente costosa. No se las grandes compañías si pueden abordar el desarrollo de productos con equipos diferenciados, pero divertap somos dos y teníamos que asumir otra línea de desarrollo más factible.


Por "desgracia" esa apuesta nos lleva irremediablemente al desarrollo cross platform. Y digo por desgracia porque ese mundo es otra galaxia más. Si el desarrollo de apps para iOS fue un mundo nuevo, el del desarrollo cross platform es una galaxia. Lua, C++, C#, Javascript, HTML5 y un largo elenco de lenguajes y tecnologías nos venían a la pantalla con hacer una pequeña investigación. Si el conjunto de lenguajes era grande, el conjunto de productos/frameworks/skds que hay para desarrollo cross es casi infinito (http://www.mobilegameengines.com/).

Hemos estado un poco perdidos mirando y evaluando herramientas de desarrollo de juegos 2D. Muchas de ellas muy interesantes, cada una con sus pros y contras. Concretamente nosotros teníamos en mente estas características básicas que debía tener:

  1. Poder extender la sdk básica de forma relativamente sencilla
  2. Poder usar APIs nativas donde fuera necesario
  3. Poder conectarse a servidores de juegos por turnos
  4. Herramientas que faciliten el desarrollo
  5. Soporte a diferentes plataformas y resoluciones de pantalla de una manera 
  6. Buen soporte de físicas (a poder ser con motores de físicas conocidos como box2d o chipmunk)
  7. Completo catálogo de operaciones 2D
  8. Una comunidad de desarrolladores activa y con documentación abundante

Lo malo de esas 8 características es que casi todos los productos dicen que lo tienen (cómo no :) Por eso llegar a decidir qué herramienta usar es un proceso costoso: conocer el producto (formarse) y desarrollar una prueba de concepto para probar sus cualidades. En realidad ninguna cumple al 100% con esas expectativas o por lo menos no de forma sencilla y directa.


En nuestro caso no hemos hecho un estudio exhaustivo, por un lado nos hemos "casado" con una herramienta que nos parece muy interesante: LevelHelper, que te permite definir escenas, animaciones, físicas para juegos y cuentos animados en 2D. Además genera código para cocos2d-x y CoronaSDK. Y por otro lado nos hemos dejado aconsejar por Edenic Games para usar Unity3D.


Otra alternativa aún por explorar es una herramienta cross platform que está a punto de ver la luz, de forma pública. Es Strawberry, un producto de desarrollo cross que mezcla C++ y HTML5 que ha sido construido por no2. Lo han usado en todos sus productos y parece realmente interesante, le tendremos que dar una oportunidad.


No tengo como objetivo aquí explicar las diferencias entre cada herramienta ni siquiera explicar sus virtudes o defectos.  Por ahora sólo las menciono, pero seguro que iremos escribiendo sobre todos esos productos, porque los próximos meses nos acompañarán en nuestro camino.




0 comentarios:

Publicar un comentario