Voy a crear un videojuego. ¿Consejos?

Dante88

Pues sí, eso mismo, tengo pensado crear un videojuego, además tengo intención de hacerlo poco a poco y currarmelo todo lo que pueda.

El caso es que no tengo ni idea del tema (de hacer videojuegos) xD, y he estado mirando por internet, y bueno, he encontrado el XNA de microsoft que es potente, gratis, y parece no demasiado difícil, es el más conocido por lo que se ve.

El problema viene cuando no tengo ni idea de como empezar y los tutoriales en español escasean, además de que no tengo ninguna idea a grandes rasgos de por donde tengo que comenzar, primero empiezo creando el personaje o con codigo a saco? xD

Bueno, pues a ver si hay alguien con experiencia por aquí, o con anecdoras también me sirve xD, y me puede contar su experiencia, paginas con tutoriales, recomendaciones de programas, etc.

Y bueno también me gustaría saber si en XNA se puede programar en C++ que es el que más conozco, ya se que en C# se puede y tengo entendido que se parece, pero si es C++ mejor.

Gracias.

Poisonous

Mi unico consejo es que empieces con algunos un poco simple royo pong, tetris, 3 en raya y poco a poco vayas subiendo el liston. Si pretendes hacer un megajuego 3d con online y demas burradas posiblemente ni lo empieces.

Para todo lo demas:
Como empezar en el desarrollo de videojuegos?
http://www.losersjuegos.com.ar/referencia/articulos/como_empezar
Como hacer juegos?
http://www.losersjuegos.com.ar/referencia/articulos/make_games
Conceptos basicos para juegos 2d
http://www.losersjuegos.com.ar/referencia/articulos/conceptos_basicos

Que yo sepa XNA solo se puede usar con C#. Ademas para mi gusto falla en el tema de distribucion, enseñarle tu juego a un amigo para q lo pruebe en su pc puede ser una odisea.

DaRkViRuZ

paciencia y suerte

r2d2rigo

Pues preparate, porque te vas a hartar a aprender metodologia de programacion, depuracion y mil cosas que desde fuera ni creias que ibas a usar. Mas que nada porque hay que tener el codigo limpio y estructurado y hay que hacer optimizacion en mil sitios, porque luego una mierda de pong te puede correr a 10fps y con un consumo de 100 megas.

Aun asi te recomiendo XNA encarecidamente, si dices que tienes experiencia en C++, C# sera un paseo para ti, aparte que te facilita muchisimo el proceso de gestion de contenido. Como recursos tienes el Creator's Club y la Community en Codeplex; a esta ultima pagina vamos a subir en breve el codigo fuente de 8 juegos que hicimos para un concurso del club .NET de Alicante, asi que estate atento.

PD: el que yo hice es en 3D y con miles de pijadas, asi que olvidate de que te sirva de referencia si empiezas ahora :P

MTX_Anubis

¿Consejo y no sabes por donde empezar?

No empieces a no ser que quieras hacer un tetris o algo parecido, que es por donde deberías empezar la verdad. Como pretendas ser algo ambicioso en tu primer proyecto sin haber visto nada, no lo vas a hacer.

Urien

#1 Viste las noticias de Antena 3 de los creadores de Icarian no? xD

Yo llevo encaminando el tema desde hace muchisimo tiempo pero los masters aquí en España son UNA MIERDA, lo que aprendes con ellos lo sacas tu de manera autodidacta perfectamente.

Si planeas esto a largo plazo como pofesión de futuro aprende idiomas y vete a algun pais a currar de betatester por una mierda, vuelve y haz algo en condiciones con un curriculum de verdad.

En cualquier caso, mucha suerte ^^

PD: Para empezar con un motor 3D creo que todo el mundo deberia usar Ogre.

SeiYa

Tira con C# y te adaptas poco a poco, es cierto que se parece a C++ pero así de paso aprendes mucho C# que te abrirá muchas puertas!

Yo también he visto XNA y cuando tenga vacaciones me pondré con ello fijo XD

Así que tutoriales y demás, postead que interesan!

MaKi

