Mostrando entradas con la etiqueta Xna. Mostrar todas las entradas
Mostrando entradas con la etiqueta Xna. Mostrar todas las entradas
jueves, 12 de marzo de 2015

Como crear tus propios video juegos en XNA

0 comentarios
 
Leer entrada
miércoles, 11 de marzo de 2015

Librerías y Motores gráficos

2 comentarios
 
En este capítulo vamos a ver las librerías gráficas y de sonido más populares para poder realizar nuestro juego, asi como también abarcaremos un poco en el tema de motores gráficos ya que nos pueden ser muy útiles por que nos pueden simplificar un poco las funciones de las librerías y depende como este programada nos puede ofrecer ser multiplataforma, migrar el código, programar para consolas de juegos, e.t.c.


Allegro es más que una librería gráfica,ademas de gráficos tiene funciones de control del teclado,el ratón, mandos de juego, sonido,midi,incluso renderización de poligonos en goraud con zbuffer y temporizadores.
También tiene funciones matemáticas en punto fijo y coma flotante, funciones 3d, funciones para manejar ficheros, ficheros de datos comprimidos y una interfaz gráfica.
Aunque está escrita en lenguaje C, actualmente existen envolventes y bibliotecas adicionales que permiten utilizarla en otros lenguajes como Python, D, Lua y Pascal.
Además es extensible como por ejemplo allegroGL que permite usar OPENGL o jgmod para reproducir mods,xm,s3m. Es multiplataforma, se puede crear binarios para DOS,BEOS,UNIX,LINUX y QNX.
En síntesis una potente librería.
libSDL es el acrónimo de library Simple Directmedia Layer. LibSDL fue creada por Sam Lantinga y su grupo, programadores de Loki Entertaiment Software, para portar juegos a Linux principalmente. Sam Lantinga es un programador de amplia experiencia en el mundo de videojuegos lo que le ha permitido tener una visión específica de las necesidades de los creadores de videojuegos.
SDL es una librería multimedia multiplataforma, es decir, todas las aplicaciones que desarrollemos con esta librería pueden ser compiladas, sin cambiar nada en el código, en varios sistemas diferentes como Windows, Linux, BeOS... Está diseñada para proporcionar acceso de bajo nivel al audio, teclado, ratón, joystick y a los dispositivos de video 2D. Es una librería muy utilizada en diferentes tipos de aplicaciones entre ellas se encuentra software para reproducir video MPG, emuladores y un gran número juegos y adaptaciones de juegos entre plataformas.  SDL soporta Linux, Windows, Windows CE, BeOS, MacOS, MacOS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX y QNX. El código de la librería nos permite trabajar en aplicaciones para AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS y OS/2 pero estos sistemas no son sosportados oficialmente.
SDL está escrita en C pero trabaja nativamente con C++. Se puede utilizar en otros muchos lenguajes ya que existen adaptaciones que permiten hacerlo. Alguno de los lenguajes en los que se puede utilizar son Ada, C#, Eiffel, ERlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objetive C, Pascal, Perl, PHP, Pije, Pliant, Python, Ruby y Smalltalk.
Es importante conocer que SDL es distribuido bajo licencia GNU LGPL en su versión 2. Esta licencia permite usar SDL libremente, en programas comerciales, siempre que utilicemos un enlace dinámico a esta librería y cumplamos todos los requisitos de dicha licencia.

¿Qué nos proporciona SDL?


Por último vamos a destacar que con SDL se pueden hacer juegos 2D y no 3D.

DirectX es una colección de API creadas y recreadas para facilitar las complejas tareas relacionadas con multimedia, especialmente programación de juegos y vídeo en la plataforma Microsoft Windows.
DirectX consta de los siguientes APIs:
* Direct3D: utilizado para el procesado y la programación de gráficos en tres dimensiones (una de las características más usadas de DirectX).
* Direct Graphics: para dibujar imágenes en dos dimensiones (planas), y para representación de imágenes en tres dimensiones.
* DirectInput: utilizado para procesar datos del teclado, mouse, joystick y otros controles para juegos.
* DirectPlay: para comunicaciones en red.
* DirectSound: para la reproducción y grabación de sonidos de ondas.
* DirectMusic: para la reproducción de pistas musicales compuestas con DirectMusic Producer.
* DirectShow: para reproducir audio y vídeo con transparencia de red.
* DirectSetup: para la instalación de componentes DirectX.
* DirectCompute: Lenguaje e instrucciones especiales para manejo de cientos o miles de hilos de procesamiento, especial para procesadores de nucleos masivos.
A pesar de ser desarrollado exclusivamente para la plataforma Windows, una implementación open source de su API se encuentra en progreso para sistemas Unix (en particular Linux) y X Window System por el proyecto WineHQ, del cual existe fork propietario, Cedega, desarrollada por la empresa de software Transgaming y orientada a la ejecución de juegos desarrollados para Windows bajo sistemas Unix.


