jueves, 3 de septiembre de 2009

NienteGames.com, mi nueva web.

Llevaba ya mucho tiempo sin actualizar el blog. He tenido mis motivos, no os vayáis a creer, se han juntado varios factores que han impedido que le pueda dedicar tiempo a escribir tutoriales, incluso he tenido que dejar aparcado momentáneamente el juego que estoy desarrollando (espero que pueda retomarlo en las próximas semanas). Las horas extra, las vacaciones y el desarrollo de un proyecto personal han sido los motivos.

Precisamente del último de los motivos quería hablar hoy, por que tiene mucho que ver con el futuro de este blog.

He desarrollado una página web que llevaba bastante tiempo rondándome la  mente, la estoy desarrollando por fases, implementando distintas funcionalidades en cada una de ellas, la primera de las fases, que por cierto ya está on-line, es una base de datos de noticias sobre video juegos, la web se encarga de recoger todas las noticias de las distintas fuentes que tengo configuradas y se encarga de ordenarlas y mostrarlas de manera que puedas ver todas las noticas en un solo sitio, de manera organizada y pudiendo filtrar para la mejor organización de la información. Poco a poco quiero que se convierta en una comunidad de jugadores, donde todos podamos expresar nuestras opiniones.

Aunque aún he de mejorar el diseño y depurar pequeños errores que voy detectando, puedes visitar la web en www.nientegames.com

Espero que te guste, y si es así, ayúdame a que crezca la comunidad, recomienda la página entre tus amigos y coméntales que hagan lo mismo, dentro de poco se podrá interactuar con la web con nuevas funcionalidades.

También me podéis proponer funcionalidades en  el correo que tengo habilitado para ello: sugerencias@nientegames.com

¿Y por que afectará esto al futuro del blog? por que me estoy planteando crear una sección en la web para tratar el desarrollo de videojuegos, trasladando los contenidos de este blog a dicha sección.

viernes, 24 de julio de 2009

Top 10 de los juegos Community Games

Mayor Nelson ha publicado la lista de los diez juegos de la Community games más vendidos. La cosa va así:

1   Kodu Game Lab
2   RC-AirSim
3   Gamerbots:Third-Robot Shooting
4   myFishtank
5   Fireworks HD
6   A Perfect Massage
7   A Morons Challenge
8   Sketch
9   Urban Art Gallery
10  Shiatsu Massage

No estaría mal que publicasen el número de ventas…

miércoles, 22 de julio de 2009

Concurso de Ideas para el diseño de un videojuego

En la última newsletter de Microsoft que he recibido, me encuentro con este interesante concurso.

La idea consiste en diseñar un videojuego en el que se transmita la experiencia de ser sordo. El reto del diseño es conseguir que el jugador consiga experimentar lo que es el día a día de una persona sorda, sus dificultades (no oír el despertador, por ejemplo).

El diseño se tiene que realizar utilizando los avatares de Xbox 360 y debe reflejar el uso de la lengua de signos y del silencio como elementos representativos del juego.

Los premios son bastante jugosos:

o Asistencia, con gastos de inscripción, viaje y alojamiento, a la Game Developers Conference’10 (del 23 al 27 de Marzo de 2009 en San Francisco)
o El premio incluye billete en vuelo regular, traslados a/desde el aeropuerto, alojamiento en hotel de 3 estrellas y todas las tasas y costes de la conferencia anteriormente señalado.
o Si debido a circunstancias más allá del control de CEIEC éste es incapaz de proporcionar el premio indicado, se reserva el derecho de conceder otro premio de iguales características.
o Todos los gastos adicionales motivados por demora o negligencia por parte del ganador serán por cuenta de éste así como todos los gastos referentes a mejoras y extras que no correspondan con el premio detallado en las presentes bases.
• Incorporación al equipo de desarrollo del videojuego
o Desde la resolución del concurso y por un período de 10 meses participará en la revisión y adaptación del guión y en la supervisión de los diseños gráficos bajo la supervisión del director del desarrollo y del CEIEC.
o El desarrollo se podrá realizar de forma remota, pudiendo tener lugar además reuniones presenciales de coordinación del equipo, corriendo los gastos a cuenta del CEIEC.
o La incorporación al equipo es condición necesaria para el disfrute de la asistencia a GDC’10 y garantiza su aparición en los créditos del videojuego y la obtención de los correspondientes certificados.

+ información.

miércoles, 15 de julio de 2009

Mundo Indie - Número 2 de la revista DOID Magazine disponible

La asociación de desarrolladores DOID, de la que ya os he hablado alguna vez, lanza su segundo número de DOID Magazine, una revista en pdf totalmente recomendable que habla sobre el sector de los videojuegos en nuestro país.

He de destacar el articulo sobre XNA en el que hablan sobre la plataforma y sobre como crear y distribuir nuestro juego, y se nota que saben de lo que hablan, ya que los autores del articulo tienen dos juegos publicados en el bazar.

También encontraras noticias, entrevistas, post-morten… en serio, la recomiendo.

jueves, 9 de julio de 2009

Aprende a programar con Small Basic.

