Ir al contenido

publicidad

Foto

¿Quieres aprender a hacer un videojuego? Entra aqui.


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
137 respuestas en este tema

  • Yirazk

  • Siren

  • vida restante: 100%
  • Registrado: 29 jul 2008
  • Mensajes: 3.293
#16

Escrito 18 abril 2010 - 18:34

En el proyecto vamos a usar C# que es el lenguaje sobre el que trabaja XNA.

Hay que tener en cuenta que XNA proporciona muchas herramientas (manejador de sprites, Importacion de fuentes e imagenes directamente, control de botones mas facilitado...) por lo que no empezariamos "directamente" desde 0 en C#.

Una vez que crees el primer proyecto, veras que hay creadas ya las clases:

-Game1

-Program

Program contiene el metodo main (el inicializador) y lo unico que hace es crear un objeto al que llama game con la clase Game1. Luego utiliza el metodo Run() del objeto game.

Por su parte, la clase Game1 se define con los siguientes atributos:

GraphicsDeviceManager graphics; //El manejador de elementos graficos
SpriteBatch spriteBatch; //Un sprite batch que le pasaremos sprites para pintarlo.

Luego esta el constructor de la clase Game1 que se encarga de inicializar el objeto graphics y añade la carpeta Content a los directorios desde los que trabaja:

graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";

Al crear el objeto graphics podeis observar que le pasamos por parametro this, es decir le pasamos el propio objeto juego al crear el manejado grafico. Esto sera una constante en los objetos que creemos, ya que asi puede acceder a cualquier manejador o al propio objeto graphics desde las otras clases que creemos.

Luego viene el metodo Inicializa que actualmente solo llama al metodo de la superclase Game de la que hereda Game1.

El siguiente es el metodo LoadContent desde el que actualmente solo se inicializa el spriteBatch. En un proyecto inicializariamos a muchos de los componentes basicos en este metodo, cargariamos texturas, creariamos fuentes y tambien inicializariamos nuestros propios objetos creados por nuestras clases.

Luego esta el metodo UnloadContent, que haria la funcion inversa del LoadContent. Por ahora no vamos a usarlo.

Los dos siguientes metodos (Update y Draw), son practicamente el corazon de XNA:

El metodo update se actualiza cada cierto tiempo y es quien actualiza las acciones que realiza nuestro personaje o los enemigos. Actualmente solo espera a que se quede presionado el boton Back para salir del juego. Tambien llama al metodo de la superclase.
Nuestra forma de actuar sera dejar nuestros objetos en el GameComponentCollection que la clase Game1 hereda de la superclase Game. De esta forma, cuando llamemos al metodo Update de la superclase el se encargara de llamar a los respectivos Update de cada componente.

El meto Draw por su parte, realiza practicamente la misma funcion que Update (se actualiza a si mismo cada cierto tiempo) pero en lugar de actualizar las acciones o controlar la entrada de comandos por botones, dibuja los graficos o letras de nuestro proyecto.
Actualmente solo limpia la pantalla y la pone en color:

GraphicsDevice.Clear(Color.CornflowerBlue);

Podeis cambiar el metodo tras Color para ver diferentes colores de fondo.
En el proyecto actuaremos con Draw igual que con Game. Al meter nuestros propios objetos en la GameComponentCollection, el metodo Draw de la super clase Game se encargara de llamar a cada respectivo Draw de nuestros objetos.

------------------------------------------

Bueno, eso es una pequeña introduccion a XNA, si veis que hablo demasiado de conceptos como Clase, Objeto o super clase decidmelo y bueno, os comento en mas detalle que son y tambien os puedo pasar tutoriales o buscar alguno en internet.

Un saludo y no dudeis en preguntar.

    pepe216

  • EXPULSADO
  • vida restante: 0%
  • Registrado: 20 jun 2009
  • Mensajes: 2.639
#17

Escrito 18 abril 2010 - 22:14

si lo dicho, tengo conocimientos básicos de c++ pero ya digo todo es muy basico, ya que como eso lo tengo que dar en la carrera, no lo preste mucha atención y me estoy centrado mas a diseño 3D

si me gustaría apuntarme, el problema es que tengo la selectividad a 2 meses, y tampoco me gustaría atrasar este proyecto, que ya de por si me parece muy bueno