Open Graphics Library. Conjunto de especificaciones estándar que definen una API multilenguaje y multiplataforma para escribir aplicaciones o juegos que producen gráficos en 3D. Fue desarrollada originalmente por Silicon Graphics Incorporated (SGI).
Ofrece al programador un API sencilla y estable para que pueda generar gráficos en 2D y 3D por hardware. Consiste en más de 250 funciones diferentes que pueden ser usadas para graficar complejos escenarios tridimensionales usando simples primitivas.
Es muy popular en la industria de los videojuegos y es competencia directa (en plataformas Windows) del Direct3D desarrollado por Microsoft.
OpenGL es compatible para múltiples plataformas como ser Windows, Unix (Linux, MacOS), Playstation 3, etc.
Se han programado varias bibliotecas externas que añaden características no disponibles en el propio OpenGL. Algunas de ellas son:
* GLU: Ofrece funciones de dibujo de alto nivel basadas en primitivas de OpenGL. Las funciones de GLU se reconocen fácilmente pues todas empiezan con el prefijo glu.
* GLUT: API multiplataforma que facilita una rudimentaria funcionalidad para el manejo de ventanas e interacción por medio de teclado y ratón.
* GLUI: Interfaz de usuario basada en GLUT; proporciona elementos de control tales como botones, cajas de selección y spinners. Es independiente del sistema operativo, sustentándose en GLUT para manejar los elementos dependientes del sistema.





XNA es una API desarrollada por Microsoft para el desarrollo de videojuegos para las plataformas Xbox 360 , Windows y Zune. Técnicamente es un Marco de Trabajo (Framework), basado en .NET Framework 2.0 y al igual el .NET Framework 2.0, éste corre sobre el CLR, aunque en una implementación que provee un manejo optimizado para la ejecución de videojuegos.



(Capas de XNA) - Las diferentes capas de XNA, vistas de arriba a abajo, el XNA game studio utiliza la funcionalidad del xna framework, y éste a su vez se basa en el .net framework. Por último están las plataformas a las que van destinadas nuestras aplicaciones, windows, Xbox 360 o zune.
En otras palabras, XNA es una plataforma de desarrollo de videojuegos sobre DirectX, en la cual disponemos de cierta funcionalidad ya integrada lo que nos permite centrarnos en la parte de qué queremos hacer en nuestro juego y no en el cómo hacerlo.


Framework de XNA - Los recuadros verdes se corresponde con la funcionalidad que ya viene de "serie" con el framework.



OGRE 3D (acrónimo del inglés Object-Oriented Graphics Rendering Engine) es un motor de renderizado 3D orientado a escenas, escrito en el lenguaje de programación C++.
Sus bibliotecas evitan la dificultad de la utilización de capas inferiores de librerías gráficas como OpenGL y Direct3D, y además, proveen una interfaz basada en objetos del mundo y otras clases de alto nivel.
El motor es software libre, licenciado bajo LGPL y con una comunidad muy activa. Incluso ha sido utilizado en algunos videojuegos comerciales, como   por ejemplo Ankh y Earth Eternal.


Crystal Space es un framework para el desarrollo de aplicaciones 3D escrito en C++ por Jorrit Tyberghein. Fue fundado el 26 de agosto del 1997. Crystal Space se usa típicamente como motor de juego pero el framework es más general y puede ser usado para cualquier tipo de visualización 3D. Crystal Space es muy portable y se ejecuta en Microsoft Windows, Linux, UNIX, y Mac OS X. Crystal Space es software de código abierto, licenciado bajo LGPL.
Puede usar opcionalmente OpenGL (en todas las plataformas), SDL (en todas las plataformas), X11 (Unix o GNU/Linux) y SVGALib (GNU/Linux). También puede usar rutinas de ensamblador usando NASM y MMX.

 Bueno para el próximo capítulo voy a explicar un poco por que la industria argentina esta comenzando a destacarse en el  mundo de los videojuegos. ¿Porqué ahora y no antes?
Leer entrada
lunes, 2 de marzo de 2015

Entrevista a Lelouche Nahuel

2 comentarios
 
Nombre: Lelouche Nahuel
Nacionalidad: Argentino
Reside en: Buenos Aires
Puesto: Game Designer
Empresa: Teracode Games


¿Hace cuanto que te dedicas al desarrollo de VideoJuegos?
Al Game Design profesionalmente desde abril del año pasado, a trabajar en el ambiente de los video juegos desde comienzos del 2008.

¿Antes de pertenecer a Teracode Games pasaste por alguna otra empresa relacionada con el desarrollo de VideoJuegos?
Si trabaje en Gameloft, está bueno como primera experiencia laboral en la industria, y de paso para aprender todas las cosas que "NO" se deben hacer a menos que tengas una fuerza de trabajo de miles de programadores para hardcodear muuuucho.
Basicamente me dedicaba a agregale operaciones basicas a los numeros, suma, resta, multiplicación y división.O sea porteaba juegos de windows mobile, y la mayor parte del tiempo estaba corrigiendo coordenadas de pantalla en los sprites o fuentes, la otra parte del tiempo corrigiendo algunos bugs de lógica que se daban por incompatibilidades entre dispositivos.
Lo bueno es que yo estaba en el equipo de windows mobile, entonces mal que mal, estaba con c++ que era lo mas rescatable a nivel aprendizaje.