Normalmente la gente empieza en Java haciendo chorradas en canvas (2D).
Pero si eres valiente yo te recomiendo OGRE (c++ y tiene futuro por ser software libre), es muy potento y fácil y si no quieres c++ pues usa el wrapper MOGRE(c#). Se supone que es lo mismo y más facíl, no solo por el lenguaje, sino porque visual studio es una buena CASE. Pero lo cierto es que los wrappers siempren van más desactualizados y siempre por detrás del desarrollo principal.
Y de motor físico PhysX (c++) de NVIDIA (antes de ageia), 90% seguro que existe un wrapper de PhysX en c#. Pero evidentemente siempre será más lento una máquina virtual que código nativo.
Para aprender te recomiendo c# 100%.

Kenny

#6 Practicamente, va a ser mas facil ir aprendiendo de forma autodidacta y con unas dosis ENORMES de paciencia y fuerza de voluntad que con masters y demas cosas.

Es la gran ventaja de Internet, que tienes todo colgado en algun lado, simplemente tendras que partirte los cuernos leyendo chorrocientos mil manuales e ir sacando lo que te interese a ti.

elkaoD

Se aprende programando mil historias. Proponte nuevos retos. Yo voy haciendo de vez en cuando pequeños jueguecitos, cada uno con una complicación diferente, sobre todo para ir pillando poco a poco metodología (Que es lo que más me falta por ser autodidacta.) Cuando empiezas con un juego y te toca reescribirlo porque has diseñado algo mal desde el principio, es una putada, pero de ese error aprendes. Para hacer un JUEGO primero hay que hacer mil tontadas.

xPipOx

Dante88 + M$ = unbelievable

Dante88

Muchas gracias por la info y los consejos, después de leer los links y opiniones que me habéis pasada he decidido que empezaré haciendo un tetris a ver que tal y una vez hecho este pasare a algo más difícil para ir poco a poco. De momento algo en 3D ni me lo planteo xD espero llegar a hacer un juego en 2D así de plataformas en primer lugar y después ya se verá.

Kartalon

Como crear un videojuego en 6 cómodos pasos:

1) Aprende a programar en C. No se si sabes pero si no te manejas bien en C, y cuando digo bien es MUY BIEN, empieza por ahí.

2) Aprende un poco de interfaces gráficas, siempre te vendrá bien. También todo lo que puedas aprender te puede venir bien (desde sistemas operativos a bases de datos).

3) Llegado aquí ya puedes plantearte empezar con "videojuegos". Familiarizate con el entorno en el que quieras desarrollar, manuales y empieza a desarrollar juegos mierderos. Primero tirando de manual. Luego lo que has hecho añádele modificaciones que se te ocurran.

4) Ya empiezas a crear tu propio juego. Ten MUY CLARO lo que quieres hacer. Bocetos, esquemas, haz todo a papel, apunta todo, ten claro las herramientas de las que dispones y qué herramientas necesitas. Como desarrollador amateur que serás tendrás que currártelo mucho y tener muy claras tus metas. Probablemente necesitarás ayuda. Búscala, pero no busques gente que curre para ti gratis.

5) Comienza a desarrollar.

6) PROFIT!

Tiempo estimado: N años.

Obviamente esto es como el de bricomanía que te enseña a hacer un estadio de fútbol.

P

yo te voy a dar el mejor consejo que te van a dar acerca de este tema en el resto de tu vida:

  • Ni te molestes en intentar crear nada , por que lo unico que vas a conseguir es perder tiempo de tu vida.

Saludos!

Veinx

olvídate del xna si lo que quieres es aprender de verdad.
Sabes c++ no? pues metele caña al sdk del directx, mírate todos los ejemplos y empollate su sdk, leete la referencia, no dejes nada sin leer.

Lo mejor que puedes hacer para empezar es un space invaders, un comecocos etc etc.
Si no tienes ni idea de gráficos búscate a un artista que te ayude(cosa muy dificil) o aprende a ser un artista.
Jamas uses ningun engine como el ogre, haz tu programacion a pelo, create tus clases para las mallas, sonido, etc etc. Programa ''siempre'' usando clases de manera que si creas una clase para hacer un lens flare(globo luminoso) lo puedas usar en cualquier proyecto.

Si vas a hacer un juego 'solo' vas a tener que aprenderte 3dsmax, maya, zbrush, mudbox etc etc, con solo saber programar no sirve.

Siempre puedes recurrir a robar el trabajo de los demás, es decir usar el 3dripper y usar los gráficos de los juegos que te gusten para empezar a hacer tu ''cosa''.

Hay cantidad de libros guiris que te enseñan a hacer un juego paso a paso. Los hay hasta que te enseñan a hacer paso a paso un fps con multiplayer.
Pasate por gamedev.net y busca libros, los cuales también puedes obtener llamando al amigo jack sparrow.

Y una ultima cosa, vas a perder mas vida social que un tio que esta 17 horas diarias en el wow.

iRoN-G

Yo haria una mezcla de Empire Earth, Age of Empires, Battlefield, World of Warcraft, Second Life, Flight Simulator y Google Earth.

El mejor juego

SmirroLL

#16 y que aparezcan putas, muuuchas putas.

1
r2d2rigo

#15, tu eso de "make games, not engines" no lo sabes no? Pero como se va a meter de buenas a primeras a hacer un engine/framework sin saber ni por donde empezar? En fin, aqui hay algunos que empiezan la casa por el tejado...

XNA esta DE PUTA MADRE para novatos, porque te mete una capa entre DirectX y el programador que te ahorra cojon y medio de dolores de cabeza, y de lo unico que tienes que preocuparte es de aprenderte el content authoring, si hace falta algun custom pipeline, y a correr. Y si encima no tiene mucha idea de programar, como el dice, pues se juntan el hambre y las ganas de comer.

PD: lens flare = globo luminoso. J3, bonita denominacion.

D