Para poder crear tu juego con XNA has de saber programar, eso es un echo. Por ese motivo, de vez en cuando y cuando el tiempo me lo permite, intento ir haciendo algunos tutoriales de programación general.

Si no sabes programar pero te gustaría aprender, para crear tu propio juego o cualquier programa que se te ocurra, puedes echarle un vistazo a este entorno que ha creado Microsoft para que la gente aprenda desde cero, sin tener ningún conocimiento previo.

Yo le he echado un vistazo y esta muy bien. Ahora si que no tienes excusa.

Mas información sobre Small Basic. Y más.

miércoles, 8 de julio de 2009

Nuevos ejemplos en Creators. Trabajando con Avatars.

Han actualizado la web de creators club para traernos algunos ejemplos de una de las funcionalidades añadidas en XNA 3.1, los avatars.

Así que si te interesa el tema ya estas tardando en descargarlos.

sábado, 27 de junio de 2009

Mundo Indie – Panda’s BIG adventure

Un agente secreto, que a su vez es un panda, solo podría mejorarse si el panda en cuestión, además fuese un ninja. La cuestión es que como agente secreto que es, se cuela en una base súper secreta del gobierno de turno y se topa con un lavabo portátil que a su vez es una máquina del tiempo, y que al ser usada, hace viajar a nuestro panda secreto. Ahora ha de recuperar piezas de la máquina para poder volver.

Al más puro estilo click and point de las aventuras gráficas de antaño (es lo que más me gusta del juego) hemos de ir resolviendo una serie de puzles, unos más sencillos y otros más complicado, que nos harán pasar un buen rato.

Nos tendremos que mover por distintos momentos temporales, recogiendo objetos de cada una de las etapas temporales en las que estemos y combinándolos entre ellos o usándolos en el escenario conseguiremos resolver las pruebas y por lo tanto conseguiremos las preciadas piezas de nuestra maltrecha máquina del tiempo.

No destaca en nada en concreto, pero te hará pasar un buen rato.

Jugar.

[6]

sábado, 20 de junio de 2009

Freak World

¡Nos atacan los zombis!, hasta en la oficina.

viernes, 19 de junio de 2009

Mundo Indie – Little Wheel

En un mundo de robots, lo peor que puede pasar es que se acabe la energía que los mueve. A causa de un trágico accidente, el generador de energía principal es desconectado y por lo tanto todos los robots se desconectan. 10.000 años más tarde y gracias al destino, eres alcanzado por un rayo que te devuelve a la vida aportándote la energía necesaria. Ahora tu misión es volver a conectar el generador para que todo vuelva a la normalidad.

Así empieza Little Wheel, un juego sencillo, que acabaras en pocos minutos, unos pocos minutos que te bastarán para quedar cautivado por su belleza.

El juego consiste en ir superando una serie de puzles muy sencillos a base de clics de ratón, en todo momento se te indica las zonas de acción, así que es imposible quedarse atascado en un puzle sin saber que hacer.

Gráficamente el juego es delicioso, bonito, sencillo, perfecto; los fondos sepia encajan a la perfección con los elementos del escenario en color negro, y las animaciones suaves y fluidas acompañan de una manera insuperable.

La música, una melodía jazz que acompaña a las mil maravilla a la acción del juego, es un poco repetitiva, lo que no quiere decir que se haga repetitiva.

El único fallo es que es muy corto.

Jugar!

[7]

jueves, 18 de junio de 2009

Buscando errores. Depurar un juego XNA (I)

Depurar es el proceso de encontrar y corregir errores en el código fuente de un programa, por lo tanto para llegar a buen puerto con nuestro juego es importantísimo tener un conocimiento mínimo para poder realizar esta tarea correctamente, así que empecemos.

Para empezar, ¿nunca te has preguntado que es la combo box que tenemos al lado del play? si, esa que pone Debug.

Esta opción nos permite seleccionar el modo en el que compilaremos, por defecto está en debug, y solo lo cambiaremos a Release cuando nuestro juego esté acabado y 100% libre de errores. Al compilar en modo debug, se habilitan una serie de cosas, como la carga de símbolos, que nos permitirá  analizar nuestro código mientras lo ejecutamos.

PUNTOS DE INTERRUPCIÓN

Los puntos de interrupción (break points) es lo que utilizaremos para indicarle al compilador que queremos que se pare en ese punto del código, podemos poner tantos puntos de interrupción como creamos convenientes, el código se parara cada vez que tope con uno. Para poner un punto de interrupción solo hay que ponerse encima de la línea de código y pulsar F9. Automáticamente veremos un circulo rojo a la izquierda de la línea, además esta se coloreara de rojo.

Saber detectar el mejor sitio donde poner un punto de interrupción te lo dará el tiempo y la experiencia…

Una vez tenemos todos lo puntos colocados, lo único que tenemos que hacer es ejecutar el juego, como he dicho antes, cuando el código se tope con uno de los puntos se parará, el Visual Studio se te pondré en primer plano y la línea donde se ha parado se coloreara de amarillo.

