Ir al contenido

publicidad
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.291
#1

Escrito 17 abril 2010 - 13:43

¿Tu sueño es trabajar creando videojuegos?

Entonces debes saber que para ello primero hay que aprender. De ahi surge la idea de este proyecto, aprender creando un videojuego indi.

Soy Ingeniero Informatico y llevo tres años trabajando en consultoria, pero mi sueño ha sido siempre crear videojuegos. Por ello he estado aprendiendo a usar XNA (creando motores de Tiles, Interfaces de Menu, motores de colisiones, conociendo las Clases propias y tal).

Mi propuesta es simple. Crear un grupo de trabajo para que juntos hagamos un pequeño juego. Si sabes programar a nivel basico y quieres dar el paso a XNA. Si estas estudiando (carrera o modulo) y te apetece entrar en este mundillo este es tu proyecto. Por supuesto, tambien es fundamental gente con conocimientos de diseño grafico.
Yo me ofrezco a enseñar (en la medida de lo posible) a programar en C# para XNA y tambien programacion orientada a objetos (Fundamentos de herencia, polomorfismo y tal) para la parte del Analisis. Tambien puedo resolver dudas o ayudar a que el codigo compile. Lo ideal seria que alguien con conocimientos de diseño grafico hiciese lo mismo coordinando a la gente que tiene menos idea y asesorandoles.
Por supuesto si gente con experiencia quiere entrar al proyecto sera bienvenida. Me encanta aprender y cualquier aporte sera bien recibido.

Las "normas" del proyecto serian:

-1 Es un proyecto para divertirnos, aprender y realizar una primera toma de contacto con el mundo de la programacion de videojuegos. Vamos a realizarlo en nuestro tiempo libre como un hobby, por lo que no habra fecha limite, plazos de entrega fijos ni nada por el estilo.

-2 Aunque es un proyecto de aficionados, en su tiempo libre y como diversion; debemos tomarnoslo en serio. Es decir, coordinemosnos, hagamos diseños, establezcamos estandares.
Colaborar en un proyecto de programacion entre varias personas requiere que pongamos un poco mas de nuestra parte que si lo hacemos solos. Tenemos que evitar pisarnos el codigo, tener siempre la ultima version para trabajar y hacer que todo nuestro codigo funcione junto.
Lo mismo en la parte grafica, sera necesario definir unas medidas y estandares.

-3 Olvidaos por ahora de pensar en vender el producto o cosas asi. Crear un juego es un proceso complejo y dificilmente nuestro primer proyecto pueda ser vendido (aunque he visto algunas cosas en la 360... :? ). Por ahora trabajaremos pensando en PC (para testear) y si algun dia vemos que tenemos algo interesante ya hablaremos de ello.

-4 En un principio el proyecto seria en 2D (me he centrado en aprender primero en 2D porque pense que seria mas sencillo). Si alguien tiene conocimientos de programacion o diseño grafico en 3D y quiere ayudarnos a los demas a aprender podemos hacerlo.

-5 No necesitamos por ahora, dedicar tiempo a escribir guiones, crear personajes o cosas similares. Intentar embarcarse en la creacion de un JRPG de 50 horas con una historia densisima seguramente caera en saco roto. Lo ideal seria algun juego mas arcade (directo) donde veamos "resultados" de una forma mas rapida y nos ayude a aprender de este mundillo. Por lo que si solo quieres crear guiones este no es tu proyecto.

-6 Por otra parte, aunque no vayamos a necesitar a alguien que cree guiones, si que vamos a necesitar a alguien que diseñe el juego, la mecanica. Si tienes alguna buena idea esta es una buena oportunidad para plasmarla. Como ya he dicho, aunque sea un proyecto de aficionados seria un proyecto serio, por lo que estaria bien que la propuesta se enviase en un documento (de Word o OpenOffice) detallando la mecanica (movimientos posibles, botones, comportamiento de enemigos y los principios del juego) asi como una fase de ejemplo detallada.

