martes, 29 de abril de 2014

Libros gratuitos para aprender a crear videojuegos

Traigo un contenido que llevo mucho tiempo teniendo en mis marcadores de mi navegador y creo que no estaría de mas compartirlo con todas las personas que quieran aprender cosas nuevas, repasar cosas que hace tiempo que no ven e incluso el simple hecho de curiosear.
Diseño de videojuegos: Sonido interacción y redes
Es una web que tiene varios libros en formato digital de libre distribución y edición pero no comercial con licencia Creative Commons, realmente muchos de ellos son bastante interesantes tanto de videojuegos como otras areas que realmente no son el objetivo de esta web.

Aquí dejaré un enlace a la web que si bien no tiene libros aún sobre aprendizaje de Unity3D, el motor que uso normalmente y del que voy añadiendo contenido, si que enseña otros lenguajes y conceptos que abarcan muchas otras partes como el diseño, interacción, gamificación...

Posiblemente el que mas me ha gustado ha sido el siguiente: Diseño de videojuegos: Sonido, interacción y redes

Aquí dejo el enlace a la web para quien quiera echar un vistazo, aseguro que no tiene desperdicio ni para videojuegos ni para muchísimas otras cosas de contenido disponible.

Link: http://www.etnassoft.com/biblioteca/

lunes, 28 de abril de 2014

Unity3D Scripting: Unity3D dentro de Android (I)

Hay dos maneras de interactuar con Android nativo desde Unity3D, podemos exportar el proyecto a un proyecto de Android y desarrollar nuestra aplicación nativa la cual podrá llamar a Unity3D, o bien a través de una librería ya compilada en Java, la cual podremos usar desde Unity3D.
Hoy aprenderemos la primera de las dos formas, comunicarnos con Unity3D desde nuestra aplicación nativa de android.

En primer lugar, vamos a tener un objeto que va a contener este script en Unity3D que contendrá llamadas a funciones que retornan ciertos tipos de datos o directamente recoger variables.

public class NativeValues : MonoBehaviour {
 
 #if UNITY_ANDROID && !UNITY_EDITOR
  private static AndroidJavaObject jo;
  //Creamos nuestro objeto de java
  void Awake()
  {
   jo = new AndroidJavaObject("com.hagamosvideojuegos.Ejemplo");
  }
  //Recogemos el valor de tipo float del nombre que le pasamos como parámetro
  public float getFloatValue(string variable)
  {
   return jo.Get(variable);
  }
  //Editamos el valod de tipo float de la variable que le pasamos como parámetro
  public void setFloatValue(string variable, float valor)
  {
   jo.Set(variable, valor);
  }
  //Llamamos a un método que no devuelve nada
  public void voidMethod(string metodo)
  {
   jo.Call(metodo);
  }
  //Llamamos a un método que no devuelve nada y le pasamos un parámetro
  public void voidMethod(string metodo, float value)
  {
   jo.Call(metodo, value);
  }
  //Llamamos a un método que devuelve un float
  public float floatMethod(string metodo)
  {
   return jo.Call(metodo);
  }
 #endif
}
En principio vamos a destacar algo importante que cada uno usaremos a nuestro gusto, esto que especifíco en negrita es el nombre del paquete donde estará la clase de la que estamos creando un objeto de java donde com.hagamosvideojuegos es el paquete y Ejemplo la clase como podemos observar aquí

void Awake()
{
 jo = new AndroidJavaObject("com.hagamosvideojuegos.Ejemplo");
}
Y por último ver como vamos a acceder a nuestras propiedades y métodos públicos de nuestro objeto java desde Unity3D.

jo.Get(variable); //Le pasamos el nombre de la variable java que queremos leer
jo.Call(metodo); //Le pasamos el nombre del método java que queremos ejecutar
jo.Call(metodo, value); //Le pasamos el nombre del método java que queremos ejecutar pasándole un parámetro

 Una vez tengamos nuestro objeto con esta clase que, para evitar errores, solo se compilará solo en Android.

Una vez que tengamos nuestra aplicación de prueba, antes de compilar seleccionaremos Google Android Proyect y por último nos dará solo la opción de exportar.

En la próxima parte explicaré los pasos en eclipse para crear nuestro código necesario para interactuar con Unity3D.

domingo, 27 de abril de 2014

¿Cuanta importancia tiene un modo multijugador en un videojuego?