yo he jugado a muchos juegos a lo largo de mi vida y sabes lo que hecho en falta......
un vídeo juego que el premio final sea manejar a muñeco de turno mientra esta echando un polvo,
siempre consentido.
ejemplo:
En L4D en vez de ponerte los que has hecho en la partida, imagínate una orgía con Zoey y que tu por ejemplo puedas manejar a Bill, con el teclado y ratón,....Una Pasada, Colega.
Con una idea así seguro que Triunfas

erdanblo

#19 No se si poner: "Edad .: 7" o contestarte "Larry" (y juegos mas subiditos de tono que este último).

Fr34k3r

http://www.nachocabanes.com/videojuegos/index.php

pagina de mi tutor, esta muy bien, yo estoy haciendo DAI y estamos programando juegos de CPC etc en C# y bastante bien, hechale un ojo, creo que estan subidos algun proyecto hecho en clase,para empezar esta bien

1 comentario moderado
r2d2rigo

Se deberia necesitar licencia para postear en ForoDev. Si, Djey5, estoy hablando de ti.

P

#22 te estas mentando a ti mismo ... y asi la ofensa no va a tener sentido ni respuesta.

nota.- me parece bastante light tu respuesta en vista de lo que te ha dicho el ... deberias darle un poco mas de caña o vas a quedar como el culo...

vz16

mete tetas, eso siempre suma

MTX_Anubis

#18 Pues yo haría caso a #15 xD

Pero bueno, eso es más programación gráfica que a mí es realmente lo que me gusta

#1, si te interesa te paso los links de esto aunque no sé si seguirán funcionando. Si no lo hacen me tocará volverlos a subir (son 4.5 gigas xD).

Está todo en inglés vaya xD

spoiler
Soleil

A bote pronto...

  1. Empieza usando un lenguaje sencillo y práctico; preferiblemente libre, por ejemplo Python con Pygame. Es imprescindible que puedas tener algo en la pantalla en poco tiempo y sea fácil de testear. (no quieres pegarte con punteros, gestión de memoria, librerías complejas etc...)

  2. Haz un juego pequeño que te enseñe la lógica de la programación de videojuegos. Por orden de dificultad te recomendaría: pong, tetris, arkanoid, pacman.
    Para cada uno necesitas:

  3. Pong: El bucle básico del juego, entrada por teclado, pintar píxeles en la pantalla, colisiones muy básicas.

  4. Tetris: Una lógica algo más complicada que el anterior. Aunque es sencillo, potencialmente puedes añadirle mil cosas. (pentominos, sombras transparentes donde vaya a caer la pieza, diferentes niveles y velocidades, multijugador).

  5. Arkanoid: Colisiones más complicadas, múltiples objetos con distintos comportamientos, los powerups, cargar niveles desde ficheros...

  6. Pacman: Todo lo anterior y: estados (que definen si un fantasma huye de tí o se acerca), inteligencia artificial básica (pathfinding para que los fantasmas te busquen).

  7. Aprende a separar la lógica del juego y la lógica del hardware. (lo referente a gráficos, sonido o teclado por un lado, el comportamiento de los objetos en el juego por el otro)

  8. Lee el código de implementaciones libres de otros juegos parecidos y trata de ver sus puntos fuertes. (siempre hay algo que aprender de los demás). Lee la documentación del lenguaje/librerías que uses.

Veinx

#18 tu comprensión lectora es nula, he dicho yo que haga su engine? NO

Lo único que tiene que hacer es iniciar el d3d, cargar mallas y representarlas, donde esta el engine?.
No, si ahora hace falta el unreal engine para hacer un puto asteroids, space invaders, un mario bros, pang etc etc... manda cojones.

Te recomiendo #18 que mires los ejemplos que trae el sdk del dx y entenderás bien a que me refiero.

#1 haz caso a #26 y #27.
Si buscas bien en el google encontraras como hacer un space invaders paso a paso en dx9, desde la creación de la ventanita, el game loop etc etc. Es preferible que aprendas win32 y dx que el xna. También puedes encontrar tutoriales paso a paso del pang, comecocos, bomberman, etc etc.

r2d2rigo

haz tu programacion a pelo, create tus clases para las mallas, sonido, etc etc. Programa ''siempre'' usando clases de manera que si creas una clase para hacer un lens flare(globo luminoso) lo puedas usar en cualquier proyecto.

A ver si el que no sabe de lo que habla vas a ser tu. En cuanto te metes en el barrizal de crearte tus propios loaders/manager, ESO es un motor. Y de buenas a primeras, el chaval se va a liar a hacer cosas en las que va a perder tiempo, le van a perder memoria, van a ir lentisimas y se va a desanimar.

Comienza por XNA, en serio, C# no es gran cosa cuando estas acostumbrado a C++, te servira para hacer varios juegos sencillos en los que mejoraras las tecnicas de abstraccion. Cuando ya veas que haces codigo limpio y eficiente, pues puedes migrarte a algo de mayor nivel como DirectX y atacar mas desde la base.

Suerte, que la vas a necesitar.

dr_Rouman

Todo lo que te han dicho, y además: no le hagas ascos al inglés, que hay muchísima más información.