Bueno, esta es mi propuesta. Los interesados comentad en el hilo (para que nos vayamos conociendo) y enviadme un MP para que intercambiemos correos y tal.
Si quereis aprender no lo dudeis, juntos podemos comenzar.

Agradezco cualquier consejo de personas con experiencia y si he metido la gamba detallando alguna norma (por que sea absurda) comentadmelo.

Un saludo!

  • vanche

  • Methuselah

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

Escrito 17 abril 2010 - 15:16

Bueno yo quiero estudiar ingeniero informatico y mi pregunta es ...

Te enseñan algo como para empezar en este mundo?? programacion,softwares algo?

En cuanto al tema..

Yo soy Programador basico pero no quiere meterme todavia..
Soy muy buen diseñador grafico en 2D con herramientas de photoshop Llevo en total casi 2 años en esto...

Saludos!

  • Yirazk

  • Siren

  • vida restante: 100%
  • Registrado: 29 jul 2008
  • Mensajes: 3.291
#3

Escrito 17 abril 2010 - 15:33

En la carrera te enseñan a programar a un nivel decente, y lo mas importante, arquitectura del software.

Si un proyecto cuenta con una buena arquitectura se desarrollara mas rapido, sera mas reutilizable y mas modular.

Lo bueno es que estos conocimientos son muy utiles si se saben aplicar bien, lo malo es que no solo sirve con lo que enseñan en la carrera. Si no tienes iniciativa propia y buscas y aprendes por tu cuenta lo que te enseñan en la carrera "practicamente" sirve para aprovar los examenes. (Lo digo por varios compañeros mios que solo querian aprobar para dedicarse a ser comerciales de consultoras y evidentemente no han aprendido bien sobre programacion).

Respecto al tema del diseño, ¿tienes algun trabajo para mostrar? (no tiene que ser de un videojuego, tan solo algun diseño o algo asi), y que estilo de diseño te gusta mas, o te parece mas facil de hacer.
¿Tienes conocimientos de animacion 2D?

Perdona que haga tantas preguntas, pero es para saber que cosas podrias hacer (animador, fondos, menus, diseño de sprites, diseño de tiles....)

Un saludo y bienvenido al proyecto.

  • vanche

  • Methuselah

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

Escrito 17 abril 2010 - 17:01

Bueno ago graficos y animaciones de lo que busques..Animaciones no tanto pero te dejo los links de las muestras que ise ase poco..Tambien puedes ver los wallpapers de mi juego The population 0 aca en el foro..

Muestras de Firmas que hise para mi y otros usuarios...

http://i806.photobucket.com/albums/yy349/Warkanlock/FirmaWarkan.png

http://i806.photobuc...adBySunrise.png

http://i806.photobuc...irmaWarStaf.png

http://i806.photobuc...irmaInfamus.png

http://i806.photobuc...FirmaRidick.png

http://i806.photobuc...Infection-1.png

http://i806.photobuc.../FirmaVANCX.png

http://i806.photobuc...a-Flame-WKL.png

http://i806.photobuc...Img/superos.png


Bueno esas son...Las firmas los wallpapers estan en este tema...

http://zonaforo.meri...c.php?t=1533907

Y tambien tengo una plantilla para un modelo 3d de un auto..Pero esa no la puedo mostrar ya que tiene URL a otro pagina de internet pero te la puedo mostrar

También e echo menús para mis juegos de vídeo..TileSets para juegos los e adaptado y spriters los edito y los hago realistas..Como este..Le agrege el cuchillo y lo adapte sus colores...

http://img23.xooimag...al2-1aadf4f.png

Contacta con migo:

nano_1842@hotmail.com

Saludos!

  • davidlie

  • TERRESTRIS VERITAS

  • vida restante: 100%
  • Registrado: 25 feb 2007
  • Mensajes: 26.266
#5

Escrito 17 abril 2010 - 21:55

yo realmente quiero aprende a programar para XNA, pero lo veo demasiado pronto