Hoy quiero hacer una reflexión sobre este tema, por supuesto esto entra dentro del tipo de videojuego que guste a cada uno y por supuesto si nos gusta jugar solo o acompañado, cooperativo o competitivo.
Al principio la mayoría de los videojuegos, según su clasificación eran o no multijugador, a mi ahora mismo no me viene a la mente ningún videojuego de lucha que no tenga la posibilidad de que tu contrincante no sea necesariamente una inteligencia artificial, en contrapartida, la mayoría del género RPG han sido hasta hace poco para el disfrute total de una sola persona y en todo caso parcialmente quien, junto a ti, disfrutase de la historia o bien compartiendo el gamepad o disfrutando de la historia del videojuego frente al televisor.

Si bien hay muchas tecnologías que han permitido evolucionar los videojuegos hasta límites impensables, nadie pensaba hace unos años el poder jugar con otras personas cada uno en su casa, ni tampoco poder jugar con detección de movimiento y eso sin nombrar la calidad gráfica a la que hemos conseguido llegar o las físicas que se han podido lograr.

Ahora bien, ¿como ha afectado todo esto de cara al presente y al futuro inmediato? (Ya que el futuro lejano es muy difícil de predecir)

Pues en mi opinión el modo multijugador, aunque quizás apenas tenga sentido o peor aún, que nisiquiera exista aunque diga que si, está hasta en la sopa, ¿Por qué? por la competitividad para ser mejor que tus amigos, como dije hace unos meses, posiblemente la mayor rejugabilidad de un videojuego sea en la que juegas para ser mejor que los demás, en la que compites con tus amigos, ¿Por qué no contra el resto del mundo?

Aún se hacen videojuegos para un solo jugador, pero es bastante poco usual hoy día, y aun siendo de un solo jugador, no es de extrañar que parte de su finalidad sea mandar tu puntuación online o conseguir logros para conseguir enganchar a otro jugador a intentar superarte con una puntuación mas alta o conseguir mas logros que tu.

Posiblemente, de todas las tecnologías que mas ha afectado a esto en particular, es claramente Internet, ya que sin el, aún tendríamos que ir a casa de nuestros amigos o invitarlos a nuestra casa para poder jugar y demostrar quien es realmente el mejor de todos.

Por supuesto esta entrada tiene un lado subjetivo ya que según el género que habitúes a jugar habrá cambiado mas, o menos en ese sentido.

En el caso de los RPG no están tan de moda como antaño, si no que se ha sustituido el género clásico como tal por el MMORPG, el cual no solo te cuenta una historia, si no que te permite jugar con tus amigos, en el caso del género decompetición, te permiten jugar con tus amigos cada uno desde su casa.

Por último, los únicos que he visto una pequeña tendencia aunque no en gran medida a videojuegos de un solo jugador son en los smartphone, que no todos queremos gastar nuestra conexión del móvil para jugar los cinco minutos que esperas el autobús, si no jugar rápidamente, sin problemas y entretenerte mientras tanto.

sábado, 26 de abril de 2014

Patentes en los videojuegos

Hace poco hablé sobre los derechos de autor en un videojuego como algo anecdótico ya que no he podido corroborar que fuese totalmente cierto lo que expliqué, pero que, sin duda alguna fue una anecdota mas que divertida, pero... ¿que pasa si hay algo de mi videojuego que quiero patentar?
En mi opinión las patentes son un retraso para el avance, me parece algo que realmente no está bien definido de base, ya que, el no permitir su uso por otra persona implica que dicha persona no pueda mejorar lo que tu has creado, aunque por supuesto, está la otra cara de la moneda en la que muchas personas no harían una labor de I+D para que se lucre otra persona.

No voy a entrar en un debate para ver si las patentes realmente están bien o están mal pero imaginemos por un momento la situación, ¿Que habría pasado si Shigeru Miyamoto hubiese patentado el género de plataformas con la creación de Mario? ¿Y si sus respectivos creadores hubiesen patentado sus videojuegos de puzzles? ¡Adiós Candy Crush!

Por supuesto no solo el Gameplay sería algo realmente importante que sin lugar a dudas habría repercutido en los videojuegos de una manera atroz, si no tipos de combinaciones en un gamepad, pantallas de carga y un sin fin de cosas que, si bien parecen bastante disparatadas, si alguien no lo conoce, por favor que busque información sobre la guerra de patentes de software entre Apple y Google, realmente es asombroso hasta que punto puede ser absurda una patente y lo peor, que el usuario final es el que lo sufre a la hora de disfrutar su compra ya que su compra ha sido limitada.