¿Cómo conseguiste el empleo en Teracode Games?
Por un compañero que tenía cuando trabajaba en Gameloft, el se habia cambiado a esta empresa, y me refirió, cuando vieron que tenia experiencia en games, les intereso mi perfil y me llamaron.

¿Con qué puesto entraste a Teracode Games?
Al principio una suerte de comodin de Project Leader, pero principalmente como Game Designer.
Ahora estoy directamente como Project Manager, ya no como lider, entonces ahora me dedico más a tener una visibilidad completa del proyecto, armar sprints de desarrollo y ese tipo de cosas, un poco mas "administrativo" si se lo puede llamar de esa manera. junto a las tareas del Game Design, la parte de lider paso a otra persona que es la encargada del trabajo diario con el equipo, más como referente técnico.

¿Qué serian los Sprints ?
Nosotros usamos como metodologia de trabajo "SCRUM" que muy por encima, se basa en tener etapas de trabajo planteadas semana a semana, con ciertos objetivos cada semana, a las semanas se las llamas Sprints (podemos tener sprints de mas de una semana si se lo requiere, pero es poco usual).
En definitiva sería plantear por ejemplo el sprint de la semana que viene elijiendo desarrollar Networking por poner un ejemplo, entonces se analiza que es lo que queremos lograr, como lograrlo, y plantear las tareas, lo mas pequeñas posibles, se reparten las tareas, y se hace un seguimiento durante la sprint, para ver como se esta llevando. Al final del sprint (viernes) se tendría que haber llegado a completar cada una de las tareas planteadas el lunes.

¿Trabajan para algún cliente?
Por ahora son productos propios, la idea es a futuro poder desarrollar para clientes.

¿Qué tecnologías usan en la empresa?
Usamos un Engine Propio hecho en C y Objective-C. basicamente manejamos todo lo que es el iPhone SDK.
Objetive C es el lenguaje usado para programar en lo que es OS X de apple, lo usas para desarrollar aplicaciones mac, o iPhone es un lenguaje que es por definicion un punto intermedio entre smalltalk y C, y smalltalk es un lenguaje bastante viejo, que era 100% POO.

¿Como definirías a un motor gráfico?
Un engine es una abstracción que se hace a las librerías graficas (Open GL, DirectX) donde nucleas muchas de las funcionalidades para tenerlas de una manera mas accesible, pero tambien tiene muchas otras funcionalidades, Scenegraphs, implementaciones de sonido, chequeos de fisica, en fin. puede ser tan pequeño o extenso como lo puedas hacer.

¿Qué librerías utilizaron para crear el motor gráfico?
OpenGL nada mas.

¿Alguna tarea típica que realicen dentro de la empresa?
Creo que lo que mas se podría denominar "Típico" son las reuniones de planeamiento de sprints, se reune el equipo, vemos segun nuestro calendario que nos corresponde trabajar durante la semana y planteamos la sprint, comenzamos viendo las tareas a realizar y armarmos los casos de uso,después de eso una vez que tenemos todo analizado en "tareas pequeñas", se hacen las asignaciones de a quién le corresponderia cada tarea, y las estimaciones de tiempo, y bueno una vez que estamos contentos en como quedo armada la sprint, nos ponemos a trabajar.
Digamos que la reunion de planeamiento es un ida y vuelta, también se analizan las mejores maneras de hacer ciertas tareas si se necesita, o sino también se plantean tareas de "analisis", por ejemplo en este momento yo estoy haciendo un analisis de si nos sirve más implementar un sistema de scripting ya hecho (como LUA) o ilementar uno propio dependiendo de los requerimientos que tengamos nosotros.

¿Para qué les sirve implementar un sistema de Scripting?
Para scriptear misiones dentro del juego, construir niveles, definir que IA se va a usar en ese nivel, y cosas por el estilo.

¿A quién va dirigido el producto final?
En referencia al Target social, digamos que va dirigido de adolecentes en adelante, en su mayoria hombres.
En un Target geográfico está dirigido principalmente a EEUU que es donde más comercio hay, ademas está 100% en ingles, pero de todos modos tambien estará disponible en argentina y otros países.

¿Qué estudios tenes?
Me faltan las ultimas materias para terminar la carrera de Desarrollador Profesional de Video Juegos en I.M.A.G.E Campus y estoy pensando en hacer un curso que lanzaron ahora sobre Game Design especificamente.

¿Por qué elegiste I.M.A.G.E Campus y no una carrera de ingeniería por ejemplo?
La verdad en el momento en que la elegí, creo que fue por que no me era muy fácil conseguir mucha info orientada a video juegos, pero sí en cuanto a programación, entonces elegí la carrera por que ahí iba a tener la posibilidad de estar con gente que trabaja en el rubro y me iban a enseñar cosas especificamente orientadas a juegos, lo que es "programación" lo podía aprender en otro momento.