------------------------------------------------------------------------------------------------------
Imagen Enviada




Hola, antes que nada davidlie con que haces modelos 3D??? y como los animas y les pones texturass llevo tiempo intentando aprender eso pero el Anim8r y el Blender me desesperaan tendrias que decirme como empeza... :)

Ahora esoty aprendiendo XNA y ya se dibujar 1 sprite y hacerle moverse me las arreglo con un tutorial en ingles, se de clases y todo eso porque estudio Java asi que podria ayudar en el proyecto... al menos para aprender algo :]

  • davidlie

  • PARIETINAE UMBRA

  • vida restante: 100%
  • Registrado: 25 feb 2007
  • Mensajes: 26.314
#18

Escrito 18 abril 2010 - 22:30

si lo dicho, tengo conocimientos básicos de c++ pero ya digo todo es muy basico, ya que como eso lo tengo que dar en la carrera, no lo preste mucha atención y me estoy centrado mas a diseño 3D

si me gustaría apuntarme, el problema es que tengo la selectividad a 2 meses, y tampoco me gustaría atrasar este proyecto, que ya de por si me parece muy bueno




Hola, antes que nada davidlie con que haces modelos 3D??? y como los animas y les pones texturass llevo tiempo intentando aprender eso pero el Anim8r y el Blender me desesperaan tendrias que decirme como empeza... :)

Ahora esoty aprendiendo XNA y ya se dibujar 1 sprite y hacerle moverse me las arreglo con un tutorial en ingles, se de clases y todo eso porque estudio Java asi que podria ayudar en el proyecto... al menos para aprender algo :]


para modelos 3D utilizo blender, aunque mi favorito es maya, probé la versión de prueba y es una maravilla, pero bueno mientras ago algún que otro curro par ahorrar hay que conformarse con eso

------------------------------------------------------------------------------------------------------
Imagen Enviada



    IBEROorc

  • EXPULSADO
  • vida restante: 0%
  • Registrado: 16 feb 2004
  • Mensajes: 14.632
#19

Escrito 19 abril 2010 - 08:24

y el 3dmax que tal?

  • EpicFail

  • Zalhera

  • vida restante: 100%
  • Registrado: 01 jul 2009
  • Mensajes: 2.225
#20

Escrito 19 abril 2010 - 10:02

Buenas, me ofrezco.

Dispongo de bastante tiempo libre, salvo por las mañanas q trabajo aunq algo se puede hacer desde ahi.

El tema es que yo basicamente solo eh tocado visual basic, es mas lo digo claramente, lo unico que me llama del sector de los videojuegos es Creativo, pero por muy buenas ideas que tenga sin un curriculum de cosas amateur detras no voy a llegar a ninguna parte.

Asi que por fin me lanzo, me empollare manuales de C que tengo de un colega que estudia la carrera de Matematicas y ahora mismo estoy ya aprendiendo a dibujar bien sobre papel (mejor empezar por ahi creo yo). Algo eh tocado de 3D studio en cuanto a modelaje, un Ultramarine de Warhammer 40k que la verdad es que me salio clavado y poco mas, pero bueno todo es bajarse manuales, y como dices q primero 2D mejor q mejor.

Rellenare el folleto que as propuesto para un juego totalmente nuevo, vamos no una idea mia anterior. Lo antes posible te lo mandare, pero antes me gustaria saber como ves mis bajos conocimientos tecnicos, aprendo rapidamente y ya te digo que el tema me interesa muchisimo, y estoy concienciado de que aunq tanto el diseño grafico como la programacion no me acaben de "apasionar" es algo por lo q tengo q pasar si quiero llegar a tener posibilidades como creativo.

Un saludo espero tu respuesta!!

    Underclass Hero

  • EXPULSADO
  • vida restante: 0%
  • Registrado: 14 mar 2009
  • Mensajes: 1.246
#21

Escrito 19 abril 2010 - 16:27

Bueno, hay algunas personas que se han ofrecido, y pienso que si nos lo tomamos con un poco de seriedad y nos ayudamos entre todos, aunque no consigamos hacer un gran proyecto (que tampoco es la finalidad) podemos aprender mucho unos de otros, y seguramente entre todos conseguiremos ese paso que algunos necesitan (entre los que me incluyo) para aprender programación y tener las cosas mas claras.