estoy haciendo un juego ahora mismo con el motor ogre, como tu dices hobbie, pero a su vez algo serio
tengo conocimientos basicos de c++ y de 3D (modelado y texturizado, queria aprender a animar mediante esqueletos con el juego) todo esto desde mi casita, ya que no iría a la universidad hasta el año que viene y si todo va bien

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



  • Ellolo17

  • Zodiark

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

Escrito 17 abril 2010 - 22:14

Jo, david. Recuerdo cuando hace mazo viniste aqui y empezaste por el principio y ya estas con ogre y todo. Se me cae una lagrimilla de orgullo:llora:XD

Un saludo y suerte ;)

  • Yirazk

  • Siren

  • vida restante: 100%
  • Registrado: 29 jul 2008
  • Mensajes: 3.291
#7

Escrito 18 abril 2010 - 11:50

davidlie, pues si quieres aprender XNA creo que esta es una buena oportunidad.
Hay otro programador interesado y estoy reuniendo y preparando algunos tutoriales para comenzar desde 0 en C#. Si me dices que ya tienes conocimientos basicos de C++ pues genial, porque te costara mucho menos pillarlo.

La idea es comenzar a pillar el leguaje primero, las claves del funcionamiento de XNA (metodos Update y Draw) y luego ya empezar a dar un buen repaso al tema de Clases, Herencias, Polimorfismo... Yo creo que va a ser bastante util, y te digo desde ya que no le tengas miedo porque una vez te pones ves que las bases son sencillas.

Si quieres aunque solo sea de "oyente" puedo mandarte alguna cosilla en cuanto empecemos y ya lo judgas tu por tu cuenta. Un saludo.

PD: Ellolo17 que tal ves tu esta iniciativa ¿demasiado ambiciosa? ¿mal planteada? Me interesaria mucho tener la opinion de alguien con experiencia en el sector.

Un saludo!

  • Ellolo17

  • Zodiark

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

Escrito 18 abril 2010 - 12:30

Sobre los tutos: Cualquier documento que trate esto esta bien. Aunque se acabe quedando en "introduccion al c#" -al menos por lo que veo no vas a decir fundamentos de la programacion- algo es algo y servirá de ayuda para los que vengan despues. Si te pones y llegas a completarlo del todo mejor todavia ;)

Sobre la propuesta del juego esta bien. Sobre la gente que debes buscar, cuanto mas "cercana" sea y por esto me refiero que los tengas cerca para poder quedar de vez en cuando a ver en conjunto como anda y poder meter algo de presion con los tiempos. Aunque los tengais libres sin algo de esa presion al final a la gente se le acaba pasando o puede que se encuentre con un problema y se tarde mas en hallar la solucion. Tener a mucha gente on-line es una solucion y es lo que buscas pero yo prefiero 3 o 4 personas con los que pueda quedar un sabado por la tarde en una cafeteria con wi-fi para ver como anda.

Tambien comentar que hay un libro llamado "Videojuegos: Manual para Diseñadores Gráficos" en el que te viene todo lo que rodea la industria por encima y con algun ejemplillo. No se mete en darte codigo para hacer juegos, si no en ayudas para elegir que clase de juego hacer, como documentarlo, hacer guiones, crear los personajes y etapas, y luego a la generacion de contenido por encima. Esta muy bien.
http://www.casadelli...1/2900001282678
Lo tienen en la biblioteca del Campus Sur de la UPM -ahi me lo empollé hace poco XD-

Un saludo.

  • davidlie

  • TERRESTRIS VERITAS

  • vida restante: 100%
  • Registrado: 25 feb 2007
  • Mensajes: 26.266
#9

Escrito 18 abril 2010 - 14:04

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



  • vanche

  • Methuselah

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

Escrito 18 abril 2010 - 14:50

Yo puedo aprender 2 cosas soy muy buen texturer (diseñador 2D con graficos HD)y tambien se programacion pero me interesa aprender C#

  • Yirazk

  • Siren

  • vida restante: 100%
  • Registrado: 29 jul 2008
  • Mensajes: 3.291