Mas allá del amor por el desarrollo ¿Crees que es un negocio rentable? ¿En qué dimensiones?
Sí, lo es, en muchas dimensiones, pero depende de la inversion que hagas, el tipo de cambio dolar, peso, favorece mucho al desarrollo desde argentina, pero todavía no estamos preparados tecnologicamente ni profesionalmente para juegos AAA, fuera de eso, hay muchas ramas para desarrollar y dejan muy buenas ganancias.

¿Estas al tanto de la comercializacion del producto final? ¿Podrías dar unos tips y algún consejo?
Los procesos que conozco son del modelo negocio que tiene AppStore, o XBLA, mucho no hay para contar en base a eso, mas que tratar de "ratear" bien los juegos a la hora de subirlos, la mayoria de las veces los rechazos salen por que el rating no es adecuado al contenido del juego, en cuanto a AppStore, son un poco complicados en lo que respecta a la violencia, hay que tratar de no ser demasiado explicito con la violencia e imágenes fuertes, eso en cuanto al proceso de vender la aplicación.
En cuanto a publicidad, la mejor publicidad que podes tener es cuidar la calidad del juego, hoy en día si el juego es bueno, la publicidad se hace sola, blogs, reviews, críticas, etc.
Unos tips o técnicas serían: Cuando subis tu aplicación, mandales copias gratuitas a los blogs que te interesen es una buena jugada por ejemplo, si queres también podes escribir un esqueleto de review, para darles el menor trabajo posible siempre viendo a quien se lo mandas), sino es poco probable que compren el juego para hacerte un review, a no ser que seas un desarrollador conocido, y este sea un lanzamiento muy esperado. Pocos pueden darse el lujo de hacer eso, las empresas que desarrollan juegos de gran calidad como EA, Gameloft, etc.
En el caso de los indies lo mejor, es hacer un video lindo, sacar unas buenas screenshots, y ponerlas en foros de comunidad gamers, en tu web personal o de tu empresa, y repartir algunas copias entre blogs conocidos kotaku, toucharcade, etc., también en foros o blogs de desarrolladores independientes ayuda bastante, incluso si se lo ve desde otro lado, es mejor, ya que siempre tenés algunas críticas constructivas que te ayudan a sacar algo más pulido en la siguiente version.
Algunos tips serían:
- Hacer algun proyecto propio.
- Asistir a la EVA.
- Participar en foros conocidos.
- Invertir tiempo en las tecnologías de punta.
- ¿Por qué no competir en CODEAR?.


¿Que tecnologías pensas que tienen mejor salida en el mercado ?
Hoy en día creo que hay 2 mercados que se estan destacando, lo que es teconología móvil, juegos chicos, que los tenés ya, en cualquier momento y lugar iPhone, Android, etc, y segundo el modelo de mercado de juegos grandes para PC con contenido premium donde vos tenés la opción de jugar gratis, pero podes comprar contenidos extra como nuevos personajes, nuevas armas, nuevos niveles, etc.

Si vos tuvieras que comenzar un proyectito simple:
A) ¿De qué podría tratar?
B) ¿A qué plataforma te orientarías?
C) ¿Con qué lenguaje lo programarías?
D) ¿Con qué librerías gráficas harías un motor gráfico?

A) Haría un juego de plataformas, con una buena historia es un genero que todavía sigue atrapando.
B) Empezaría desarrollando para windows, aunque no sea lo que mas salida tiene, es lo mas sencillo para arrancar.
C) Xna, es super sencillo, se hacen cosas copadas con poco trabajo, y me da la posibilidad de mas adelante pasarlo a Xbox.
D) Comenzaría con DirectX y C++, dentro de todo es un poco mas sencillo de trabajar que openGL pero es bastante estable y se puede hacer un motor bastante lindo si le pones laburo y perserverancia.

¿Algún consejo o recomendación para la gente que quiere lanzarse a la industria de videojuegos?
Para el caso de desarrolladores independientes, empezar por cosas sencillas, no empezar con la ilusión de hacer un juego AAA de entrada por que van a fallar y se van a frustrar, lo más práctico es iniciarse con motores conocidos, y empezar con proyectos chicos.
Hoy hay herramientas que permiten hacer cosas muy lindas con relativamente poco trabajo y se aprende. UDK, Unity3D, son buenas opciones para comenzar a entrar en el mundo de los video juegos.
Si lo que quieren es empezar programando, algun motor 2D, o XNA pueden ser buenas opciones, los que te nombre todos para pc (unity tiene version mac) y xna te permite hacer windows, xbox, zune, y celulares con windows7, para dispositivos móviles podes usar unity también (hay versión para iphone pero es paga), Cocos2D es un lindo motor para arrancar, y XNA para celulares de alta gama.
Para el caso de personas que quieran comenzar en una empresa de videojuegos la recomendación mia sería apostarle a las tecnologías que estan liderando el mercado, por un lado creo que Unity es una muy buena posibilidad, hay buena demanda, y tiene varias ramas de desarrollo, y por otro lado, definitivamente iPhone esta tomando un mercado bastante grande.
Para ambos casos estudiar una carrera de video juegos, tiene sus pro y sus contra, es muy caro, pero te acerca a la gente del rubro, y aprendes cosas orientadas, aunque no es un requisito.
Ese tipo de cosas te van dando un nombre y una experiencia, que es muy valorable al momento de encarar una entrevista con alguna empresa que desarrolle video juegos, aunque sean cosas sencillas en flash, el hecho de conocer la estructura de un video juego es un punto a favor que no muchos tienen.



http://games.teracode.com
Leer entrada
miércoles, 9 de junio de 2010

Videotutorial crear terreno para Xna

2 comentarios
 
Este tutorial lo hice en video para que sea más gráfico y más fácil de entender. Basicamente trata de como crear un terreno en 3DMax studio para poder importarlo luego en XNA.
Para este tutorial vamos a necesitar:
- 3D Max Studio
- Plugins para exportar modelo a .FBX
En el caso de que no podamos exportar a .fbx desde el 3DMax nos tendremos que descargar los plugins de acá: http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775855 
El archivo es autoinstalable, osea una vez descargado doble click y listo.
- Photoshop o algun programa de dibujo.

Se recomienda tener conocimientos de 3dMax y del programa de dibujo para este tutorial.
Sin más preámbulos les dejo el tutorial.

Leer entrada
miércoles, 2 de junio de 2010

Proyecto RPG IdearSoft

0 comentarios
 
Bueno como ya se ha visto que estamos buscando colaboradores para el proyecto del juego/motor RPG en Xna, acá va un pequeñisimo avance de lo que se comenzó a hacer, la presentación y el menú del juego.
Cabe aclarar que la imágen en donde se encuentra el menú fue sacada de internet pero nos sirve a modo de ejemplo, y la música la hice yo al igual que todo lo que pueden ver.
Espero que les guste y que incentive a muchos a formar parte de este proyecto.

Leer entrada

Colaboradores para RPG

0 comentarios
 
Estamos programando en XNA y buscamos colaboradores (programadores por el momento) que sepan algo de XNA para que vayamos desarrollando de a poco un juego o engine RPG, ayudandonos mutuamente y aprendiendo sobre la programación orientada a estos tipos de juegos.
La idea es ir armando algo sin fechas limites ni nada que requiera de un trabajo constante, sino es ir haciendolo por el amor al arte e ir viendo que sale, si la experiencia resulta ser buena y sale algo lindo se podrían analizar las posibilidades de terminar el proyecto armando algo bien serio y promocionarlo, pero como ya aclare en principio lo hacemos por hobbie y para aprender un poco más sobre esto.
Por ejemplo yo estuve haciendo un sistema de fades para una presentación al estilo final fantasy y un pequeño menú para comenzar con el juego.
Antes de cargar sprites y toda la bola, habría que ver como armar un sistemita de dialogos, así que interesados pueden contactarse por medio de nuestro formulario de contacto.
Espero propuestas y sugerencias.

Saludos
Leer entrada
miércoles, 12 de mayo de 2010

Escribiendo código en Xna

0 comentarios
 
Bueno ya sabemos lo que es Xna como funciona, y sabemos como se conforma el programa en Xna, bien ahora vamos a pasar a la parte práctica y vamos a escribir nuestro primer código.
En esta entrega veremos como dibujar una imágen. El código vamos a escribirlo en nuestra clase principal.
En donde definimos las variables vamos a crear las siguientes variables:

Texture2D Fondo;
Rectangle Rectangulo;

Acá creamos la variable Fondo que va a ser nuestra imágen de fondo, como un tipo Texture2D, y vamos a definir la variable Rectangulo como un tipo Rectangle. 
En el constructor de la clase principal (para el que no sepa lo que es el constructor recomiendo leer el artículo como se conforma un programa en Xna y bajarse el ejemplo) vamos a escribir lo siguiente:

graphics.IsFullScreen = false;
graphics.PreferredBackBufferWidth = 800;
graphics.PreferredBackBufferHeight = 600;

Acá estamos seteando la variable graphics.IsFullScreen en false, ésta variable nos sirve para que la aplicación sea full screen o no, despues le seteamos el ancho y el alto de la aplicación, en nuestro caso 800 x 600, pueden hacer pruebas cambiando estos valores y van a ver como cambia la aplicación.
Luego de hacer esto y crear nuestras variables vamos a inicializarlas como se explicó anteriormente. Ésto lo hacemos en el método Initialize.

Fondo = Content.Load("NombredelaImagen");
Rectangulo = new Rectangle(0,0,graphics.GraphicsDevice.Viewport.Width, graphics.GraphicsDevice.Viewport.Height );
 