Me gustaría comentar un par de patentes que he encontrado sobre videojuegos en internet que realmente me resulta bastante frustrante el mero hecho de que si bien hago un videojuego, yo no haya podido llegar a tener la misma idea que otra persona o bastante parecida para desarrollar un videojuego.

Un ejemplo de patente es la norteamericana nº 6935954 de 30 de agosto de 2005 para una invención de Nintendo, cubre un sistema en el que un personaje del juego se ve afectado por un “nivel de cordura” que a su vez refleja acontecimientos en el juego, peleas contra una criatura horrorosa, situaciones de terror, etc. En esas circunstancias la cordura del personaje se reduce y esto repercute en la capacidad de controlar al propio personaje por el jugador.

Otra original patente titularidad de Microsoft es la nº 6604008, del año 2005. Esta joya de la inventiva humana tiene el título de “Sistema de puntuación basado en metas alcanzadas y elementos subjetivos”, donde Microsoft ha obtenido el monopolio para los sistemas de puntuación en los que los puntos se ganan cuando el jugador completa una hazaña por medio de un estilo subjetivo propio del personaje (ejemplo del Gotham Racing).

Así que la respuesta es que sí, se pueden patentar ciertas cosas aunque dependerá del país donde quieras hacerlo, en el caso de las anteriormente nombradas, han sido patentadas en EEUU, así se patentan técnicas y características del juego, de puntuación, hardware, procesos informáticos, diseño, gestión de memoria, comunicación, etc.

Por suerte o por desgracia, en España y Europa al menos, las patentes de software no están contempladas, en todo caso, lo que si podríamos patentar sería la parte física como el procesador gráfico de la consola o el gamepad.

Espero que este modelo siga estando así ya que en caso contrario las empresas multinacionales realmente acabarían quebrando los estudios indie que si están favoreciendo mucho mas a la creación de contenido original.

viernes, 25 de abril de 2014

Arreglado mi Arkanoid

Hace un tiempo hice un arkanoid el cual está subido a GitHub para quien quiera usarlo, dicho proyecto tenía un fallo que aparentemente no sabía donde se encontraba ya que entre otras cosas, era la primera vez que usaba las físicas 2D.
¡Mi hijo vuelve a la carga!
Después de mucho tiempo encontré el error, fue tan sencillo como añadir un elemento de físicas 2D sin nada de fricción ni rebote para los objetos que no deberían de tener nada de eso, al parecer Unity3D si no le aplicas una física, usa una por defecto, lo cual hacía que la bola tuviese un comportamiento errático al chocar con los elementos que no tenían física añadida porque se le aplicaba fricción.

Además he incrementado la velocidad de la bola para cuando golpee, de manera que la dificultad incrementa considerablemente.

Este proyecto además está pensado para ir creando niveles y añadirlos en el orden que quieras y el solo avanzará niveles hasta llegar al último que debería ser la pantalla final, algo que estaba creado anteriormente.

No sé si algún día usaré este proyecto para un uso mas profesional y añadirle power ups, puntuaciones, etcétera...

Como igualmente es un proyecto abierto, podéis usarlo y/o mejorarlo a vuestro gusto.

https://github.com/HagamosVideojuegos/Arkanoid

jueves, 24 de abril de 2014

Comienzo de uno de mis proyectos

Una de las cosas que quería comentar es que estoy desarrollando un videojuego junto a un par de personas y de momento aún no quiero revelar gran información sobre la jugabilidad ya que aún estamos terminando de definirla, pero quiero mostrar poco a poco los avances del videojuego, voy a mostrar el primer render de 3D sin texturas que tenemos de una de las pantallas del videojuego.

Primer renderizado
Este videojuego es un proyecto que estamos desarrollando a corto plazo, nuestra idea es lanzarlo en poco tiempo, no quiero dar fecha realmente ni concreta ni aproximada a pesar de que mas o menos tenemos una estimación bastante real de cuanto podríamos tardar, pero lo que si puedo decir es que a medida que tengamos algo sustancial mostraré pequeñas partes, posiblemente las que considere interesantes como desarrollo que puedan destacar como error o acierto durante el mismo.

Para la próxima entrada relacionada con este videojuego prometo que, si no puedo mostrar mucho mas del videojuego, al menos poder hablar un poco de el ya que, de momento, no queremos decir las cosas aseguradas por posibles cambios que puedan surgir durante el desarrollo.

Espero que este primer intento de entrar en el mundo de los videojuegos de manera oficial al menos llegue a gustar a los que lo jueguen, no espero que sea este videojuego el que me dé de comer, tampoco espero una aportación económica mas que para un café, lo que realmente espero es que, quien lo juegue los disfrute lo suficiente como para querer jugar mas de una partida.