Espero tu respuesta Yirazk

  • vanche

  • Methuselah

  • vida restante: 100%
  • Registrado: 01 feb 2009
  • Mensajes: 196
#22

Escrito 19 abril 2010 - 16:38

Yo estoy dentro y podría hacer 2 cosas..La parte gráfica como los menús y los wallpapers..Y también me gustaría aprender programación en C# ya que me baje el engine XNA y me estoy bajando el Visual Studio C# Express...Pero me tira pantallaso azul asi que esperare cambiar la PC XD

  • Yirazk

  • Siren

  • vida restante: 100%
  • Registrado: 29 jul 2008
  • Mensajes: 3.293
#23

Escrito 19 abril 2010 - 18:12

Buenas EpicFail y bienvenido.

Lo primero (y no quiero desilusionarte), es decirte que la parte donde se define y diseña un sistema de juego no es tan "amigable" como puede parecer a simple vista. El documento que he dejado como ejemplo es en base a un juego mucho mas simple que el primer Mario Bross.
Para redactar una mecanica y que un proyecto pueda salir adelante es necesaria buena documentacion, buenos estandares y muchos diagramas de relaciones. No es tan sencillo como dar una simple idea, sino que requiere tanto trabajo como la parte de programacion (una vez montados los engines de Tiles y los componentes basicos avanza a mejor ritmo)

Repito que no quiero desilusionarte o espantarte con esto, sino mas bien poner de manifiesto que crear una buena mecanica, definirla para que otros puedan implementarlas y que realmente funcione no es tan sencillo como puede parecer a simple vista.
Pero desde aqui te animo a intentarlo. Intenta plasmar tus ideas en documentos como el que he puesto (añade mas secciones o quita las que no sean utiles). Pero lo principal es que pueda verse como funciona la idea por dentro y lo que se quiere conseguir.

Un saludo y suerte con el PC vanche.

  • EpicFail

  • Zalhera

  • vida restante: 100%
  • Registrado: 01 jul 2009
  • Mensajes: 2.225
#24

Escrito 19 abril 2010 - 18:24

Buenass, te eh enviado el documento nose si lo as recibido, ya se que unicamente no es idear, pero si que tengo claro que es el final del camino que quiero recorrer (aunque el camino sea todo un maraton XD).

Pero como ya eh comentado colaborare tanto a nivel de diseño como a nivel de programación. Me gustaria saber tu opinion sobre el documento que te eh mandado, y ya que somos 3 o 4 estaria bien pensar como nos organizariamos, ya sea via web o en persona.

Un saludo!!

PD: tranquilo no me desilusionas, ya se que es muy dificil, pero te aseguro que pondre de mi parte para ayudar a llevarlo a flote :D

  • kerith

  • Childrer

  • vida restante: 100%
  • Registrado: 18 abr 2010
  • Mensajes: 31
#25

Escrito 19 abril 2010 - 20:30

Hola, me llamo Kerith y llevo toda la vida enamorado de los ordenadores, y más de 10 de los videojuegos. El juego de mi vida es el ffx, y mi sueño es participar en Square Enix.

Hace poco más de dos semanas me enteré de que un claval de 15 años había creado un juego de éxito para el IPhone, y me dije que yo tambien quería hacer mis juegos, así que busqué herramientas, y empezé a trastear con el GM, porque es muy fácil.
He empezado a usarlo hace menos de una semana y la verdad es que me encanta, hasta he creado un juego sencillísimo de plataformas con 3 niveles, música, lava, enemigos, etc.
Pero quiero más. Quiero ser parte de un proyecto serio, quiero escribir código, y prepararme para buscar trabajo cuando me venga la ocasión.

Bueno, al grano. El caso es que me gustaría pertenecer a un proyecto serio, y aprender todavía mas, y vuestro proyecto me parece una iniciativa estupenda, y quiero participar.
Me gusta la programación, escribir historias e incluso podría intentar hacer algo de música con piano y guitarra (aunque nunca lo he intentado).
Para tener cualquier ejemplo, sean historias, el juego de plataformas en .exe, o una grabación mía tocando, no dudes en pedirla.
Apenas sé programar, he intentado varias veces aprender un lenguaje, pero, al no tener un proyecto definido, he ido perdiendo interés. (he probado con VB, PHP Y HTML). Sin embargo, se me da muy bien entender código, y aprendo rápido.