Lo que hacemos es inicializar la variable fondo cargandole una textura 2d con el nombre de nuestra imágen entre comillas dobles, luego inicializamos nuestro rectangulo con una posición x 0, posición y 0, un ancho igual al ancho de nuestra ventana, y un alto igual al alto de nuestra ventana.
Aclaración: Las imágenes, sonidos o todo el contenido externo que tengamos que cargar en el juego, lo tenemos que cargar en "Content" en el explorador de proyectos. Hacemos click derecho sobre content le ponemos agregar elemento existente, buscamos la imágen o el contenido que queramos y quedaran ahí.

Por último en el método Draw vamos a poner lo siguiente:

spriteBatch.Begin();
spriteBatch.Draw(Fondo, Rectangulo, Color.White);
spriteBatch.End();

Lo que hacemos aca es poner spriteBach.Begin(); para poder comenzar a dibujar, y luego dibujamos nuestro fondo con spriteBatch.Draw(Fondo,Rectangulo, Color.White); . Acá lo que hacemos es dibujar nuestra imágen que la definimos como "Fondo" al principio del programa y que luego le cargamos la imágen que queríamos que se muestre, le pasamos el parametro Rectangulo para indicarle las dimensiones de la imágen, y el color que le pusimos White para que quede tal cual está. Recomiendo jugar con estos valores, se puede cargar otra imágen, cambiarle la dimension a la misma, y el color.
Por último damos por finalizado el proceso de dibujado con spriteBatch.End(); y podemos dar ejecutar tranquilamente para ver nuestro resultado.

 Les dejo un código sobre este artículo muy comentado para que no puedan no entenderlo.

Código de fuente: Descargalo acá
Leer entrada
martes, 11 de mayo de 2010

XNA Game Studio 4.0 CTP

0 comentarios
 
Microsoft ®  XNA Game Studio 4.0 es un conjunto de herramientas que será utilizado por los desarrolladores para crear juegos para Teléfono con Windows 7.XNA Game Studio 4.0 CTP actualmente esta disponible para el desarrollo solamente en telefonos con windows 7. Ver Notas de la versión de este producto.

Leer entrada
jueves, 6 de mayo de 2010

Como se conforma un programa en Xna (Capítulo 1)

3 comentarios
 
En este capítulo vamos a ver como se conforma un programa en Xna osea como es el ciclo de vida del mismo. Ya vimos que es Xna y como funciona, también vimos como instalarlo. Ahora que ya lo tenemos instalado vamos a poner manos a la obra.



La imágen no se ve muy bien pero hagan click en ella asi se amplia.
Ahora vamos a elegir Windows Game (3.0), le ponemos un nombre a nuestro proyecto y hacemos clic en aceptar.
Al aceptar vamos a ver que se nos abre el proyecto ya con un código, vamos a explicar el ciclo de vida de un programa en Xna basandonos en el código que obtenemos al iniciar un nuevo proyecto.
Vamos a ver el código que se encunetra en la clase Game1 que es el que nos va a servir por ahora.
El código que nos aparece es similar a este.

//Sección: Includes
//Aca se incluyen todas las bibliotecas que vamos a usar como sonido, graficos, red, e.t.c.

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

//En NameSpace se encuentra el nombre que le vamos a poner a la clase, para llamarla desde otro lugar.

namespace MiPrimerJuego
{


    public class Game1 : Microsoft.Xna.Framework.Game
    {

//Sección: Declaración de variables
//Acá es en donde vamos a definir nuestras variables, en este caso se definieron dos variables una para el GraphicsDeviceManager, que nos va a servir para manejar diferentes aspectos sobre la pantalla y los gráficos los cuales vamos a ver más adelante, y SpriteBach el cual nos va a servir para dibujar "Sprites" o "Imágenes".

        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;



//Sección: Constructor
        public Game1()
        {

//Acá se crea contenido para las variables que ya vienen definidas por XML, osea cuando hablamos de objetos si la variable existe pero no se hace un new del objeto el objeto no se crea.  Es como cocinar, nosotros queremos comer "Comida", ya tenemos definido lo que queremos comer "Comida" (Nuestro objeto), pero para comer la "Comida" hay que hacer la comida (new Comida(Fideos) ) y una vez hecha podemos usar el objeto "Comida" (Comida.Comer) . También se define la ruta de donde va a estar archivado el contenido ("Imágenes, Música, Sonidos, e.t.c."). Generalmente esto quedará así y no se toca más.
 
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }


//Sección: Metodo Initialize

        protected override void Initialize()

        {
 

 //Acá vamos a inicializar todas las variables o las constantes del juego, según la lógica del XNA inicializar las constantes como es el ejemplo de la ruta de nuestro contenido se hace en Public Game1() pero lo más correcto seria es hacerlo en el Initialize, eso queda a criterio de cada uno. Lo que si les podría decir es que las variables hay que definirlas acá si o si, no nos conviene inicializarlas en Public Game1() porque seguramente vamos a hacer lío.

            spriteBatch = new SpriteBatch(GraphicsDevice);

            base.Initialize();
        }

//Sección: Metodo Load Content
        protected override void LoadContent()
        {

 //Acá es donde cargamos todos los elementos del programa, la música, los sonidos, todo tipo de gráficos,e.t.c.

        }

//Sección: Metodo Unload Content
        protected override void UnloadContent()
        {

 //Acá vamos a descargar de memoria los elementos que ya no usemos más. Nos va a servir para optimizar nuestro juego y no se vuelva super lento.

        }

//Sección: Metodo Update
        protected override void Update(GameTime gameTime)
        {


 //Acá en el update tenemos lo que se va a ejecutar mientras el juego esta corriendo. En este caso verifica en todo momento que no se aprete el botón para salir de la aplicación.
         
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();

    
           base.Update(gameTime);
        }

//Sección: Metodo Draw

        protected override void Draw(GameTime gameTime)
        {

 //Acá vamos a poner todo lo que queramos dibujar. En este caso me esta pintando toda la pantalla de un color azul claro.

           GraphicsDevice.Clear(Color.CornflowerBlue);

            base.Draw(gameTime);
        }
    }
}

Gráficamente sería algo así:



Voy a dejar el código de fuente con todo esto explicado y organizado ya que a mucha gente le resulta más fácil verlo en el ejemplo práctico.

Código de fuente de MiPrimerJuego: Descargalo acá

Bueno en la próxima entrega ya vamos a comenzar a escribir un poco de código asi ponemos toda ésta teoría en práctica.

Leer entrada
miércoles, 5 de mayo de 2010

Instalación de XNA y C#

2 comentarios
 
Bueno para poder empezar necesitamos instalar el C#, ya que en nuestro caso el lenguaje a utilizar va a ser ese y el XNA 3.1

Recomiendo descargar el Visual C# 2008 Express Edition que es con el que trabajamos para hacer los ejercicios del tutorial. El Visual C# 2008 Express Edition se lo pueden bajar desde acá:
http://argade.blogspot.com/2010/04/visual-c-2008-express-edition.html

Luego de descargarse el Visual C# Express Edition hay que descargar el XNA 3.1 el cual lo pueden descargar desde acá:
http://argade.blogspot.com/2010/05/xna-game-studio-31.html

Instalar Visual C# 2008 Express Edition:

Al ejecutar la aplicación nos mostrará la siguiente ventana. 
Instalacion1
















Presionamos Siguiente.
Instalacion2
Marcamos las opciones y presionamos Siguiente.
Instalacion3
Desmarcamos el Cuadrito y presionamos Siguiente.
Instalacion4
Finalmente presionamos Instalar.
Instalacion5
y comenzaran a Descargarse los elementos marcados.
Instalacion6
Al Terminar nos dirá que tenemos 30 días para registrar nuestro producto, recomiendo hacerlo es totalmente gratuito las instrucciones las tienes en cerras en el primero ovalo.
Instalación de XNA 3.1;
Ahora bien ya tenemos instalado Visual Studio 2008 pero ahora debemos instalarle el XNA
Al ejecutar la aplicación se nos abre la siguiente ventana:
InstalacionXNA1
Esta será la imagen que veremos al correr el programa XNA 3.1, presionamos siguiente.
InstalacionXNA2
Aceptamos los términos del contrato y presionamos siguiente.
InstalacionXNA3
En esta ventana pueden activar la opción que quieran, una vez seleccionadas las reglas proceden a Instalar.
InstalacionXNA4
InstalacionXNA5
Presionamos Finalizar y ya tendremos instalado Visual C# y XNA Game Studio 3.1.

InstalacionXNAFinal

El próximo capítulo vamos a ver como se conforma un programa en C# con Xna.
Leer entrada
martes, 4 de mayo de 2010

Tutorial Xna (Introducción) por Argade

0 comentarios
 
Bueno gente les comento primero que nada que en este momento del blog voy a empezar a hacer un tutorial en español desde 0 para poder programar en Xna, asi que seguramente voy a tardar un poco mas en hacer los post y dejando de lado un poco las noticias, asi que si hay algun bondadoso que tenga ganas de ofrecerse para postear alguna que otra noticia en el blog, bienvenido sea.
Bien empecemos por lo basico
¿Qué es Xna?
XNA es una API desarrollada por Microsoft para el desarrollo de videojuegos para las plataformas Xbox 360 , Windows y Zune.
¿Qué es una API?
Según las siglas significa "interfaz de programación de aplicaciones". Una interfaz de programación representa una interfaz de comunicación entre componentes de software. Osea en definitiva una API es un conjunto de "llamadas" a ciertas bibliotecas. Y ¿Para qué me sirve una API?, bueno básicamente en esas bibliotecas a las cuales llamamos existen funciones que nos facilitan mucho las cosas, por ejemplo necesitamos iniciar el modo de video de la placa, sin una API tendríamos que estar usando ensamblador para llamar a interrupciones de video para poder iniciar el modo de video.
En definitiva algo asi:

#include  getch(), clrscr()
#include  MK_FP, geninterrupt()
#include memset()
unsigned char *pantalla = (unsigned char *) MK_FP(0xA000, 0);
void SetMCGA()
{
_AX = 0x0013;
geninterrupt (0x10);
}
void SetText()
{
_AX = 0x0003;
geninterrupt (0x10);
}