miércoles, 23 de abril de 2014

¡Pilas recargadas!

Después de unos días sabáticos con el blog voy a volver a la carga, si bien mi idea era tener un post diario, es cierto que es difícil reunir material de calidad para mostrar diariamente así que determiné que la mejor opción era darme un pequeño descanso.

No solo vuelvo para seguir con tutoriales (Que tengo varios a medias y otros tantos en el tintero) y mis opiniones, si no que además, alguna que otra novedad que poco a poco iré publicando y borradores en proceso de creación.

De momento quiero aportar un vídeo de unos señores que si bien últimamente parecen no tener mucha actividad, no les resta mérito por hacer lo que han hecho.


Un video creado por desarrolladores para desarrolladores que quieran comenzar a hacer un videojuego, me ha parecido muy interesante principalmente porque cada uno cuenta un poco su experiencia y que han ido haciendo lo cual me parece una buena forma de aprender de los demás, en especial de los errores como ya he dicho anteriormente.

Aunque está bastante inactivo no quita que tengan algunos enlaces de interés en su página de facebook por lo que merece la pena echar un vistazo.

https://www.facebook.com/IndieGameSpain

Por último comentar que si bien me han dicho y es un defecto que tengo mas que asumido, mi redacción no es especialmente mi fuerte, así que a partir de ahora intentaré dedicarle un poco mas de tiempo a cada entrada para revisar y ordenar un poco mejor mis pensamientos que intento reflejar aquí.

Volviendo la actividad ¡y esta vez con mas caña que antes!

domingo, 13 de abril de 2014

¡Vende hasta las ventas! Monetizar tu videojuego vendiendo los derechos del mismo

En su día ya hablé sobre distíntas formas de monetizar tu videojuego, pero hace poco conocí una forma diferente que realmente me ha llamado la atención.

Este método consiste en que, tu haces tu videojuego, lo pones a la venta (o no) y si crees que no puedes sacarle toda la rentabilidad que querrías o si directamente te gustaría ganar mas dinero a corto plazo y vender los derechos de la aplicación a otra persona, esta se lucrará a partir de ese momento de tu aplicación, en nuestro caso, nuestro videojuego, y tu pues habrás obtenido tu recompensa.

Hay muchos casos en los que, a pesar de que el videojuego es bueno, tiene gancho, realmente tiene una buena jugabilidad pero... no tiene publicidad, no es conocido ni se da a conocer. Aquí es donde actúan estos compradores, personas que se encargan de que esa aplicación salga a flote, ya que por algo te la están comprando, para esperar un benefício.

En caso de que tu aplicación ya esté a la venta, para facilitar la venta de la misma, se suele poner cuantas descargas tienes, a cuanto se vende la aplicación, cuanto se gana en publicidad, etcétecta.

Yo personalmente, la web que he visto me ha parecido muy interesante tanto para inversores como para desarrolladores que quieran intentarlo por una vía distinta a la que estamos acostumbrados.

Aquí os dejo un enlace a la web que me enseñaron, sin duda alguna un posible caso a estudiar: http://www.apptopia.com/

sábado, 12 de abril de 2014

Derechos de autor sobre los videojuegos

Durante la familiargamejam, uno de los participantes, como profesión realmente era abogado, en cambio por hobby pues componía música, y durante un almuerzo estaba comentando el tema de los derechos de autor sobre un videojuego, algo que en cierto modo podía causar hasta risas, no por lo que decía ni mucho menos, si no que, si realmente es cierto todo lo que dijo, lo cual realmente no pongo en duda dada la escasa información al respecto que hay con las leyes actuales en españa, eran datos muy curiosos y hoy vengo a recordarlos aquí.
Si, hoy hablaré del CopyRight.
Al menos en España, por lo que creo haber entendido de aquella conversación que espero realmente no errar en lo que digo y si alguien ve algún error que por favor me corrija, no me gustaría dar información falsa al respecto.

En primer lugar, vamos a partir de la base:

¿Que son los derechos de autor?
Es un conjunto de normas jurídicas y principios que regulan los derechos morales y patrimoniales que la ley concede a los autores (los derechos de autor), por el solo hecho de la creación de una obra literaria, artística, musical, científica o didáctica, esté publicada o inédita.
Partiendo de esta breve descripción podríamos decir que, podemos tener derechos sobre un libro o un relato, sobre un cuadro o dibujo, sobre un disco o canción, etcétera... ¿Que pasa con un videojuego? Pues ahora vamos a verlo.

En primer lugar, un videojuego, si bien tiene música, tiene arte sea en 2D o 3D, podría decirse que tiene diálogos que no sabría decir si en si mismo podrían contar como literarios, no podría asignarse un tipo de derecho de autor en ninguno de los casos, incluso aunque el videojuego fuese con fines didácticos, no va todo en el mismo saco, así que vamos a desglosarlo.

En primer lugar deberíamos de registrar todas nuestras canciones, efectos de sonido, etcétera como obras musicales, independientemente de lo demás ya que esa parte del videojuego, la música si está reconocida como un elemento a registrar como de tu propiedad.

En segundo lugar podríamos usar el arte 2D o 3D como obra artística, todas nuestras imágenes, modelos 3D e incluso los efectos visuales deberíamos de registrarlos de esta manera.

Por último y mas divertido, o al menos con lo que me heché unas buenas risas al oirlo, ¿Que hacemos con nuestro código de programación? ¿Como lo registramos?

Ya que no hay nada que contemple la programación como derecho de autor, en caso de cualquier tipo de software, debes registrarlo como obra literaria, no sé si es totalmente verídico esto, pero se me hace muy divertido registrar mi código como un libro, ¿Podría publicar tiempo mas tarde un libro con el código de mi videojuego? Y lo que se me vino a la cabeza al comentar eso, ¿No sería entonces mas divertido programar en el lenguaje Shakespeare?
Si, yo también tengo mi propio lenguaje de programación.
Sinceramente, creo que deberían de regular, no solo los videojuegos si no el contenido multimedia en general, ya que por esa regla de tres una película de animación también debes registrar la música y la animación 3D por separado en vez de como una sola unidad, divertido mientras no quieras pantentarlo.

viernes, 11 de abril de 2014

Pixel, el creador de Cave Story

Cave Story, un videojuego al que espero hacer un análisis algún día, probablemente cuando consiga pasarme el último de los posibles finales, realmente me cautivó, un pixelart de 8 bits realmente llamativo, una jugabilidad muy buena, una historia interesante... y lo mas interesante de todo el videouego, un videojuego hecho por una sola persona.
Daisuke "Pixel" Amaya
Este videojuego lo jugué y me lo pasé hace varios años, me gustó tanto que me compré el Cave Story+ a pesar de ser prácticamente el mismo videojuego, solo que con algunas pantallas extra.

Esta entrada viene a un correo electrónico que, como fan de su videojuego, quise mostrar mi agradecimiento por haber hecho este videojuego y mas allá de ello, preguntarle algunas cosillas, a pesar de que su respuesta fue bastante escueta, ciertamente me respondió a todo lo que le pregunté.

Sorprendido en el momento, no me esperaba que una persona que para ese entonces ya estaba empezando a hacerse famoso, a hacerse un nombre, respondiese correos de fans, aveces se nos olvida que detrás de las personas que vemos inalcanzables hay precisamente eso, una persona.
Cave Story, videojuego por el que es mundialmente conocido.
Hay varias cosas que le pregunté con varios motivos, entre ellos quería saber por ejemplo cuantos años tenía y cuantos llevaba desarrollando para haber podido hacer todo el videojuego el solo, en ese momento (2011), contaba con treinta y cuatro años, veinte años de experiencia haciendo videojuegos, es decir, desde sus catorce años empezó a desarrollar, casualmente yo empecé a la misma edad que el, pero dudo que cuando el tenía catorce años existiese lo que usaba yo para hacer videojuegos por aquel entonces (RPG Maker 2003), este señor, empezó a desarrollar videojuegos, o al menos aprender a programar alrededor de 1991, cuando la gran disputa de los videojuegos estaba entre SEGA y Nintendo, cuando un servidor tenía entre uno y dos años.

Por supuesto le pregunté si haría una secuela de su videojuego que tanto me había gustado y aunque estaba pensando en una secuela para aquel entonces, o eso me dijo, a día de hoy, lo que se ha podido considerar secuela ha sido un remake del videojuego para nintendo DS y esta versión extendida llamada Cave Story+.

También pregunté por otros proyectos que tuviese en mente que realmente ya han visto la luz a día de hoy, me dijo que estaba trabajando en videojuegos para iOS en aquel entonces, videojuegos que hoy día en su web oficial se pueden encontrar.

Por último me dio las gracias por mandarle el email, finalmente, ese correo en su día me hizo reflexionar sobre ciertas cosas, como que esa persona llevaba muchos, muchísimos años de experiencia, que para bien o para mal, lo había intentado y finalmente consiguió hacer un videojuego que realmente gustase al público, además de muchos videojuegos freeware que creó y se pueden jugar por internet, ese videojuego que quiso comercializar, realmente es el que le hizo famoso y por el que es conocido.

En una pequeña parte, esta persona es una de mis inspiraciones, quizás en el blog de momento no esté mostrando todo lo que sé hacer o todo lo que me gustaría desarrollar, pero me gustaría mostrar cosas realmente avanzadas y no concepts o proyectos que no pueden llegar a llamarse beta.

Quien me diría a mi que una persona que hoy día si es alguien importante en este mundo, aportase su granito de arena directa o indirectamente para que yo también quisiese dedicarme a esto, ¡Gracias Daisuke!

Web oficial: http://studiopixel.sakura.ne.jp/ (Japonés)
Wikipedia: http://en.wikipedia.org/wiki/Daisuke_Amaya (Inglés)

jueves, 10 de abril de 2014

Documental sobre videojuegos

A pesar de que repasa solo el inico de los videojuegos, y no tan detalladamente como al menos a mi me gustaría, puntualiza muchas cosas que realmente, tanto en antaño como ahora, e incluso pensándolo detenidamente, no solo en la industria de los videojuegos si no en la tecnología en si misma me hace llegar a una conclusión.

Si quieres destacar, debes ser original, ser el primero o al menos, el primero a ojos del público a nivel masivo.


Aun no repasando la historia con grandes detalles, posiblemente los detalles mas importantes hasta hacer de los videojuegos algo masivo si que los muestra con claridad.

Espero que disfruteis e incluso os haga reflexionar sobre vuestra visión sobre los videojuegos, visto que a pesar de todo el tiempo que ha pasado desde los inicios de los videojuegos a este preciso instante, no ha cambiado mucho la cosa, hay muchísimos mas títulos, de mejor o peor calidad, pero las mentes realmente creativas son las que destacan, las demás copias o bien caen en el olvido o simplemente se recuerdan como copias de los videojuegos realmente destacados.

Hoy día podemos ver eso bastante claro con Candy Crush (A pesar de que no es para nada original, es el que hoy día ha llegado a un público masivo) o Flappy bird que este si, es bastante original y especialmente destacado por su simplicidad.

miércoles, 9 de abril de 2014

Interfaz en Unity3D

Dentro de Unity3D se pueden hacer interfáces bastante simples con apenas unas líneas de código, todo el que empieza con Unity3D, una de las primeras cosas que aprende a hacer es crear un botón y como detectar la pulsación.
Pero lo que no te enseñan en los tutoriales básicos de Unity3D es que la interfaz que puedes crear por defecto es bastante deficiente.

¿Por qué?
Un amigo mío pensaba que era porque hacía llamadas mucho mas constantes que el update, pero es muy fácil de comprobar que eso es falso, ya que si haceis un debug de Time.deltatime, podréis ver que, tanto el evento Update, como el evento OnGUI, tienen el mísmo tiempo desde su última ejecución prácticamente, de manera que eso no sería muy notable.

Al investigar me di cuenta de que cada elemento de la interfaz creaba una draw call.

¿Que es una draw call?
La traducción literal sería "Llamada de dibujo", básicamente sería pedirle que dibuje algo en pantalla, en este caso podría ser un botón, una etiqueta, un scroll, un selector, etc...

De manera que las interfaces como un menú, tendrían por cada botón una llamada a dibujo, por cada caja, por cada texto...

¿Por qué eso es malo?
En ese caso no es para nada óptimo por algo muy sencillo, imagina que tu madre te pide que friegues, pero no todo, friega un plato, y cuando vuelves te dice que frieges una cuchara, y cuando vuelves un tenedor y cuando vuelves otra cuchara... ¿No tardarías menos en hacerlo todo de una vez en el orden que te digan directamente que ir viniendo para que te diga tu madre que fregar? pues mas o menos lo mismo.

¿Que hacer contra esto?
Pues hay dos alternativas viables para mi gustoa  no ser que consiederes por ti misma o por ti mismo que no merece la pena enredarse mas que en eso.

Una de las maneras sería hacer tu mismo tu propia interfaz a través de objetos 3D, aunque sean planos, pero no llamarán a las dichosas draw calls.

Otra alternativa es usar interfaces creadas por otros usuarios que estén ya optimizadas.

Como no voy a recomendar algo que no he provado, aconsejaré encarecidamente NGUI, ya que este es el que estoy empezando a usar y tiene muchas, muchísimas ventajas.

Igualmente dejaré algunos enlaces para poder comparar estilos y precios porque lo mejor es poder comparar por ti mismo:

NGUI: http://u3d.as/2vh (Mi recomendación personal)
Daikon Forge GUI Library: http://u3d.as/5dQ
Power UI: http://u3d.as/5cb
Noesis GUI: http://u3d.as/55A

Aunque todos estos son de pago, ciertamente te ahorrarán muchísimo tiempo en crear tu propio editor de interfaces óptimo y fiable, estos tienen muchas, muchísimas cosas que te ahorrarán tiempo en tu desarrollo y poder dedicarlo a cosas mas importantes como en el desarrollo de la jugabilidad.

En mi opinión no solo es no reinventar la rueda si no que además. puede servir de aprendizaje y a nivel práctico para ahorrar tiempo.

Por último decir que en especial NGUI, cuenta con soporte y una comunidad detrás además de incluso plugins añadidos a este mismo plugin, esto mismo lo puedes encontrar en cualqueira de los otros anteriormente nombrados, especialmente para el Daikon Forgue GUI Library

Espero que sirva y en caso contrario, ya haré un tutorial de como hacer interfaces sin draw calls a través de 3D o incluso 2D que ya incorpora Unity3D

martes, 8 de abril de 2014

Entrenamiento personal: Algoritmos

Si hay algo que especialmente dentro del ambito de la programación puede asegurarse, aunque realmente es totalmente aplicable a todo lo hecho por el hombre, es que la perfección no existe, siempre, siempre hay algo a mejorar, y hoy enseñaré un par de páginas webs de las que he aprendido y que aprenderé mucho mas a medida que vaya disponiendo de tiempo para ello.

Dentro de mi carrera profesional, es decir, la programación, independientemente de que te dediques a desarrollar videojuegos, aplicaciones o incluso de sistemas operativos, hay que aprender a optimizar recursos, en el caso de los videojuegos es muy importante, ya que cuenta con una parte gráfica que consume un gran porcentaje de recursos del sistema, de manera que hay que optimizar el código al máximo posible para que no haya una bajada de frames que podría estropear la calidad del videojuego.

Me he dado cuenta de que últimamente no me he dedicado mucho a mejorar mi conocimento sobre algoritmos de programación y esto es algo muy básico, algo esencial dentro del ambito en el que me envuelvo así que, volveré a usar ciertas webs que voy a mostrar aquí.

En primer lugar una web que a mi particularmente no solo me ha servido de mucho para aprender si no que además, me ha resultado bastante entretenida, si te gusta resolver algoritmos, esta web, probablemente sea la mejor que vayas a ver.

Si bien los problemas planteados están en inglés no son especialmente complejos de entender, te registras gratuitamente y puedes acceder a cualquiera de los ejercicios planteados, son algoritmos que tienen un resultado numérico el cual es el que debes dar, de tu cuenta corre el lenguaje que uses para resolverlo, incluso papel y bolígrafo si lo prefieres, como planteamiento personal, creo que lo mejor es intentarlo de diversas formas y ver cual de ellas tarda menos en ejecutarse para ver cual de los algoritmos que has sido capaz de plantear es mas óptimo, y por último, una vez has sido capaz de resolver estos algoritmos, mi consejo es compararlos con otros de internet.

http://projecteuler.net

Con 466 problemas y distíntas soluciones, para mi gusto, de las mejores webs que podréis encontrar.

Además de esto, hay varios cursos, gratuitos o de pago que te enseñan a pensar y resolver este tipo de problemas, de los cuales voy a facilitar algún enlace en la web.

https://www.coursera.org/course/pealgoritmico
https://www.coursera.org/course/algo

Y uno que me gusta muchísimo, quizás, junto a hacer videojuegos, lo que mas me gusta de la informática, que a su vez sirve para muchas cosas dentro de un videojuego, desde generar passwords, a guardar partidas de una manera comprimida y que el jugador no pueda alterar el contenido, la criptografía.

https://www.coursera.org/course/crypto

lunes, 7 de abril de 2014

Unity3D Scripting: Mecanim (I)

Mecanim, la novedosa herramienta de Unity3D, es en resumen, un ahorro de código más para el programador, al igual que por ejemplo usar variables públicas en el inspector, el arrastrar y soltar en la escena, los componentes prefabricados, etcétera, etcétera.

Ejemplo visual
¿En que consiste mecanim?
Una versión resumida y práctica, al menos para mi, es resumir Mecanim como un lanzador de animaciones de personaje, es decir, cuando se cumpla cierta o ciertas condiciones, cambiar la animación del personaje por la animación correspondiente.

domingo, 6 de abril de 2014

Unity3D IA: Empezando a tratar la inteligencia artificial

Bien, el tutorial de hoy tratará sobre inteligencia artificial basado en Unity3D, esta parte de la programación, probablemente será mi favorita, ¿Por qué? fácil, me gusta resolver problemas, me gusta buscar, aprender y sobretodo tener la satisfacción y decir, lo he conseguido.

Si realmente estás interesado en este mundo, te aconsejo que mis referencias no sean las únicas que mires, posiblemente esté equivocado o pueda mejorarse mucho mas las cosas que hago como me han demostrado hace poco, lo cual me gusta.

En primer lugar hablaré del motor para IA que voy a usar ya que no es necesario reinventar la rueda, hay muchísimos motores que podemos encontrar, tanto para Unity3D como para el resto de sistemas.


sábado, 5 de abril de 2014

Unity3D Shaders: Creando nuestros propios shaders (I)

Una de las cosas en las que no me he enredado dentro de Unity3D han sido los shaders, y creo que lo ideal es aprender un poco de todo aunque te especialices en algo en concreto ya que si al menos sabes controlar un poco las otras áreas que tocarán al crear tu propio videojuego, podrás enfocar mucho mejor el area que te compete.

Ya que dentro de los shaders hay muchísimas cosas que podríamos aprender, vamos a ir paso a paso, tutorial a tutorial aprendiendo a hacer cosillas con shaders.
Una imagen vale mas que mil palabras
Para empezar...

¿Que es un shader?
Los shaders son utilizados para realizar transformaciones y crear efectos especiales, como por ejemplo iluminación, fuego o niebla. La ventaja de usar shaders es principalmente que interactúa directamente con la GPU, para quien no sepa lo que es, el procesador de gráficos de tu pc o smartphone, es el microprocesador optimizado para los cálculos gráficos.

viernes, 4 de abril de 2014

Retrospectiva: Realidad virtual

Hay un concepto que desde que empezamos a darle paso a los videojuegos que, si bien lo hemos soñado todos, no estamos para nada cerca de lo que se esperaba, ahora bien, quiero hacer un poco de énfasis esta vez en lo que se esperaba en antaño de la realidad virtual, lo que se consiguió y por qué creo que en todo caso, para la realidad virtual de verdad, aún faltan muchísimos años y eso si llegase a ser posible que realmente, lo veo poco probable.

El sueño de todo gamer
Hay ciertas cosas que considero prácticamente inalcanzables si hago uso de la lógica aunque por supuesto soy el primero que le encantaría disfrutar de la realidad virtual.

jueves, 3 de abril de 2014

Dando juego a aplicaciones que no están destinadas a jugar ¿O si?

Hace un par de días fue el día de las bromas que se celebra en varios sitios del mundo, en españa concretamente tenemos el día de los inocentes que no coincide con esta fecha pero tiene una intención similar.

miércoles, 2 de abril de 2014

Slime in a minute, el resultado final de la gamejam

Ya han subido todos los videojuegos de la FamiliarGameJam, entre ellos está el que fui realizando día a día (Dos concretamente, ya que teníamos 48 horas) durante el evento y que espero que disfruteis.


Este videojuego debía tener un objetivo claro, morir, así que durante el desarrollo del videojuego, a pesar de tener ideas que la principio parecían bastante claras, poco a poco empezamos a ver lagunas en cuanto a la jugabilidad, pudimos optar por un camino que, sin cambiar el rumbo del videojuego, poder centrar un poco mejor la jugabilidad del mismo.

martes, 1 de abril de 2014

Retrospectiva: Pixelart

En su día hablé del chiptune, hoy le toca al arte del pixel, los dibujos hechos a base de cuadrados que, con mayor o menor definición, te hacían ver o imaginar una calidad en su tiempo asombrosa y hoy día, con gran nostalgia.

Hay quien considera no malo, si no horrible esto, en mi opinión es como el arte abstracto, hay a quien le gusta y a quien le parecen manchurrones en un lienzo, en mi opinión, el pixelart es una gran obra, y si hay algo que me gusta de este arte es que, jugando a un videojuego pixelado, da mas fruto a tu imaginación pensar como sería eso transformándolo al mundo real que si lo ves con una calidad asombrosa. ¿Nunca pensaste estar dentro de un videojuego a pesar de estar en 2D?
Si, esto es Pixel Art, ¿Pensabas que siempre se iba a ver en 8 bits?