Archivo de la etiqueta: .NET

The Esc4pe, un “primitive shooter” hecho en Unity3D

Da gusto  escribir un post en el blog sobre un juego desarrollado y terminado, y espero que vengan más tras este :) 

Como algunos sabréis, bien por que leísteis mi resumen anual (o bianual en este caso) que hice a principios de Enero, o bien por que lo sabéis directamente de mi en persona, me encuentro desde finales de Noviembre del año pasado cursando un master de desarrollo de videojuegos con Unity3D. Como parte del master, cada mes tenemos un proyecto planteado por los profesores a modo de practica para cubrir la materia dada en clase, ademas del proyecto final (de 2 a 3 meses de desarrollo). Todos estos proyectos puntúan nota y son obligatorios.

Por un lado estoy aprendiendo a fondo (por fin!) a usar Unity3D gracias a  la experiencia y conocimientos de los dos profesores que tenemos (me ha venido de lujos los primeros meses para pulir lo que ya sabia y aprender nuevas cosas que desconocía o usaba mal), y por otro este master me obliga si o si a sacar adelante varios proyectos de pequeños juegos, que me vienen de perlas para coger experiencia y de paso ampliar el portfolio (y más teniendo en cuenta mi parón gamedevelopero de estos últimos años). Para mi esto ultimo es como participar en una gamejam de 3 semanas cada mes pero sin la opción de tirar la toalla. Sacas el juego si o si. Sumándole el detalle de que no estoy trabajando mientras curso el master, esto me permite dedicarle prácticamente todo el día a las practicas, lo que me permite no solo completar los requisitos básicos y los opcionales de cada practica, si no que me permite ir más allá y tratar de desarrollar algo más avanzado. Las practicas del master se han convertido en todo un reto para mi, y ahora mismo tengo el resultado de la primera: The Esc4pe.

Seguir leyendo The Esc4pe, un “primitive shooter” hecho en Unity3D

¡Hola 2017! Resumen 2015-2016 (resumen de proyectos)

Hace mucho que no escribía un post en el blog (demasiado tiempo!). Lo cierto que he estado demasiado inactivo estos 3 últimos años tanto en el blog como en las redes sociales. En el blog me he limitado hacer los resúmenes anuales del Freakend y a publicar mis galerías de Flickr que voy subiendo (he estado más activo en fotografía que en desarrollo de juegos). En las redes sociales, Twitter y la pagina del blog en Facebook (y cuando me acuerdo en Google+), retuitear y compartir noticias o artículos interesantes que voy encontrando.

En general prácticamente no he publicado contenido propio sobre desarrollo de juegos, ya que he estado la mayor parte de este tiempo alejado en cuanto a proyectos personales se refiere en mis ratos libres. Falta de motivación y problemas personales han sido las principales razones que me han mantenido alejado del que durante 15 años ha sido mi hobbie principal y en los últimos años mi meta profesional. Y lo peor de todo es, tras tanto tiempo inactivo, volver a intentar retomar el habito de hacer cosas en casa en mi tiempo libre es tarea harta difícil. De todos modos no he estado totalmente alejado del mundo del desarrollo de juegos en estos últimos años, aunque tampoco ha sido como a mi me hubiera gustado. Así que siguiendo el consejo de un amigo, voy aprovechar para hacer un resumen de esta etapa y contaros en que he estado metido. Seguir leyendo ¡Hola 2017! Resumen 2015-2016 (resumen de proyectos)

Como configurar correctamente el icono a la ventana e instancia de nuestro proyecto de MonoGame en Windows

Trabajando en MonoGame sobre Windows nos encontramos con que el proyecto que se genera con la plantilla de proyecto que ofrecen para Visual Studio es un proyecto de Aplicación de consola en vez de Aplicación para Windows. Esto es por que MonoGame genera la ventana del programa mediante el framework de OpenTK (Open Tool Kit Library) generando así una ventana externa, esto es similar a lo que hace XNA mediante la API de Windows. El problema que esto conlleva es que al ejecutar el juego nos aparecerá la ventana de consola, que MonoGame utiliza como salida de depuración, y la ventana del juego. El problema es que icono del proyecto se aplica a la ventana propia de la aplicación, la consola de texto, y no a la ventana del juego, la que genera OpenTK.