Si tuvieramos una API que llame a una biblioteca que tenga la función esta definida, seguramente haríamos algo asi:

InicializarVideo(Resolucion)

Conclusión resumimos 14 líneas en 1 sola.Tal vez no sea tan complicado inicializar el modo de video, pero si tendríamos que cargar modelos y texturas 3D podrían ser muchisimas líneas resumidas en una sola o en un par en su defecto.

Como ibamos explicando Xna técnicamente es un Marco de Trabajo (Framework), basado en .NET Framework 2.0 y al igual el .NET Framework 2.0, éste corre sobre el CLR, aunque en una implementación que provee un manejo optimizado para la ejecución de videojuegos.
Resumidamente y muy por encima un Framework es un entorno de trabajo que nos reune todas las funciones que llaman a las bibliotecas para poder programar más comodamente en lo que tengamos que hacer.
 Hasta acá todo muy lindo pero muchos se preguntarán que es el CLR, bién El Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) es el componente de máquina virtual de la plataforma .Net de Microsoft.  Es la implementación del estándar Common Language Infrastructure (CLI) que define un ambiente de ejecución para los codigos de los programas. El CLR ejecuta una forma de código intermedio (bytecode) llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL -- Microsoft Intermediate Language), la implementación de Microsoft del CLI.
Los desarrolladores que usan CLR escriben el código en un lenguaje como C# o VB.Net. En tiempo de compilación, un compilador.NET convierte el código a MSIL (Microsoft Intermediate Language). En tiempo de ejecución, el compilador en tiempo de ejecución (Just-in-time compiler) del CLR convierte el código MSIL en código nativo para el sistema operativo. Alternativamente, el código MSIL es compilado a código nativo en un proceso separado anterior a la ejecución. Esto acelera las posteriores ejecuciones del software debido a que la compilación de MSIL a nativo ya no es necesaria.
Para que se vea un poco mejor entonces lo que se hace es lo siguiente: Nosotros tenemos nuestro código en un lenguaje como C#, VB.NET o cualquier otro lenguaje .NET, cuando le damos play, para que ejecute el código de fuente, el programa se compila, al compilar el programa se convierte el código en C# o en el lenguaje que lo hayamos hecho en un lenguaje intermedio entre el C# o el lenguaje que hayamos utilizado y el código de máquina o código nativo, luego mientras se ejecuta el código de fuente (osea el programa ya compilo y está corriendo), se convierte lo que quedo en el lenguaje intermedio al lenguaje nativo "en tiempo de ejecución".


Hasta acá vamos bien, entonces el funcionamiento de todo el sistema seria

Capas de XNA - Las diferentes capas de XNA, vistas de arriba a abajo, el XNA game studio utiliza la  funcionalidad del xna framework, y éste a su vez se basa en el .net framework. Por último están las  plataformas a las que van destinadas nuestras aplicaciones, windows, Xbox 360 o zune.


En otras palabras, XNA es una plataforma de desarrollo de videojuegos sobre DirectX, en la cual disponemos de cierta funcionalidad ya integrada lo que nos permite centrarnos en la parte de qué queremos hacer en nuestro juego y no en el cómo hacerlo.
Para verlo gráficamente:


Framework de XNA - Los recuadros verdes se corresponde con la funcionalidad que ya viene de "serie" con el framework.

Bueno en este momento ya tendríamos una idea de que es XNA y de como funciona, en el próximo Capítulo vamos a ver lo que necesitamos instalar para poder comenzar con la acción.
Leer entrada

XNA Game Studio 3.1

0 comentarios
 
Microsoft XNA (Xbox New Architecture) es un conjunto de herramientas con un entorno de ejecución administrado proporcionado por Microsoft que facilita el desarrollo de juegos de ordenador y de gestión. Intentos para liberar a los desarrolladores de juegos la creación de "repetitivo código" y traer diferentes aspectos de la producción de juego en conjunto de un único sistema el XNA es una herramientas que se anunció el 24 de marzo de 2004, en la Game Developers Conference en San José, California. La primera comunidad Technology Preview de XNA Build fue lanzado el 14 de marzo de 2006. XNA Game Studio 2.0 fue lanzado en diciembre de 2007, seguida de XNA Game Studio 3.0 en 30 de octubre de 2008.

XNA actualmente abarca secciones de Microsoft Game Development Sections, incluyendo el estándar Kit de desarrollo de Xbox y XNA Game Studio.

XNA Game Studio 3.1 se anunció en la Game Developers Conference en San Francisco el 24 de marzo de 2009. La API es incluir el soporte para la reproducción de vídeo, una API revisada de audio, sistema de parte de Xbox Live y soporte para juegos utilizar la Xbox 360 Avatars. esta versión del software está disponible para su descarga como parte del programa de DreamSpark de Microsoft por parte de los alumnos.


                                                       Download Xna Game Studio 3.1
Leer entrada