#11

Escrito 18 abril 2010 - 17:34

Gracias por los consejos Ellolo17, intentare conseguir el libro que comentas porque parece muy interesante. Respecto al tema de formar un equipo que pueda reunirse fisicamente seguramente sea una gran idea para un proyecto con objetivos muy definidos. El proyecto de apreder seguramente se veria beneficiado, pero por ahora con comenzar a trabajar junto a mas personas para ver nuevas formas de afrontar problemas, retos y desarrollos. Espero aprender mucho trabajando con otras personas y aunque realizar reuniones fisicas seria genial, por ahora me conformo con poder estar en contacto por msn, mps o foros.

He preparado un pequeño documento de ejemplo para que aquellos que tengan una porpuesta de juego puedan usar como base para detallarlo. Comentadme si puedo mejorar cualquier cosa o si teneis ejemplos mas detallados. Son unas pequeñas especificaciones para un juego basico de plataformas que podria ser implementado de forma progresiva comenzando con un protonivel y pasando mas adelante a realizar niveles. No es mas que un ejemplo, no el juego que vamos a desarrollar, ya que aun estoy esperando propuestas de juego.

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


Especificaciones de un Juego de Plataformas:

1- Personaje Principal:

1.1 - Descripcion breve del Personaje

(Este trabajo tambien puede dejarse al equipo de diseño grafico, para que decidan ellos el diseño de los personajes o del mundo que los acompaña)

1.2 - Movimientos Basicos

* Moverse a la Derecha
* Moverse a la Izquierda
* Saltar
* Agacharse

(Serian los primeros en los que se comenzaria a trabajar en un protonivel. Mientras los programadores trabajan creando la clase del personaje, los metodos, la captura de botones, etc. Los diseñadores trabajarian en los sprites y animaciones del mismo)

1.3 - Movimientos Especiales

* Deslizarse
* Agarrar Objeto
* Lanzar Objeto

(Una vez creados y testeados los movimientos basicos comenzariamos con el diseño de los movimientos especiales. No tiene porque ser seguido ya que antes de avanzar con el propio personaje seria interesante definir mas conceptos del escenario y alguna prueba con enemigos basicos).

1.4 - Atributos

Las caracteristicas que tiene el personaje. En este caso seran:

* Numero de Vidas iniciales: 2
* Numero de vidas Minimas (ultima vida): 0
* Puntos bonus iniciales: 0

2- Controles:

2.1 - Definicion de los controles

Contemos con un pad de 4 direcciones (<, >, v, ^) sin doble entrada (sin diagonales) y 2 Botones (A y B)

* Moverse a la Derecha: >
* Moverse a la Izquierda: <
* Saltar: A ( O tambien se puede usar ^)
* AGacharse: v
* Deslizarse v + A
* Agarrar Objeto: B
* Lanzar Objeto: B

(Contemos con que tenemos el PC como plataforma al comienzo. Por lo que tenemos las flechas de direccion como cruzeta. En un comienzo, no se contaria con la doble pulsacion de teclas para marcar diagonales. ¿Como podemos solucionar esto? Por ejemplo haciendo como se hizo en FF VI donde para hacer un cuarto de circulo valian tanto: [v v >] o [v > >]. Por ahora contaremos con el uso de solo dos botones para simplificar)

2.2 - Efecto de las acciones

Definimos el efecto de las acciones

* Moverse a la Derecha: Disminuye su aceleracion X (animacion de avanzar)
* Moverse a la Izquierda: Aumenta su aceleracion X (animacion de avanzar inversa)
* Saltar: Aumenta su aceleracion Y (Salta hasta el doble de su altura)
* AGacharse: su aceleracion se para y cambia a un sprite agachado
* Deslizarse se desliza usando un sprite agachado hasta el triple de su tamaño (si no puede ponerse de pie continua avanzando hasta encontrar un hueco donde ponerse de pie)
* Agarrar Objeto: Agarra un objeto y lo sostiene sobre su cabeza
* Lanzar Objeto: Lanza un objeto agarrado con una parabola cuya maxima altura es la altura del personaje por dos y la maxima distancia es la anchura del personaje por tres.

(Todas estas caracteristicas son orientativas cuanto antes se tenga un protonivel antes se podran probar. Cualquiera de estos efectos sera testeado y pulido hasta alcanzar el control que se desee. Por esta razon es importante plantearse metas accesibles que puedan hacerse funcionales. Intentar empezar desde cero un proyecto muy ambicioso provoca que parezca que nunca se van a alcanzar prototipos funcionales)

3- Elementos del juego:

3.1 - Motor de Tiles

Contariamos con un motor de tiles montado sobre un fondo fijo para cada pantalla. Las caracteristicas de las tiles serian:

* Pasable: Verdadero si puede ser atravesada por el personaje desde abajo y Falso si el personaje no puede atravarso.
* Solido: Verdadero si el personaje puede andar sobre el y Falso si lo atraviesa.
* Rompible: Verdadero si se puede romper con un objeto y Falso si no puede romperse.
* Desvanecesre: Un valor que indica el tiempo que el tile esta Solido para pasar a No Solido durante el mismo periodo que indica el valor. Si es 0 el tile no tiene este propiedad.

(En base a las caracteristicas definidas se definirian varios y objetos y sus caracteristicas: Suelo[No Pasable, Solido, No Rompible, 0], Plataforma1[Pasable, Solido, No Rompible, 0], PlataformaDesvanece1[Pasable, Solido, No Rompible, 5], Muro[No Pasable, Solido, No Rompible, 0], RocaRompible[No Pasable, Solido, Rompible, 0]. Se detallarian primero una serie de elementos genericos para intentar implementar varios de ellos en el protonivel. Se podran añadir mas caracteristicas y mas tipos de Tiles al Motor para hacerlo mejor.)

3.2 - Elementos Interactivos

Detallamos los elementos con los que pueden interactuar el personaje.
(Lo ideal seria detallar sus caracteristicas como las de las Tiles. De esa forma podemos crear los objetos para programar con las caracteristicas en mente. Pero no es estrictamente necesario ya que podres extraer la estructura de los objetos a traves de una descripcion detallada. Voy a hacerlo de esa forma porque los Tiles ya estan detallados de la forma mas estructurada)

* Roca: Puede ser agarrada por el personaje y lanzada.
* Bonificacion: Objetos que al ser tocados dan puntos bonus: (Zafiro: 100, Rubi: 200, Diamante: 300)
(Roca y Bonificacion serian los objetos que implementariamos inicialmente en el protonivel debido a que son los mas sencillos. Roca sera implementada al mismo tiempo que la habilidad especial del personaje de agarrar objetos.)
* Puerta: Son impasables hasta que el personaje lanza una llave a la puerta.
* Llave: Se pueden coger y solo sirven para abrir puertas cuando se lanza contra una.

(La Puerta conlleva tambien un trabajo de animacion que deberan realizar las personas encgargadas del diseño grafico. Una vez creados el motor de Tiles y los elementos interactivos basicos, el protonivel ya deberia habernos dado las pautas para la creacion de escenarios. Valores como la distancia de salto, la distancia de lanzamiento y la aceleracion ganada con la carrerilla, asi como el valor maximo de aceleracion que queremos darle. Cuando ya tengamos estos parametros definidos el juego ya sera un proyecto viable. Se podran comenzar a diseñar niveles y a aumentar el numero de elementos interactivos)

3.3 - Enemigos

Detallamos la funcionalidad basica de los enemigos:

* Movimiento: De izquierda a derecha a velocidad constante como el personaje.
* Salto: El enemigo va saltando con un empuje determinado.
* Caer: Si es Verdadero da la vuelta al llegar al final de la plataforma. Si es negativo salta a la de abajo.
(Estas serian las funcionalidades de los enemigos basicos. Los enemigos avanzados podrian usar clases que hereden de la basica y que tengan nuevas funcionalidades como:
* Disparar: El enemigo arroja un arma que puede acabar con el personaje. La fuerza y trayectoria esta definida con un vector.
* Embestir: El enemigo reacciona si detecta al Personaje en su radio de accion y se dirige a el para atacrle.

(Esta seria una definicion basica de enemigos para poder realizar pruebas con ellos en el protonivel. Una vez definidas e implementadas las partes anteriores se puede comenzar a desarrollar niveles con mas complejidad y crear nuevos tipos de tiles, enemigos y objetos Interactivos.)

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

Bueno, espero opiniones del documento y que alguno se anime a presentar sus propias ideas.

Un saludo.

PD: davidlie suerte con la selectividad!

  • davidlie

  • TERRESTRIS VERITAS

  • vida restante: 100%
  • Registrado: 25 feb 2007
  • Mensajes: 26.266
#12

Escrito 18 abril 2010 - 18:51

fantástico en serio, que decirte, es básicamente un plataformas lo que quiero hacer, aunque en 3D (ya que dibujar, no se me da bien, aunque si el 3D cosa muy rara) esto me vendrá de perlas
gracias por todo

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



  • vanche

  • Methuselah

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

Escrito 18 abril 2010 - 18:57

Bueno yo puedo hacer los tiles pero no se muy bien dibujar podria texturizar algun render que este en 3D y hacerlo que paresca 2D esta en ustedes..Me encanta la idea..

PD:Yirazk Vos estas estudiando Ingenieria informatica? esto lo aprendiste en esa carrera?

  • Yirazk

  • Siren

  • vida restante: 100%
  • Registrado: 29 jul 2008
  • Mensajes: 3.291
#14

Escrito 18 abril 2010 - 19:05

Bueno yo puedo hacer los tiles pero no se muy bien dibujar podria texturizar algun render que este en 3D y hacerlo que paresca 2D esta en ustedes..Me encanta la idea..

PD:Yirazk Vos estas estudiando Ingenieria informatica? esto lo aprendiste en esa carrera?


Hombre, aprenderlo asi, directamente no.

Pero te enseñan a realizar capturas de requisitos y analisis (lo que he mostrado seria lo primero con lo que trabajariamos. Despues de eso se definirian las clase, las relaciones y herencias...); y esos conocimientos si tu te lo curras los puedes aplicar a lo que quieras, desde aplicaciones para bancos, pasando por paginas Web y videojuegos.

No te van a enseñar directamente como hacerlos, pero los conceptos y bases que te muestren podras utilizarlos. Siempre pongo el mismo ejemplo, tengo compañeros que nunca se interesaron mas alla de aprobar y por supuesto no aprendieron nada. Hay que poner de tu parte, para mi es lo mas importante de la carrera, las ganas que le eches.

Este documento de especificaciones es lo primero con lo que se trabajaria. Aunque parezca mentira, mucha parte del proceso previo a abordar un proyecto es mas en "papel", definiendo clases, relaciones y estandares para que el proceso de desarrollo sea mas directo, reutilizable y modular.

Si alguien esta interesado en redactar algun documento de especificaciones para algun proyecto, que lo haga. Tambien, se puede proponer un pequeño ejercicio, que consistiria en desarrollar un documento similar al que he realizado yo, pero solo centrandose en la pantalla de titulo (definiendo los objetos que hay, las reacciones de pulsar los botones, etc...)

Un saludo.

  • vanche

  • Methuselah

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

Escrito 18 abril 2010 - 19:09

Bueno me estoy bajando el XNA 3.0 para tener mas o menos el mismo..Pero tengo unas preguntas que hacer..

Yo no se C# no se ni como se comienza el código ya que no se el lenguaje...¿Me podrías pasar algún manual(yo tengo pero quería uno que aprendamos todos del mismo, así es mas fácil)?

Otra cosa es que estoy aprendiendo C++ cual empiezo a aprender mejor...


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