Una vez parado el código, podremos analizarlo, ver el valor de la variables y por lo tanto buscar los errores que nos pueda estar dando el juego.

VENTANA DE INMEDIATO

La ventana de inmediato es una ventana que se activa al entrar en modo de depuración, normalmente se encuentra en la parte de abajo del Visual Studio, en forma de pestaña. Esta ventana nos permite ver y modificar el valor de una variable en tiempo de ejecución, eso es, mientras ejecutamos el juego-

Para ver el valor solo tienes que escribir en ella el nombre de la variable con un interrogante delante, por ejemplo, si tenemos una variable que se llama vidas, podemos escribir “?vidas” e intro, y se nos mostrará por pantalla su valor.

Si no escribimos el interrogante, podemos asignar el valor de la variable, por ejemplo, nos puede estar pasando que cuando nos matan, el juego no resta la vida, por eso depuramos, para encontrar el por que, ponemos un punto de interrupción en el evento que se lanza al morir y nos ponemos a depurar, vemos que efectivamente no se esta restando la vida por el motivo X, pero queremos ver como se comportara cuando vidas llegue a cero, para eso escribimos “vidas = 0” y pulsamos intro y automáticamente la variable vidas pasará a valer 0, esto puede llegar a ser muy útil.

MOVIENDONOS POR EL CÓDIGO.

Hay una serie de teclas que nos permitirán movernos por el código mientras depuramos, estas son a mi entender las más importantes:

  • F10, avanza a la siguiente línea de código.
  • F11, avanza a la siguiente línea de código, entrando en los métodos si la línea es una llamada a un método.
  • F5, avanza hasta el siguiente punto de interrupción.
  • F9, establece un nuevo punto, en caso de estar ya activado, lo desactiva.

 

Mañana hablaré un poco más sobre como depurar…

 

Etiquetas de Technorati: ,

sábado, 13 de junio de 2009

Instalación y actualización de los proyectos a XNA 3.1

Para instalar XNA 3.1 solo hay que tener una cosa en cuenta, antes hay que desinstalar la versión 3.0, una vez hecho esto, solo hay que descargarlo e instalarlo.

Una vez instalado, al crear un nuevo proyecto de deja elegir si lo quieres crear con la versión 3.0 o la 3.1, por lo tanto, si quieres puedes seguir trabajando la versión 3.0, ¿pero entonces para que vas a actualizar? ¡eh!.

Actualizar tus proyectos a la nueva versión es muy sencillo, click derecho sobre el proyecto y seleccionas la opción de Upgrade Solution.

Ahora te aparecerán un par de pantallas más dándote la típica información de actualización, acepta y ya tendrás tu proyecto actualizado. ¿Fácil verdad?

Una lista de las novedades de XNA 3.1, ya iré comentando poco a poco alguna de ellas.

viernes, 12 de junio de 2009

Xbox LIVE Community Games cambia de nombre

Xbox LIVE Community Games, que como sabemos, es la sección dentro de LIVE donde se publican lo juegos creados por la comunidad (nosotros) va a cambiar de nombre para pasar a llamarse Xbox LIVE Indie Games.

Con movimientos como este cambio de nombre y nuevas características  como los ratings de los usuarios Microsoft pretende relanzar y darle un poco mas de protagonismo a la plataforma.

A mi, personalmente, el cambio de nombre me gusta, esperemos que esto atraiga más a la gente y se vean aumentadas las descargas.

Etiquetas de Technorati: ,,

jueves, 11 de junio de 2009

XNA 3.1 ya esta entre nosotros

La novísima y última actualización de XNA ya esta entre nosotros, disponible para ser descargada en la web de Creators.

Por lo poco que me ha dado tiempo a ver, una vez instalada, podremos elegir la versión que queremos usar al crear un nuevo juego, la 3.0 o la 3.1.

Mañana le echare un vistazo y podré decir más al respecto.

martes, 9 de junio de 2009

Kodu, creador de juegos para 360

Hacia algún tiempo que quería comentar algo sobre Kodu, pero aún no se sabia mucho sobre el tema, ahora sabemos que saldrá a finales de este mes.

Kodu es un sistema de creación de videojuegos para XBOX 360 y PC totalmente visual, se podrá crear un juego con el pad de la consola, sin necesidad de programar ni de teclado.

Obviamente un sistema así limita las posibilidades, pero también es verdad que puede abrir un mundo de posibilidades, donde, con un poco de imaginación poder diseñar y crear un juego sencillo, sin que las barreras de tener unos conocimientos técnicos te lo impidan.

La propia Microsoft lo define como un producto diseñado para ser accesible por los niños y disfrutado por todo el mundo, ¿os imagináis a un padre y su hijo creando un juego juntos?, no creo que haya nada mas casual que eso.

En muchas webs lo están comparando con Little Big Planet,  pero yo creo que son conceptos totalmente diferentes y no comparables.

Yo lo voy a seguir de cerca, si queréis seguirlo vosotros, aquí unos cuantos links:

Kodu – Microsoft research.

Blog oficial.

miércoles, 27 de mayo de 2009