Ah, otra cosa. Soy estudiantey para mi los estudios son de máxima prioridad, así que el tiempo que le puedo dedicar a esto se limitará bastante (mucho) en época de exámenes.

Espero respuesta en cualquier caso, tanto afirmativo como negativo.
Salu2, Kerith

  • vanche

  • Methuselah

  • vida restante: 100%
  • Registrado: 01 feb 2009
  • Mensajes: 196
#26

Escrito 19 abril 2010 - 21:56

Bueno Borikus la verdad que yo también me gustaría aprender programación como tu(se algunos lenguaje pero me interesaría C# o C++).Pero el tema es que este proyecto es solo de prueba y para aprender mejor entre grupos...Saludos!

  • kerith

  • Childrer

  • vida restante: 100%
  • Registrado: 18 abr 2010
  • Mensajes: 31
#27

Escrito 20 abril 2010 - 16:21

Quizás no me expresé como debía (que es muy posible), pero lo que realmente quería decir es que desde pequeño me entusiasmó el saber cómo se movía la bolita en la pantalla, y cambiaba de dirección al chocar con la otra pala, y, ahora que me he puesto a investigar un poco, he visto la enorme (es más, GIGANTENORME XD) cantidad de personas que hay detrás de un juego tan realitvamente simple como el primer juego de nintendo con Mario (el del gorila que le tira barriles), y me he dado cuenta de que incluso el juego indie más peuqeño necesita un equipo.

También quería decir que esta es una oportunidad buenísima para alguien que quiera conocer tanto las etapas de creación de un videojuego como a personas con muchas ganas (parezco un cartel publicitario de ESNE), y me gustaría formar parte.

Por supuesto, es perfectamente comprensible que sea rechazado, taento por mi inexperiencia, como por que el grupo ya esta organizado.
Aún así, os deseo lo mejor, y espero que, si llegáis a crear un buen juego (quizá no el primero, pero quién sabe si el segundo...), hayáis aprendido mucho en el proceso:
"Si vas a emprender tu viaje a Itaca,
pide que tu camino sea largo,
rico en experiencias, en conocimiento."...

salu2, kerith (prefiero kerith que borjikus)

  • gotenx

  • Bahamut

  • vida restante: 100%
  • Registrado: 13 ene 2008
  • Mensajes: 4.253
#28

Escrito 21 abril 2010 - 15:18

Me encantaría aprender XNA,y tu tutorial parece muy bueno y completo,lo malo es que no se casi nada de C,y menos de C#,conozco las bases de la programación en C,ademas de Python,pero para tanto no.
Puedo hacer algunos efectos en Photoshop,como luces de neon,piedra (tambien he hecho una especie de nebulosa para un juego mio de Game Maker) etc.
PD: Intentare tomar un curso intensivo de C# ¿Varia mucho del C?
PPD: Tambien escribo buenas historias
EDIT:veo que si varia,si X-D

  • Ellolo17

  • Zodiark

  • vida restante: 100%
  • Registrado: 16 nov 2006
  • Mensajes: 6.208
#29

Escrito 21 abril 2010 - 18:51

Psst... veo muchos por aqui que no se han leido las normas...

Datos personales como edad o nombres reales mejor que vayan por mp. Ahora ya se la edad y el nombre de muchos de vosotros y si cometeis un fallo será como "AAaaa... eso por ponerte a jugar a cosas de mayores. Primero acaba la carrera/aprende a programar y luego te pones a hacer un juego."

Es coña. Pero para evitar cosas asi puse esas subnormas de este subforo. Asi que ya podeis ir editando vuestros mensajes porque eso es algo que es de vuestra responsabilidad y no os recomiendo que lo pongais por aqui por lo que he dicho que pueda pasar ;)

Un saludo.

  • kerith

  • Childrer

  • vida restante: 100%
  • Registrado: 18 abr 2010
  • Mensajes: 31
#30

Escrito 21 abril 2010 - 19:40

Fallo corregido. No volverá a pasar. De todas formas, ya he soportado comentarios hirientes respecto a la edad, y no he dado nigún dato que pueda costarme algo realmente importante (ni mis apellidos, ni mi dirección).


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad