lunes, 31 de marzo de 2014

GODOT Engine: el IDE OpenSource para videojuegos

Hace unos días me enseñaron un IDE, muy parecido a Unity3D que me ha parecido muy interesante.

Este IDE, es de código abierto y sinceramente, me ha dado buena impresión aunque ha salido hace muy poco tiempo, por lo cual seguro que le queda mucho camino por recorrer, sea para bien o para mal.

Interfaz de animación 2D
Este editor incluye tantas cosas como Unity3D e incluso alguna otra que quieren incorporar en Unity5, como poder jugar en navegador sin plugins gracias a la librería asm.js.

Aún no he podido mirarlo profundamente pero sinceramente creo que merece la pena dedicarle un poco de tiempo a un proyecto como este, ya sea por el nivel económico del desarrollador, por ver como se hace un IDE tan completo o simplemente por comparar con el programa que uses por defecto.

Como es un software, al menos a mi parecer, clónico de Unity3D, o al menos muy similar, ya que posiblemente no sea el único, voy a mencionar algunas ventajas que me han parecido especialmente interesantes y que me han hecho decidir el darle una oportunidad.

Lenguaje de programación: GDScript
Este lenguaje está basado en Python. un lenguaje que a mi parecer es genial para esto, a pesar de que no soy para nada un experto en python, lo poco que he hecho con este lenguaje me ha hecho darme cuenta de que, especialmente para quien esté empezando a programar es bastante didáctico, muy sencillo ya que no tienes que parsear variables, una variable puede tener una cadena de carácteres y luego si quieres puede contener un número sin problema alguno, eso además de forzarte a identar el código, ya que no se usan corchetes para dividir el código si no tabulaciones que como método de aprendizaje no está nada mal, independientemente del IDE, aconsejo encarecidamente probar ese lenguaje de programación.
Sistemas operativos en los que poder usar el programa: Windows, Mac y GNU/Linux
En especial este punto me parece muy interesante ya que, en Unity3D, a pesar de poder compilar para GNU/Linux, no hay editor para el mismo, y sería bastante interesante ya que gestiona mucho mejor la memória que windows y por ende, podría ser bastante mas rápido de usarse.
 Código abierto
Si hay algo que me gusta, es saber como y por qué hace las cosas un programa y si hay una opción que no sabes para que sirve, ¿que mejor forma de poder explorar dentro de las entrañas del programa para descubrirlo?
Por último, opciones adicionales de Unity3D, así como plugins, incorporar repositorios y todo esto sin restricciones de ningún tipo.

Dicho esto, solo decir que tiene licencia del MIT y que espero que quien realmente se interese por el proyecto, no solo le acabe gustando si no que pueda ser incluso su herramienta principal, aunque aún está en estado beta, lo veo bastante interesante para haber salido hace un mes escaso.

Enlace: http://www.godotengine.org/
Código: https://github.com/okamstudio/godot

domingo, 30 de marzo de 2014

FamiliarGameJam: Dia 3

Finalmente, terminamos nuestro videojuego junto al resto de equipos que han participado en la GameJam.

Aquí mis ultra breves resúmenes de los días anteriores:

Día 1
Día 2
¡Nuestro hijo!
Aquí, antes de irme a dormir, gastaré mis últimas energías que me ha proporcionado altas dosis de cafeína durante todo el fin de semana para contar un poco mi experiencia en general y un poco el concepto del videojuego que desarrollé junto a mi equipo.
En primer lugar, no solo ha sido tan positivo como creía el haber asistido a este evento, si no que además, ha sido mucho mejor de lo que pensé.

Sin conocer a ningún asistente del evento, desde el principio me trataron como a un amigo de confianza que desde luego el sentimiento fue totalmente recíproco y fue mucho menos tenso de lo que esperaba eso de tratar con otras personas que no se conocen entre si la gran mayoría.

Por otro lado, aprender de los demás, de que hacen, como y por qué, siempre puedes contrastar con lo que sabes y mejorar algo, de hecho, mi compañero de profesión y de equipo me ha enseñado cosas que realmente no sabía sobre la herramienta que mas uso y de la que expongo ejemplos de vez en cuando aquí, Unity3D.

No con muchas personas he podido tener el placer de conversar a nivel técnico sobre videojuegos que realmente son poco conocidos pero que al menos yo, considero unas auténticas obras de arte, en cambio al poco de llegar pude hablar con algunas personas del evento sobre Fez, juego que analicé y regalé en su día.

He podido conocer a varias personas del entorno con las que sin duda alguna hemos podido compartir tanto los buenos ratos como los de tensión por la contrareloj que sin duda volvería y sé que volveré a tratar con ellos tanto en estos eventos y sin duda alguna, si se da la oportunidad, tomando un café.

Simplemente, mi primera GameJam y sin duda, una experiencia inolvidable y sin duda alguna, una experiencia que pienso volver a repetir.

Espero que todas las personas que leáis esta entrada, hayáis asistido o no al evento, disfrutéis del frenético juego que hemos hecho con toda nuestra ilusión, tan solo os llevará un minuto de vuestro tiempo.

Qar las gracias a los componentes de mi grupo de desarrollo los cuales han hecho que el videojuego haya sido posible a pesar de sus pequeños bugs de última hora.

Mis felicitaciones a Carlos por su grandísimo arte en el diseño, Sergio por su grandísima música que ha acompañado al videojuego totalmente, a Javier por sus sonidos que desde luego le dieron toda la ambientación que nos dio tiempo a darle y con el escaso tiempo que le dimos para hacerlo y por supuesto también a Jesús, que no solo fue mi compañero para programar todas las físicas del videojuego, si no que además hemos aprendido el uno del otro ciertos trucos y por enseñarme "La panacéa" de Unity3D, ciertos trucos que mostaré mas adelante en el blog sin duda.

Y finalmente gracias a todos los asistentes por haber jugado y disfrutado del videojuego, por dejarme disfrutar de vuestro videojuego y por todos los ratos que hemos tenido juntos durante todo el fin de semana, sencillamente inolvidable.

¡Nos veremos próximamente!

sábado, 29 de marzo de 2014

FamiliarGameJam: Dia 2

Apurando hasta el último minuto, despejando un poco la mente escribiendo en el blog una vez mas puedo decir que, a pesar de varios quebraderos de cabeza y varios cambios, el videojuego sigue su cauce, esperamos poder terminar toda la jugabilidad antes de ir a dormir hoy.

Para quien quiera ver un pequeño avance, a pesar de que no quiero mostrar aquí la jugabilidad del videojuego, si que mostraré a nuestro personaje principal un poco de incógnito.

Ayer se me olvidó decir que, además de que el videojuego tenía como temática "Objetivo: Morir", hay una complicación extra que es hacer el videojuego multiplayer y como opciónal, para la guinda del pastel, un "Momento zen", el cual se ha dado de referencia el final de un videojuego de Master System llamado "Enduro Racer".


Dicho esto seguiré con mi parte, pero no sin antes enseñar lo prometido, a nuestro personaje principal el cual podréis ver mañana esperemos que disfrutando el juego que entre otras cosas, nos está costando dolores de espalda y sobrecalentamiento cerebral, aunque sarna con gusto no pica.

¡Soy un Slime!
Mañana podréis ver la interactuación de nuestro querido personaje, espero que os guste.

viernes, 28 de marzo de 2014

FamiliarGameJam: Dia 1

Empezamos la GameJam al fín, el tema elegido final entre todos los disponibles fue:

Objetivo: Morir

Realmente me parece un tema bastante divertido y que, aplicarle un buen gameplay puede suponer un buen quebradero de cabeza, y contando que tenemos 48 horas para ello, no hay mucho tiempo para pensarlo.

Actualmente ya estamos trabajando en ello y espero mañana poder mostrar algún resultado por aquí, hoy muy a mi pesar no dispongo de mucho tiempo para escribir una entrada al respecto, lo que si diré será que entre todos los temas, cuales fueron mis preferidos:

jueves, 27 de marzo de 2014

¡Mañana la familiargamejam!

¡Al fín llega el fin de semana!



Y aunque como todo trabajador podría estar deseando que llegue el fin de semana para descansar, muy lejos de esa realidad, estoy deseando que llegue el fin de semana para darlo todo, para que tanto yo como mi futuro equipo de desarrollo improvisado para este fin de semana, hagamos un videojuego genial.

Siento repetirme con tantas entradas sobre esto, pero realmente es algo que estoy deseando y que seguro que solo me aportará cosas buenas, además de que, ya que tendré libertad total sobre mi código expondré aquí las cosas que considere mas interesantes que se me hayan ido siendo necesarias a tener en cuenta y a poder ser tutoriales al respecto.

Este fin de semana evidentemente, los tres días serán entradas resumiendo un poco como está saliendo todo en la gamejam, espero que sean tan positivas o más de lo que realmente espero.

Dicho esto, apago mi portatil desde el que escribo estas entradas diariamente ya que se viene conmigo mañana a conocer el resto del equipo.

¡Nos vemos en la gamejam!

miércoles, 26 de marzo de 2014

Podcast sobre Unity3D

 

Una de mis múltiples aficiones es escuchar podcasts de diversos tipos y autores, casualmente me he encontrado con este sobre Unity3D entre otras cosas, como crowfoundings, quedadas, etc...

¡Escucha y aprende!

Dado a que este fin de semana llega mi gran esperada Gamejam, he decidido darle mas caña aún a Unity3D estos días ya que será la herramienta con la que quiero desarrollar allí, y aquí un podcast en especial para quien no sepa muy bien como va todo el mundo del desarrollo de Unity3D, una gran parte de estas dos horas de podcast os explicarán diversas cosas sobre Unity3D que espero que mas de uno os sirva de ayuda.

Siento que estos días no pueda poner muchos mas tutoriales u opiniones pero realmente he estado sumamente atareado y lo estaré hasta el domingo, así que a partir del lunes prometo un contenido mucho mas extenso, dedicado y por supuesto, con todas las ganas de siempre de escribir en este blog.

martes, 25 de marzo de 2014

Curso gratuito de gamificación

Uno de los objetivos de este blog es enseñar, al menos desde mi punto de vista sea mejor o sea peor, pero enseñar tanto a desarrollar un videojuego como a planificarlo de diferentes maneras, pero al fin y al cabo, soy una persona que se basa en su propia experiencias y sus propios gustos, hoy en cambio será un punto de vista diferente ya que es un curso impartido por otra persona.



Aquí os muestro un curso totalmente gratuito que se está impartiendo on-line llamado: Diseño, Organización y Evaluación de videojuegos y gamificación.

lunes, 24 de marzo de 2014

¡Este fin de semana a la FamiliarGameJam!



Ya quedan pocos días para ir a la gamejam, realmente tengo muchas ganas y espero disfrutar, aprender y de lo aprendido, poder enseñar aquí tanto lo bueno como lo malo ya que en 48 horas evidentemente el videojuego no será una maravilla pero pienso dar todo lo que mi cuerpo aguante.

Tengo ganas de saber la temática que se dará, los equipos que se formarán y ver de qué soy capaz con personas que no conozco de absolutamente nada, ya que, trabajar en equipo es algo bastante valorado y por lo tanto, si sabes trabajar en equipo con personas que no conoces ¿Como llegarás a trabajar en equipo con personas que sabes como trabajan y como coordinarte con ellos?

domingo, 23 de marzo de 2014

¡Estrenando Facebook!

Una vez mas, a estrenar cuenta en otra red social, así que si os resulta mas cómodo acceder a las entradas de esta web a través de facebook pues podréis acceder al contenido desde ahí sin problema, así que ya basta de escusas ¿A que esperáis para empezar a desarrollar vuestros propios videojuegos?

https://www.facebook.com/pages/Hagamos-videojuegos/441840589253013

Yo solo estoy dando toda la información que está en mi mano para ayudaros a crear vuestro videojuego, pero el paso final lo dais vosotros.

Aprovecho esta entrada para decir que dentro de unos días empieza la gamejam a la cual pienso asistir y que podréis encontrarme por allí, para los que no podáis asistir que no os quepa duda que aquí haré resumen del día a día ¡y a ser posible con alguna foto del evento!

sábado, 22 de marzo de 2014

Videojuegos de realidad alternativa

Muchísimas veces me he quejado de que hoy día se dedican a explotar nombres de videojuegos, gameplays mas que aborrecidos, originalidad cada vez mas deficiente...

En cambio no he aportado muchas ideas, que si bien deben de salir de cada uno, un empujoncito nunca nos viene mal, aunque si que he dado ideas de recursos que usar con la gran cantidad de hardware a nuestra disposición, también estaría bien dar una pequeña idea que creo que, a pesar de que se han hecho varios videojuegos con ello, ni se ha explotado lo suficiente, ni sería "aborrecible" ya que, dentro del mismo podemos basarnos en una infinidad de cosas, tantas como han pasado, están pasando y pasarán en un futuro, hoy voy a proponer una idea de videojuego, un videojuego de realidad alternativa.

viernes, 21 de marzo de 2014

Friday night brainstorming

Esta noche parece que estaré pegado al pc a raiz de demasiados proyectos, así que a centrarme en ir acabando lo que pueda, tengo varios videojuegos pendientes de acabar que a medida que tengo tiempo y me llega la inspiración le dedico tiempo a uno o a otro, parte de estos videojuegos de los que aún no puedo contar nada, están escritos en esta web ya que, aunque quizás con algunos pequeños cambios amoldándolos al proyecto, por regla general están aquí expuestos trozos de código funcionales que yo mismo estoy usando.

Poco a poco me gustaría ir desvelando proyectos, dar pequeñas pruebas de videojuegos que tengo en mente y en desarrollo, e incluso a poder ser, un pequeño feedback por parte de las personas que leéis este blog, realmente no busco ver comentarios de personas que apoyen o no el blog, no busco dinero, realmente consideré una tontería dejar publicidad en el blog y la he eliminado, la finalidad que intento llevar a cabo no es otra que ir mostrando mis avances aquí y por lo cual, generar contenido en un blog que, aunque he sufrido algunos días para mantenerlo, sigo aquí, al pie del cañón, con intencion de seguir sin duda alguna.

Esta noche estoy intentando concretarme a mi mismo mis ideas, tengo varios videojuegos definidos, algunos de ellos mas que otros, actualmente estoy haciendo videojuegos también con otras personas, aparte de mi desarrollo personal, si hay algo que me gusta, es trabajar en equipo.

Así que me hago un par de preguntas a mi mismo y creo quien realmente quiera dedicarse a esto también debe hacerselas en algún momento de su vida, ¿Estoy dando pasos en el sentido correcto o debo redirigir un poco mi camino? ¿Realmente puedo abarcar tantos proyectos a la vez?

En el primer caso, al menos de momento creo que me estoy ubicando bastante bien, estoy haciendo un blog que, en apenas tres meses ha conseguido una cantidad de visitas bastante amplia cosa que me satisface por el mero hecho de haber podido ayudar a alguien con cualquiera de mis tutoriales o haber hecho pensar, debatir o simplemente entretener al lector o lectora de dicha entrada.

En el segundo es donde quizás reside mi mayor problema, actualmente tengo pensados cuatro videojuegos de los cuales estoy dando pequeños pasos, un par de plugins de los cuales, uno que estaba casi terminado me di cuenta de que podía optimizar el código y reestructurarlo me llevaría tiempo y de momento está directamente abandonado, un par de proyectos de un equipo de desarrollo que poco a poco está intentando dar un fruto lo mas aceptable posible, además de mi trabajo como desarrollador de aplicaciones en Unity3D y por si todo eso fuese poco, estoy haciendo una aplicación para una asociacion en tiempo record en una tecnología que descnozco y que, aunque bien me parece interesante, quizás entre otras cosas me aporte experiencia para otro framework que ya hablé en su día que pensaba tratar aquí pero que por cuestiones de tiempo no he podido ponerme a ello.

No voy a darme excusas a mi mismo ya que eso si que sería totalmente absurdo, reconozco que este blog es uno de los motivos por los que "pierdo" parte de ese tiempo, pero a su vez me está aportando una serie de cosas vitales para mi desarrollo personal que al fin y al cabo es lo que importa.

Como dato final, me gusta el nombre de esta entrada, quizás uno de mis videojuegos se llame de una forma similar.

jueves, 20 de marzo de 2014

Novedades en Unity3D 5

Ya hay especificaciones de Unity3D 5, realmente es bastante interesante, hay muchas mejoras que me parecen muy interesantes, entre las mas destacadas están:

-Mejoras en los shaders (materiales y efectos en materiales)
-Iluminación global en tiempo real en todas las plataformas (PC, Mac, Android, etc.)
-Mejoras en los sistemas de sonido.
-Un nuevo sistema para la plataforma web: WEBGL
-Editor de Unity para sistemas de 64 bit.
-Unity Cloud, un nuevo sistema de promoción de los productos.

miércoles, 19 de marzo de 2014

Unity3D scripting: Descargar datos con JSON

Este script será muy util a todo aquel que quiera conectar su videojuego con una base de datos en la nube a través de peticiones a servidor con JSON, el cual no voy a explicar en que consiste detenidamente, pero básicamente es una forma de devolvernos los datos en forma de texto desde la base de datos en la nube a nuestra aplicación.

Para ello, he usado una web de pruebas llamada http://www.jsontest.com/ a la cual se le pueden hacer peticiones de prueba con JSON y un plugin gratuito llamado SimpleJSON el cual si pinchais en el enlace no solo descargaréis el plugin necesario si no algunos ejemplos, pero precisamente uno que parece que no viene integrado es para descargar un JSON y mostrarlo así que voy a facilitar aquí un pequeño trozo de código para mostrar que fácil es descargar un JSON y extraer sus datos.

En primer lugar diré que este tutorial necesita corutinas las cuales si no sabes como funcionan puedes visitar este enlace: Tutorial de Corutinas

martes, 18 de marzo de 2014

Retrospectiva: Portadas de videojuegos

Hay ciertas cosas que se van perdiendo con el tiempo, las portadas de los videojuegos es quizás de las mas tristes perdidas que estamos teniendo aunque en parte con razones obvias.

Partimos de que hoy día, los videojuegos para móviles no tienen ninguno una versión física del videojuego y que igualmente, en steam te compras los videojuegos y tampoco llegas a ver la portada real del videojuego, de hecho tengo varios videojuegos que he jugado y disfrutado de los que desconozco la portada, y en parte esto es una lástima, hay muchas portadas de videojuegos que son geniales y otras... que no tanto, pero igualmente decían mucho de un videojuego, hasta el punto de que llegabas a alquilar/comprar el videojuego porque su portada te parecía buena.

Dicen que nunca juzgues un libro por su portada pero ¿Un videojuego?

lunes, 17 de marzo de 2014

CodeCombat, ¡Aprende a programar jugando!

Hoy va otra publicidad gratuita por parte de la casa, pero por supuesto es información interesante para quien realmente quiere aprender, en este caso es para aprender a programar en Javascript que, para quien no sepan absolutamente nada de programación le enseñará las nociones básicas mientras juegas por lo cual es un circulo vicioso, ¡podrás acabar programando tu propio videojuego gracias a que un videojuego te ha enseñado a programar!

¿Quien dijo que no se puede aprender jugando?

domingo, 16 de marzo de 2014

¡Hagamos videojuegos! Arkanoid básico con físicas 2D en Unity3D

No había usado la física de 2D en Unity3D, aunque el resultado ha sido un poco mediocre, no he podido llegar a completarlo como me gustaría pero quería intentar hacerlo en unas horas, hoy apenas he podido estar delante de la pantalla para tiempo de ocio a causa de trabajo muy a mi pesar.
¡Mi hijo!
Igualmente dejo un repositorio con unos breves comentarios y demostrando que, con muy poco se puede hacer un videojuego ya que cuenta con apenas cuatro scripts, una física en 2D y en definitiva, un poco de lo básico, quien esté empezando con Unity3D y quiera hacer un videojuego 2D, ahí tiene una pequeña referencia que ya mejoraré con algo mas de tiempo.

sábado, 15 de marzo de 2014

¡Preparándome para la GameJam!

Hoy he estado pensando que bueno, para este evento para el que quedan dos semanas tengo que ver de que seré capaz cuando llegue el día.

Así que, posiblemente mañana intentaré hacer un videojuego muy muy pequeño, muy básico, quizás algo como un flappy bird, algo que realmente solo me lleve unas horas y que pueda considerar un videojuego completo aunque mejorable.

Sin una gran cantidad de scripts, ver cuanto puedo llegar a hacer en unas horas, una pequeña auto prueba, un reto personal, algo que me demuestre a mi mismo que estaré a la altura de una GameJam y por qué no, mostrar aquí mismo como hacer un videojuego en unas cuantas horas.

viernes, 14 de marzo de 2014

Cyberpunk GameJam 2014

Si hay un género que me gusta especialmente, ya sea para un videojuego, una película o un libro, es sin duda alguna, el cyberpunk.

Para quien no conozca el género, hay una película icónica para este género, Bladerunner, conocida por muchos y quien no la conozca debería de ver esa película (o leer el libro en el que está basado) por decreto ley.

El cyberpunk se trata de un subgénero de la ciencia ficción, conocido por su enfoque en un futuro distópico con alta tecnología y bajo nivel de vida y toma su nombre de la combinación de cibernética y punk. Mezcla ciencia avanzada, como las informática y la cibernética junto con algún grado de desintegración o cambio radical en el orden social.

Me encantaría vivir ahí
Dicho esto, curiosamente desde hace un par de días estoy ya apuntado a una GameJam que estoy deseando de que llegue el día y poder reflejar aquí mi experiencia de esos dos días, pero ahora acabo de descubrir una a la cual no he podido apuntarme porque cerró el plazo de inscripción hace unos días pero quiero estar atento a ver como se hará.

A pesar de no haber podido participar en esta GameJam ya que el plazo de inscripción terminó el día diez de este mismo mes, desde luego me han dado unas ganas bestiales de hacer mi propio videojuego cyberpunk, he tenido una semana atroz, que realmente no ha acabado, mañana tengo que seguir con horas extra, proyectos que tengo con mas personas, y en fín, cosas que no afectan para nada a este blog y a mis entradas diarias.

En esta gamejam se debe hacer un videojuego basado en esta imagen que dan aquí:

Toma, hazme un videojuego de esto.
Quizás aunque no esté apuntado a la gamejam, no es motivo para no hacerlo, si quieres hacer algo ¿Por qué no hacerlo? Hay que tener en cuenta que realmente no da una información muy alta pero al menos a mi si que me da varias ideas para hacer un videojuego, desde uno de caida libre, pasando por uno de seguir a alguien al estilo mirror edge o una aventura gráfica como Snatcher, del gran Hideo Kojima y sobretodo, si hay algo que no dudaría en poner, es chiptune como banda sonora.

Creo que puede ser un buen ejercicio mental para ver tu capacidad de imaginación y creación de un gameplay, ¿Que tipo de videojuego harías basado en esta imagen?

Enlace: http://itch.io/jam/cyberpunk-jam

jueves, 13 de marzo de 2014

Realidad aumentada en los videojuegos

Este concepto me parece muy interesante por varios motivos, además de que es una de las cosas que mas hago en mi trabajo y puedo ver el potencial que podría llegar a tener.

Este factor podría ser muy interesante en cualquier videojuego ya que extrapolamos el videojuego a nuestro mundo, podemos atravesar la cuarta pared y en especial a un niño poder hacerle creer que realmente hay algo que no se puede ver a simple vista.

¿Que es la realidad aumentada?
Es añadir a nuestro entorno real algo ficticio, por ejemplo un objeto en 3D, que a través de una cámar apodamos verlo y movernos y ver que está ahí, es el ejemplo mas típico pero se puede sacar mucho mas jugo que la imagen, como sonido u olor.

miércoles, 12 de marzo de 2014

Unity3D Scripting: Object Pool

Una vez mas volvemos con un tutorial breve y sencillo de Unity3D, realmente de aquí podemos sacar mucho, muchísimo código, pero quiero dar un ejemplo sencillo para optimizar recursos dentro de nuestro videojuego y que realmente tiene mucha mas ciencia que esto pero servirá a mas de una persona o al menos ayudará a entenderlo.

¿Que es un Object Pool?
Object Pool (Piscina de objetos) es un patrón de diseño para el desarrollo de software. El patrón object pool es un patrón de diseño de software que usa un conjnto de objetos inicializados preparados para su uso. Esto es más efectivo normalmente que creando y destruyento los objetos bajo demanda. Un cliente del pool le pedirá un objeto para realizar las operaciones con el objeto. Cuando el cliente termina retorna el objeto al pool para que lo retenga hasta que vuelva a necesitar usarse. Es decir, los objetos no se crean (salvo la primera vez) ni se destruyen, simplemente se van reciclando.
¿Para que sirve?
El ejemplo mas claro es en un videojuego que haya disparos, imagina un videojuego de naves, cada disparo sería una instancia de una bala nueva, pues en vez de estar constantemente instanciando balas nuevas, las tienes inactivas fuera de la pantalla y las reciclas una y otra vez.
¿Por qué?
Porque es mas rápido acceder a un contenido que ya está cargado en memoria que buscar un sítio en la memoria donde almacenarlo, almacenarlo en ese sitio y luego leerlo.
Dicho todo esto vamos con una pequeña muestra de lo que podríamos hacer.

Primero he creado esta estructura de objetos para hacer la prueba:

Objetos de prueba
 Una vez creada la estructura empezamos con el código:

using UnityEngine;
using System.Collections;

public class PoolManager : MonoBehaviour {
 public bool NewShoot(GameObject shooter, string nameOfType)
 {
  Transform t = transform.FindChild(nameOfType);

  for (int i = 0;i<t.childCount;i++)
  {
   if(!t.GetChild(i).gameObject.activeSelf)
   {
    t.GetChild(i).gameObject.SetActive(true);
    return true;
   }
  }
  return false;
 }

 public void NewBullet(string nameOfType)
 {
  Transform t = transform.FindChild(nameOfType);

  GameObject g = Instantiate(t.GetChild(0).gameObject) as GameObject;
  g.transform.parent = t;
 }
}
Bien, este script para probarlo se necesita hacer llamada a sus métodos públicos. voy a explicar ambos paso por paso:

public bool NewShoot(GameObject shooter, string nameOfType)
En este caso estamos haciendo un nuevo disparo, le decimos que objeto es el que está disparando y el tipo de bala que va a disparar, ya que en este "Object Pool" he creado mis propias categorías que ahora enseñaré.

Se le podría estar pasando por ejemplo el objeto nave y el tipo de bala "normal".

Transform t = transform.FindChild(nameOfType);
esta variable 't' se le asignará al típo de bala que hemos buscado, de manera que será pues bala de tipo normal, o de tipo especial o como la hayamos nombrado.

for (int i = 0;i<t.childCount;i++)
Aquí vamos a recorrer todas las balas que tengamos de ese tipo

if(!t.GetChild(i).gameObject.activeSelf)
Comprobamos que la bala NO esté activa, de ser así pues cumplirá la condición y se ejecutarán las líneas siguientes.

t.GetChild(i).gameObject.SetActive(true);
return true;
Activará la bala que ha encontrado inactiva y retornará true avisando a quien ha llamado a esta función que efectivamente ha podido habilitar una bala y dejará de buscar en ese bucle.

¿Que pasa si nos quedamos sin balas que activar?
En el hipotético caso de que no sepamos cuantas balas como máximo va a poder usar esa nave o ese pistolero o cualquier objeto instanciable no pasa nada, seguímos con el código.


return false;
En caso de que no haya encontrado ninguna retornará false y aquí tenemos esta otra función para estos casos.

public void NewBullet(string nameOfType)
Un método para crear una nueva bala del típo que le digamos en ese string llamado nameOfType.

Transform t = transform.FindChild(nameOfType);
Buscamos de nuevo el objeto del tipo que queremos crear la bala

GameObject g = Instantiate(t.GetChild(0).gameObject) as GameObject;
Instanciamos una bala nueva, esta bala o cualquier objeto que instanciemos será instanciada en la raíz de la lista de objetos, pero nosotros, para usar este gestor de objetos deberíamos de conservar la jerarquía que hemos visto en la imagen de arriba así que para asignarle un "padre" a este nuevo objeto instanciado usaremos lo siguiente

g.transform.parent = t;
Y así este objeto quedará guardado en nuestra jerarquía y tendremos una bala mas a la que acceder en caso de necesitar mas.

Evidentemente esto es aplicable a cualquier cosa que tengamos que generar sobre la marcha y vayamos a usarlo reiteradas veces, y por supuesto es aplicable a cualquier videojuego e incluso cualquier software en general.

Si, este código tiene bastantes carencias pero lo hice en una tarde para hacerme el apaño, quizás algún día lo mejore y publique aquí algunas mejoras.

Por último, espero que haya servido de ejemplo para entenderlo un poco mejor y si quieres uno realmente bastante mas completo hay varios por internet, algunos de pago y otros gratuitos que realmente los he visto bastante decentes.

martes, 11 de marzo de 2014

FamiliarGameJam II: ¡Hagamos videojuegos!

Ayer confirmaron la fecha de una GameJam en Sevilla, a la cual, quien os está dando esta noticia ya tiene reservado su pequeño hueco y espera disfrutar del buen ambiente y sacar un buen resultado del evento el cual por supuesto podréis ver por aquí los días del evento.

Este evento consistirá en crear un videojuego en 48 horas, en el cual tendrémos que elegir de entre varios temas, tres de ellos para que al final, salga un tema preferido para hacer el videojuego, los temas son:

  1. Juego que tu abuela te recomendaría si acabara de volver del futuro.
  2. El ruido contiene todas las frecuencias. El blanco contiene todos los colores. 
  3. Bucle dentro del bucle. 
  4. Desencaja las piezas.
  5. Una puntuación más alta no es necesariamente mejor.
  6. Sinestesia y ritmo.
  7. Papeles invertidos.
  8. Objetivo: Morir.
  9. Encuéntralo.
  10. Mundo subterráneo.
Para ver mas información  podéis verlo a través de http://gamejam.famfest.info.

lunes, 10 de marzo de 2014

Tributos: 100 Yen: Japanese arcade experience

Hoy he encontrado un gran tributo a los videojuegos de antaño, llamado 100 Yen: Japanese arcade experience por ser el costo que tenía una partida en una recreativa en el país del sol naciente.

En un metraje de sesenta y ocho minutos nos enseña la historia de los salones recreativos en el país del sol naciente y la cultura de los nipones con los videojuegos.

domingo, 9 de marzo de 2014

¡Ganador del sorteo!

Después de buscar algún programa que haga el sorteo y comparta en twitter para poder asegurar que el sorteo ha sido realizado sin ningún tipo de tongo, ¡Felicidades al ganador!

Solo decir que espero que el ganador disfrute del videojuego tanto como lo he disfrutado yo y a los que no lo ganásteis ¡suerte la próxima vez!

Aprovecho esta entrada para comentar que a partir de la semana que viene también habrá tutoriales de Cocos2D e intentaré incluso algun tutorial fuera del ámbito de la programación aunque sea la parte que mejor controlo pero si quieres hacer un videojuego, debes conocer, al menos un poco, el resto de los componentes que forman un videojuego.

¡Felicidades de nuevo @ortinho5!

sábado, 8 de marzo de 2014

La importancia del gamepad en los videojuegos

El tema de hoy es mas importante de lo que a priori pueda parecer para muchas personas, a la hora de diseñar un videojuego, es imporante saber, por norma general, con qué va a contar el jugador a la hora de interactuar con tu videojuego.

Aunque no lo parezca tiene no solo una gran importancia si no que incluso, un videojuego, solo por tener un tipo de pad concreto puede no ser tan cómodo de jugar y perder gran cantidad de jugadores tan solo porque tal y como tiene que interactucar con tu videojuego es bastante malo.

Hoy mostraré mi punto de vista sobre los GamePads, los mas acertados, los menos e incluso algunos que nadie tiene en cuenta a pesar de que son bastante útiles.

viernes, 7 de marzo de 2014

¿Que son los videojuegos Indie?

Hoy día está muy de moda jugar videojuegos indie incluso llegando al punto de que, haya ciertos videojuegos que se "autoproclamen" indie sin serlo, por llegar a cierta audiencia que cada vez es mayor, al fin y al cabo, como el resto de las modas, es simplemente una tendencia y todos queremos lucrarnos de ello.

Así que sin más pasaré a explicar que tipo de videojuegos son realmente indie, por qué se les llama así y mucho mas lejos de lo que aparentan en algunos casos, no son necesariamente de apariencia retro.

jueves, 6 de marzo de 2014

La rejugabilidad en los videojuegos

Quiero empezar esta entrada aclarando que, después de finalizar un videojuego, el videojuego no se desintegra ni dejará de ser bueno, con esto quiero decir que si, cualquier videojuego puede volver a jugarse, pero hay algunos que pierden su esencia y otros no tanto, y ahí, en este preciso punto, es donde vamos a centrarnos hoy, en la rejugabilidad de nuestro videojuego.

miércoles, 5 de marzo de 2014

Inteligencia artificial en los videojuegos: Introducción

Este tema da mucho, pero que muchísimo de que hablar, desde luego, escribir solamente una entrada para hablar de ello sería tan extensa que tardaría probablemente semanas en terminarla.

En primer lugar, hablar de inteligencia artificial a la mayoría de las personas nos viene a la memoria determinados software con los que puedes mantener una conversación mas o menos coherente.

Ahora bien, para empezar a hablar sobre inteligencia artificial deberíamos pararnos a reflexionar en lo que vendría siendo la inteligencia de por si.

Inteligencia ¿artificial?

martes, 4 de marzo de 2014

Unity3D Scripting: Raycast y colisiones

Esta vez será un breve tutorial donde enseñaré como detectar una pulsación del ratón en la pantalla y ver si ha colisionado con un objeto.

Este tutorial es totalmente aplicable a pantallas táctiles con solo cambiar un par de líneas.

lunes, 3 de marzo de 2014

Videojuegos vs Libros

Hay un tema que me llamó mucho la atención en una ocasión, cierta persona me dijo que un videojuego jamás podría superar un libro, a lo cual mi opinión es totalmente distinta de ello, no solo un videojuego puede superar un libro si no que además puede superar a cualquier tipo de arte.

Ojo, con esto no quiero menospreciar un buen libro o un buen cuadro, pero un videojuego puede dar ciertas cosas que un libro o un cuadro no podría, por ejemplo la interactividad con el mismo.

Me explico, imaginemos un libro de ciencia ficción, un libro que trata sobre el espacio, naves espaciales y el comandante de una tripulación que viaja por el espacio, al leer un libro, incluso teniendo ilustraciones, puede hacerte sentir emociones por los personajes, puede hacerte sentir que realmente estás allí, pero, con un videojuego al menos aparente al jugador, eres tu quien dirige la aventura, eres tu quien realmente toma las decisiones o al menos aparentemente, o si igualmente las decisiones vienen tomadas, igualmente es mucho mas fácil llegar a un niño o adolescente con la historia contada de manera interactiva que con un libro.

domingo, 2 de marzo de 2014

Tributos: Sdatcher, el radio drama inspirado en Snatcher

Hoy he encontrado una auténtica joya, algo que sencillamente espero que disfrutéis como pienso hacerlo yo.

Posiblemente uno de los mejores videojuegos producidos por la mente del gran Hideo Kojima, Snatcher, el cual no es muy conocido a pesar de ser de gran calidad, fue un videojuego ambientado en un mundo cyberpunk basado en bladerunner, este videojuego no fue muy conocido ni jugado porque para aquel entonces, en todas las versiones tuvieron la mala suerte de estar solo para PC y mas adelante para MegaCD, SEGA Saturn y Playstation, de las cuales, las dos últimas no salieron del país del sol naciente.

Para hacerse una idea, la versión  de MegaCD, cuenta con un coste aproximado de 400$ ya que es la mejor versión que salió a europa a pesar de estar bajo algunas censuras.

sábado, 1 de marzo de 2014

Creando nuestro Storyboard

Para crear un videojuego, en el caso de que sea lo suficientemente complejo, necesitará un Storyboard.

En caso de no saber que es un Storyboard, son los bocetos de escena por escena que pasará en cada parte del videojuego.
Ejemplo de Storyboard de Kingdom Hearts