[off-topic]Barça, campeones III

Off-topic como la copa de un pino, pero este equipo se lo merece. Premio al buen juego, y premio al buen trabajo.

Felicitats campions.

domingo, 24 de mayo de 2009

Truco: Mover un sprite, bien.

Uno de los pequeños truquillos que aprendí en la charla sobre XNA a la que asistí fue como mover correctamente un sprite por pantalla.

El error que yo cometía, y mucha más gente por lo que se puede ver en los muchos ejemplos que se encuentran por Internet, es que al mover el sprite me limitaba a sumarle un número de píxeles en cada ciclo del método Update  y me quedaba tan pancho, eso funciona perfectamente, pero cuando ejecutemos nuestro juego en un PC más potente, esté se moverá mucho más rápido. Evitar esto es muy sencillo, simplemente hay que controlar el tiempo que ha pasado desde el último ciclo de Update:

float velocidad = 600f;
this.Posicion.X += (float)gameTime.ElapsedGameTime.TotalSeconds * velocidad;

En el ejemplo creamos una variable para controlar la velocidad y la multiplicamos por el tiempo transcurrido, de esta forma nos aseguramos de que el juego corra siempre a la misma velocidad.

sábado, 23 de mayo de 2009

¿Una portátil de Microsoft?

Se aproxima la fecha del E3, una de las ferias más importantes del mundo de los videojuegos. Y como siempre que se aproximan estas fechas, surgen diversos rumores y posibles bombazos del mundillo.

Uno de estos rumores tiene que ver con una posible consola portátil de Microsoft.

La verdad es que cuando leí por primera vez la noticia le di poca credibilidad, pero luego me he parado a pensar un poco en el tema y no me parece tan imposible el tema, lo primero es que el negocio de las portátiles es muy suculento, si no que se lo pregunten a Nintendo, es normal pensar en que Microsoft quiera quitar una parte de ese suculento pastel a Nintendo, otra cosa, es que Zune no ha vendido nada bien y lo que iba a ser un iPod killer, se me antoja que se esta convirtiendo en una pesadilla para el departamento de Microsoft que se encargue del reproductor, y si quieren reavivar las ventas, han de cambiar de estrategia si o si. Por último, simplemente no me creo que a Microsoft no le importe ser la única que no tiene portátil…

Si os tengo que ser sincero, me encantaría que esto fuese verdad, y me encantaría que la cosa les saliese bien, primero de todo por que cuantos más actores entren en juego, mejor para el sector, pero lo que a mi realmente me interesa es como afectará esto a la comunidad XNA.

Desarrollar para Zune no es muy interesante la verdad, y en XBOX 360 es imposible crear algo que se pueda llegar a comparar ni de lejos a un juego comercial, no por que XNA no lo permita, es mas cuestión de recursos y de tiempo, pero imagínate poder crear algo para una consola que será como DS o PSP (no estoy hablando de especificaciones técnicas ¡eh!, hablo de concepto), con un poco de esfuerzo es posible crear algo realmente interesante y que pueda destacar, creo que esto será lo más grande que le pueda pasar a la comunidad XNA desde su propia creación.

¿Y tú? ¿que opinas al respecto?

¿se parecera a esto?

¿se parecerá a esto?

martes, 19 de mayo de 2009

Libro sobre XNA: Learning XNA 3.0

Llevo unos cuantos días desaparecido y sin actualizar el blog, la falta de tiempo, un proyecto del que hablaré llegado el momento, el trabajo, el traslado de piso con el consiguiente traslado de línea telefónica y que me han dejado el Gears of War 2 tienen la culpa.

Pero no he estado desconectado del todo, y me he comprado un libro sobre XNA que por fin me ha llegado, y como un niño con zapatos nuevos he comenzado a devorar.

De momento por lo poco que he podido ver (me llego ayer) esta muy bien, trata casi todo, 2D, 3D, Inteligencia artificial, juego en red… Cuando lo lea mas a fondo hare un análisis a fondo.

Bueno, pues por lo poco que he leído de momento lo recomiendo si quieres comprar un libro sobre el tema, lo malo, está en ingles, pero es que no hay nada en castellano, es lo que hay.

lunes, 27 de abril de 2009

Ventas y ganancias de los creadores XNA

Microsoft ha publicado algunos datos sobre las ventas de juegos creados por la comunidad XNA. Los datos hablan por si solos, se puede llegar incluso a vivir de esto, pero la mayoría de los juegos no alcanzan las ventas necesarias para eso, lógicamente debido a la calidad de los juegos.

Como se puede apreciar en la tabla, la cosa empieza a ponerse interesante a partir de las 10.000 unidades vendidas. Así que ya sabéis, nada es imposible.

jueves, 23 de abril de 2009

Evento sobre XNA.

El pasado martes tuve la oportunidad de asistir a una charla On-Line sobre XNA organizada por los chicos de Second Nug.
Se noto que el ponente, Iñaki Ayucar sabia de lo que hablaba, y además lo hacía bien. La charla estaba enfocada a explicar que es XNA y conceptos más o menos básicos sobre XNA y programación de videojuegos y fue muy interesante y amena.
La primera parte de la ponencia fue totalmente teórica (para mí fue la más interesante y de la que más aprendí), y luego hubo una segunda parte en la que desarrollo un Arkanoid desde cero, para entender bien la segunda parte es necesario tener conocimientos previos de programación, pero aunque no dispongas de estos conocimientos es interesante que la veas para poder ver como enfoco y construyo el juego, yo personalmente cogí varias ideas que me serán muy útiles en mi juego.
En resumidas cuentas, una charla interesantísima de obligado visionado si te interesa el tema, eso sí, cógelo con tiempo ya que la charla se alargo durante algo más de dos horas, dos horas que valen la pena si te gusta la programación de videojuegos.
En la web de SecondNug encontraras el video de la charla y los materiales.

lunes, 20 de abril de 2009

Truco: ¿Funcionará en XBOX 360?

Muchas veces nos podemos encontrar con la disyuntiva de no saber si una clase, propiedad o método funcionará en nuestra XBOX 360 ya que nuestra consola para ejecutar los juegos en XNA utiliza una versión especifica del Framework .Net, concretamente utiliza .Net CF.
Para salir de nuestra duda tenemos que ir a la MSDN (si aún no la tienes en favoritos ya estas tardando) y buscar la clase sobre la que queremos hacer la consulta, desde la MSDN podemos ver todos sus métodos y propiedades, y si se puede usar en XBOX veremos que en la parte de la izquierda aparecerá el icono de XNA.

truconetcf

viernes, 17 de abril de 2009

¿Dónde encontrar reseñas de juegos XNA?

Se acabaron las vacaciones. He estado muchos días sin actualizar, ya que lo que quería que fuesen unas vacaciones intensivas en lo que a programación con XNA se refiere, se han convertido unas vacaciones algo menos intensivas en lo que a programación Sharepoint se refiere :(, pero bueno, ya tendré algo más de tiempo para avanzar en mi juego, que se la va a hacer.
No me enrollo mas y vamos a lo que interesa; en la web de creators han publicado un listado de páginas donde hacen reseñas de juegos creados con XNA, de esta forma nos podemos hacer una buena idea de lo que se esta creando en el mundo XNA.

Enlace a la noticia.

¡Nos vemos!

martes, 31 de marzo de 2009

Escribir texto con XNA.

Cargar textos en pantalla es muy sencillo con XNA, pero no por ello vamos a obviarlo. Cuando acabes esté tutorial verás que es muy parecido a cargar un gráfico, el sistema es el mismo, cargamos la fuente en el método Load y luego lo dibujamos en el método Draw.
Lo primero que tienes que hacer es crear un nuevo fichero que contenga las características de la fuente (tipo de letra, tamaño…); Para ello agregamos un nuevo elemento del tipo Sprite Font. Lo creamos en la carpeta de contenidos “Content”.

addnewitem

addsprite

Ahora lo vamos a dejar tal y como viene por defecto, pero puedes cambiar el tipo de letra, el tamaño o cualquiera de las propiedades de la fuente.
Ahora tienes que definir una variable a nivel de clase de tipo SpriteFont donde almacenaremos la fuente, acto seguido en el método LoadContent la cargaremos en el proyecto, tal y como hacemos con las imágenes.
[code language="csharp"]
SpriteFont texto;
[/code]
[code language="csharp"]
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);

texto = this.Content.Load("fuente");

// TODO: use this.Content to load your game content here
}
[/code]

Por último en el método Draw hacemos que se “pinte” en pantalla utilizando DrawString.
[code language="csharp"]
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);

Vector2 posicionTexto=new Vector2(200,300);

spriteBatch.Begin();
spriteBatch.DrawString(texto,"Desarrollo XNA, mostrando texto en pantalla.", posicionTexto,Color.White);
spriteBatch.End();

base.Draw(gameTime);

// TODO: Add your drawing code here

base.Draw(gameTime);
}
[/code]

Como has podido comprobar es muy sencillo escribir texto en un juego XNA, muy pronto escribiré un tutorial para trabajar con textos en C# y de esta forma ampliaremos un poco mas este tutorial.
Como siempre, aquí puedes descargar el código.
See you!

miércoles, 25 de marzo de 2009

Jugar con juegos creados con XNA en Internet

Esto que os voy a contar sencillamente me pone; hace algún tiempo que pensaba que tarde o temprano algo así aparecería, pero es que hace relativamente poco que SilverLight 2 está en versión definitiva, así que lo esperaba para dentro de bastante más tiempo.
SilverSprite permite portar nuestros juegos creados con XNA, los que están en 2D, claro, a SilverLight, por lo tanto podremos jugar desde un explorador en Internet.
En una época en la que los juegos en Flash están pegando realmente fuerte, a SilverLight le estaba costando mucho entrar en juego, así que este será un pequeño gran empujón y espero que muy pronto se empiecen a ver juegos en Internet creados con XNA.
Aquí os dejo unos links para que veáis lo que se puede conseguir:

Y mientras babeo con el tema, el fin de semana lo probaré y os contaré mi experiencia.

silverlight

domingo, 22 de marzo de 2009

Sección enlaces actualizada.

Quiero aprovechar esta entrada para recomendaros que le echéis un vistazo a la sección de enlaces, que voy actualizando de vez en cuando, además me gustaría que me recomendaseis vuestras página favoritas para ir haciendo más grande la lista (quiero ser el que la tiene más grande, la lista de enlaces, claro)
Vamos al grano, que me enrollo, ayer me entere de que mi amigüito Garrin ha decidido escribir un blog sobre .Net, uno más pensarás, pues posiblemente, lo que pasa es que si te gusta programar no te lo puedes perder por que este tío es un crack. Así que ya sabes, si te gusta el tema, DEV GARRIN.

Truco: Eliminar Usings innecesarios.

Hoy os voy a explicar un pequeño “truco” o utilidad que podemos usar con el Visual Studio 2008 o Visual C# 2008; Consiste en eliminar todos los Using ue no se usan y ordenar los que sí.
Cuando creamos un proyecto nuevo o un fichero desde según que plantillas, se crean por defecto una serie de Using que no usamos o usaremos, esto en realidad no afecta para nada al rendimiento del programa o juego que estamos creando, ya que cuando compilemos se obviaran, pero por cuestión de “estética” o facilidad a la hora de leer el código puede ser una buena práctica “limpiar” la zona de “using”.

using

domingo, 15 de marzo de 2009

Guitar Hero World Tour - B.Y.O.B 100% en experto

Como hace mucho que no actualizo y hasta mañana o pasado no colgaré un nuevo tutorial, aquí os dejo este video para que lo disfrutéis tanto como yo:





lunes, 2 de marzo de 2009

C#. Propiedades

Muchas veces nos puede interesar almacenar datos para después poder usarlos, y como vimos en el capitulo anterior, para esto usamos las variables. Pero, ¿Qué pasa si queremos aplicar algún tipo de lógica a estas variables? Me explico, imagina que quieres que el número máximo de vidas en tu juego sea cinco, y no quieres que nunca se puedan tener más de cinco vidas. Si tenemos una variable que almacene el número de vidas tendríamos algo como esto:
[code language="csharp"]
int vidas;
[/code]

Ahora cada vez que algún evento del juego sume una vida al total que ya tenemos, tendríamos que ir comprobando que no tengamos ya cinco vidas:
[code language="csharp"]
if(vidas < 5) vidas++;
[/code]
Esto lo tendremos que comprobar cada vez que queremos sumar una vida, es posible que en alguno de los eventos que suma una vida se nos olvide la comprobación, además de que es un poco “engorroso” tener que picar el código cada vez.
Para esto tenemos las propiedades, ya que entre otras cosas nos permite tener una lógica antes de obtener o asignar un valor.
Otras cosas que son de gran utilidad en las propiedades es que podemos hacerlas de lectura/escritura, solo lectura o solo escritura, y son perfectas para exponer de manera pública los valores de una clase.
Las propiedades se declaran dentro del bloque de clase especificando el nivel de acceso del campo, seguido por el tipo de la propiedad, seguido por el nombre de la propiedad y, a continuación, un bloque de código que declara el descriptor de acceso get y/o el descriptor de acceso set.
Vamos a ver un pequeño ejemplo para que lo veas claro:
[code language="csharp"]
Private Uint16 _vidas; //variable privada
Public Uint16 vidas
{
get{return _vidas;} set{_vidas = value;}
}
[/code]

El nivel de acceso es Public, por lo que todas las clases podrán acceder a esta propiedad, el tipo es UInt16, porque vamos a almacenar números pequeños sin decimales y positivos, y después tenemos los bloques de código get y set. El bloque de código get sirve para acceder al valor y el bloque de código set sirve para asignar el valor, si queremos hacer la propiedad solo de lectura pondremos solo el get y si la queremos hacer solo de escritura solo pondremos el set. El parámetro value está implícito en la propiedad y contendrá el valor que le asignemos, por lo tanto, si hacemos vidas = 1, el parámetro value vale uno.
Sigamos con el ejemplo del principio, lo que haríamos sería asignar la lógica a la propiedad de este modo:
[code language="csharp"]
Public Uint16 vidas
{
get{return _vidas;}
set
{
if(vidas < 5) _vidas++;
}
}
[/code]

Por lo tanto, aunque sumemos todas las veces del mundo las vidas, si ya se tienen cinco, estas no variaran.
Poco a poco iras viendo que las propiedades son algo muy utilizado en la programación de tus juegos, y si observas los códigos ya publicados podrás ver que se utilizan mucho, sobre todo para exponer valores a lo largo de las distintas clases del juego.
Ver ejemplos de propiedades.

martes, 24 de febrero de 2009

Exit 2 en LIVE Arcade

Exit fue uno de los poco juegos que realmente disfruté en mi mal lograda PSP (el pisa papeles más caro que he tenido), ahora, a partir del miercoles tendremos disponible su secuela en LIVE Arcade.