Seguir leyendo Como configurar correctamente el icono a la ventana e instancia de nuestro proyecto de MonoGame en Windows

Sencillo motor de colisiones 2D para XNA/MonoGame

Una de las cosas que siempre se me han resistido a la hora de intentar hacer un juego plataformas 2D, y como a mi a mucha más gente, es el implementar correctamente las colisiones y su respuesta (el detectar paredes o suelos y saber ubicar correctamente el objeto cuando colisiona con el entorno).

Cierto es que hoy día existen muchas alternativas para evitar programarte un sistema de colisiones y respuesta para un juego de plataformas. Existen varios motores de físicas 2D para múltiples plataformas y lenguajes, Box2D por ejemplo, que lo implementan varias herramientas de desarrollo de juegos como Stencyl y que es muy popular en juegos Flash, o Farseer Physics Engine para XNA, que se ha usado en varios proyectos de XBox360 y Windows Phone y que están portando a MonoGame. El problema, al menos con Farseer Physics Engine que es al que le dedique tiempo en su momento, es que me resulto extremadamente complejo de implementar y configurar todos los parámetros y propiedades que tiene así como lograr ajustar la escala de medida del sistema de físicas con la escala en pixeles en pantalla para poder dibujar un sprite acorde con su representación física. En definitiva, una API muy poco amigable para la mayoría de la gente.

Seguir leyendo Sencillo motor de colisiones 2D para XNA/MonoGame

Adiós 2012, hola 2013

Aprovechando la entrada del nuevo año quisiera aprovechar para resumir un poco lo que ha sido 2012 para mi, no en lo personal por que no es el lugar, pero si en lo referente a lo profesional, aunque me temo que no hay mucho que resumir.

2012 ha sido un año no especialmente bueno para mi, diversos problemas personales, entre ellas una depresión, han hecho que desaprovechara la mayor parte del tiempo de mi excedencia, tiempo en el que podía haber, no alcanzado pero si adelantado, muchos de mis objetivos que me propuse como objetivo de esta excedencia de 2 años. En pocas palabras, ha sido un año muy desaprovechado y escasamente productivo, al menos eso creo.

Seguir leyendo Adiós 2012, hola 2013

Serialización de datos en .NET: como exportar e importar datos de nuestro juego en archivos fácilmente

No hace mucho un compañero de los foros de Stratos-AD venia preguntando como podría implementar un sistema para guardar partidas de su juego en XNA y después volver a cargarlas, no en si el como el organizar los datos e información del juego y como gestionarlo en un archivo si no en si como podría exportar e importar fácilmente información a un archivo en disco. Esto me recordó que yo en su día, cuando empece a programar en .NET, me encontré con el mismo problema y que esto es una duda que a muchos nos surge.

En Visual Basic 6.0, donde estuve muchos años programando, esto era relativamente fácil ya que mediante las funciones integradas para gestionar la escritura y lectura de archivos en formato binario era tan fácil como pasar la propia variable de estructura de datos como parámetro a escribir o leer, Visual Basic 6.0 se encargaba de volcar en formato binario el contenido integro de la variable y despues permitía volver a crear la variable con el mismo contenido. Supongo que en C/C++ sera igual de directo, sin embargo en .NET ya no era tan fácil, no al menos de la misma forma. Aquí no podías llamar a las funciones de System.IO y decirle que te volcara la variable directamente en un archivo. Sin embargo si que existe una manera sencilla de hacer esto, mediante la serialización a XML.

Resumiendo mucho, la serialización a XML es un mecanismo que permite convertir una estructura de datos en una estructura de texto en formato XML. Este mecanismo esta presente en varias tecnologías de programación como .NET o Java. Yo voy a explicar mi ejemplo en .NET mediante C#.

Seguir leyendo Serialización de datos en .NET: como exportar e importar datos de nuestro juego en archivos fácilmente