Mr.Esc ha de usar sus habilidades para rescatar a pobres e indefensos personajillos de morir bajo los devastadores efectos del fuego. Es un juego de habilidad que poco a poco te ira enganchando, así que te recomiendo como mínimo probar la demo.

Ficha del juego.

exit2

lunes, 23 de febrero de 2009

Ya soy MCP.

No me gusta mucho hablar sobre mí, y menos aquí, has venido a leer sobre XNA y lo último que quieres es ver auto bombo... pero que narices, me hace ilusión, y ¡además es mi blog!, así que por una entrada no creo qué pase nada ;)

Pues eso, que a partir de hoy soy MCP (Microsoft Certified Professional).

Saludos!!

mcp_logo

Farseer Physics Engine, un motor de físicas 2D para XNA

El otro día andaba yo navegando por la web de CodePlex, mirando a ver si había algo que me pudiese interesar en mis proyectos XNA.

Y vaya si lo encontré, Farseer Physics Engine es un motor de físicas 2D gratuito, tiene licencia Microsoft Permissive Licence (Ms-PL), lo que quiere decir que lo puedes usar en tus proyectos sin ningún problema (vamos, creo).

He estado trasteado con él un poco y pinta muy bien, personalmente yo lo voy a usar en mis juegos siempre que pueda, ya que ahorra bastante trabajo en algunas tareas, como las colisiones, rotaciones, las físicas (obvio no?) y los resultados son muy buenos.

interseccion

viernes, 20 de febrero de 2009

Nueva sección: Enlaces.

Hoy he creado esta nueva sección que creo puede ser de gran utilidad. En ella pretendo crear una buena colección de enlaces a páginas relacionadas con cualquiera de los temas tratados en este blog: videojuegos, programación o cualquier tema relacionado con la creación de videojuegos.

Poco a poco la iré haciendo crecer, y vuestras contribuciones serán bien recibidas.

Visitar la sección de enlaces.

jueves, 19 de febrero de 2009

Animar graficos en 2D

En el anterior capitulo aprendimos como cargar un gráfico en pantalla, pero estaremos de acuerdo que pocas veces veremos un gráfico en parntalla que no esté animado.

Creo que no le decrubo un secreto a nadie si digo que para animar un grafico en 2D hay que hacerlo fotograma a fotograma, hay que ir dibujando cada uno de los movimientos y luego irlos mostrando rápidamente uno detrás del otro para conseguir el efecto de movimiento.

Para conseguir esto en el mundo de los videojuegos en 2D lo que se hace es ir dibujando todos los movimientos de un personaje en un archivo gráfico, como comente el capitulo anterior puede ser un jpg, bmp, png, etc... (pero vuelvo a reiterar que los que me gusta usar a mi son los png, ya que permiten transparencias), para ver un ejemplo de lo que os digo fijaos en esta animación de Buu andando (estos recuerdos de infancia...)

buu



Podemos ver que en un mismo archivo gráfico están los cinco dibujos que conformarán la animación, ahora lo que hay que hacer es mostrar cada unos de estos dibujos uno tras otro para que como hemos comentado antes se produzca el efecto de movimiento, para ello lo que haremos será cargar el gráfico tal y como lo hicimos en el anterior tutorial pero esta vez en vez de mostrar el dibujo entero, solo mostraremos una parte de él e iremos iterando por el dibujo mostrando solo la parte que nos interese.

Para que te hagas una idea de lo que vamos a hacer imáginate que defines un rectángulo que vas a ir moviendo por el gráfico, y en pantalla solo mostraras lo que hay dentro de los limites de ese reactángulo, algo como esto:

buuanim

Una vez explicado esto, vamos a ver como lo hacemos:

Primero crea un proyecto nuevo, y haz doble clic en el fichero Game1.cs para poder ver y modificar su código.

Ahora hay que añadir al proyecto el gráfico que vamos a usar, para ello haz clic con el botón derecho en la carpeta Contenta y selecciona añadir > elemento existente y selecciona el gráfico que quieras cargar. Yo he usado el siguiente:

run

(Te preguntarás porque he usado un gráfico para escribir el tutorial y otro para picar el código, la respuesta es muy sencilla, empecé con el grafico de buu e hice el gif animado, luego cambie por este gráfico( que por cierto viene con el plataformer stated kid de XNA 3.0), y me da mucha pereza hacer el gif animado con este nuevo gráfico)

Lo primero de todo es crear las variables que usaremos:




[code language="csharp"]
//Grafico que se usará
Texture2D sprite;
//Para controlar el cambio de frame
float temporizador = 0f;
float intervalo = 1000f / 10f;
//Número de frames que tendrá la animación
int numFrames = 10;
int frameActual = 0;

//Tamaño del cada uno de los fotogramas (el rectángulo del ejemplo del tutorial)
int spriteAncho = 96;
int spriteAlto = 96;

Rectangle rectanguloOrigen;
Rectangle rectanguloDestino;
[/code]





Ahora vamos a cargar nuestro gráfico en el juego, en el método LoadContent agrega el siguiente código después del comentario:




[code language="csharp"]
sprite = Content.Load("Run");
rectanguloDestino = new Rectangle(0, 0, spriteAncho, spriteAlto);
[/code]





Lo siguiente que vamos a hacer es crear el código que hará que nuestro personaje se "anime", esto lo haremos en el método Update, que como sabemos es donde se actualiza la lógica del juego, agrega las siguientes líneas de código:



[code language="csharp"]
//Le sumamos al temporizador los milisegundos transcurruridos
temporizador += (float)gameTime.ElapsedGameTime.TotalMilliseconds;

//Si es mayor al tiempo que le hemos definido en el intervalo
if (temporizador > intervalo)
{
//Pasamos al siguiente frame
frameActual++;

//Controlamos que no nos pasemos de frames
if (frameActual > numFrames - 1)
{
frameActual = 0;
}
//Se pone el temporizador a cero
temporizador = 0f;
}

//definimos el rectángulo que mostrará el siguiente frame.
rectanguloOrigen = new Rectangle(this.frameActual * this.spriteAncho, 0, this.spriteAncho, this.spriteAlto);

base.Update(gameTime);[/code]




Y por último solo nos queda dibujar por pantalla, como siempre, en el método Draw:



[code language="csharp"]
GraphicsDevice.Clear(Color.CornflowerBlue);

spriteBatch.Begin();
spriteBatch.Draw(sprite, rectanguloDestino, rectanguloOrigen, Color.White);
spriteBatch.End();

base.Draw(gameTime);
[/code]




Descarga el proyecto con el código.

domingo, 15 de febrero de 2009

Cargar un gráfico en pantalla.

Ya hemos visto a la nave moviendose por la pantalla, ahora vamos a ir viendo paso a paso como crear nuestro juego usando XNA, luego podremos unir todos esos pasos, y tal vez, solo tal vez, nos quede algo bonito. Hoy vamos a ver como cargar un gráfico en pantalla para más adelante ir trabajando con él.

Es algo muy sencillo, lo primero es crear un proyecto nuevo, luego añadimos el gráfico en cuestión al proyecto, para eso vamos al explorador de soluciones y en la carpeta de proyecto "Content" clicamos con el botón derecho, en las opciones que aparecen seleccionamos añadir > archivo existente. Selecciona el fichero que quieras cargar en el juego.

[caption id="attachment_231" align="alignnone" width="411" caption="Añadir un archivo existente"]Añadir un archivo existente[/caption]

Podemos usar imagenes jpg, bmp, png... yo normalmente uso el formato .png por que es un formato que comprime bien, además le puedo poner transparencias.

Ahora ya tenemos el fichero listo para ser cargado, haz doble click en el fichero Game1.cs para poder ver y modificar su código. Crea una variable de tipo Texture2D, te ha de quedar algo así:
[code language="csharp"]
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Texture2D sprite;
[/code]

Ahora en el metodo LoadContent cargaremos el gráfico:
[code language="csharp"]
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
//Cargamos el gráfico que hemos hañadido al proyecto, no es necesario poner la extensión del fichero
sprite = Content.Load("xnalogo");
}
[/code]

Por último en el metodo Draw le decimos que "pinte" el gráfico que hemos cargado en la pantalla:
[code language="csharp"]
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);

spriteBatch.Begin();

spriteBatch.Draw(sprite, new Rectangle(0, 0, sprite.Width, sprite.Height), Color.White);

spriteBatch.End();

// TODO: Add your drawing code here

base.Draw(gameTime);
}
[/code]

Ahora ya puedes ejecutar el código y ver tú gráfico en la pantalla.

Descargar el proyecto con el código.

viernes, 13 de febrero de 2009

¡He vuelto a casa!

Después de mucho tiempo sin dar señales de vida, por fin vuelvo a retomar el blog.


Un pequeño problema técnico me ha tenido alejado de Internet durante un buen tiempo, vamos que se me jodido la placa base del portátil. Por fin he podido comprar uno nuevo y me he tirado una semana poniéndolo a punto, pero por fin tengo todo (o casi) instalado.


Estoy preparando unas pequeñas pruebas / tutoriales sobre XNA que pronto tendré acabadas y las podré ir publicando poco a poco.


Por otro lado he estado releyendo lo hecho hasta ahora y voy a hacer unos pequeños cambios en la estructura de los tutoriales sobre XNA, a partir de ahora en vez de ir construyendo un juego entero e ir explicando cómo hacer las cosas en base al código fuente del juego en sí, lo que hare es, como he comentado antes, pequeños proyectos con pruebas de concepto/tutoriales, ya que creo que así es más sencillo asumir los conocimientos, más adelante uniremos todos estos conocimientos y podremos crear un juego completo.


Y para ir abriendo boca un pequeño adelanto de los tutoriales que estoy preparando:


-          Trabajando con sprites (gráficos 2D)


o   Cargar un gráfico en pantalla.


o   Mover un sprite


o   Colisiones


o  


-          Sonido en XNA


o   Como preparar los ficheros de sonido para ser tratados en XNA


o   Usar sonidos en nuestro juego


o  


See you!