Hola a todos es mi primer post aunque llevo diambulando por aqui un tiempo, y mi duda es, conozco un libro que se llama "3d game programming all in one" y me han hablado muy bien de le para empezar a programar, queria saber si esta en español tambien o algun otro parecido para empezar, o cuales me recomendais (que vaya desde lo basico a algo avanzado no solo nociones basicas) y a ser posible en español. Gracias de antemano.
Hola Rekuen, desgraciadamente no hay mucha bibliografía sobre la programación de videojuegos en nuestro idioma, y si buscas algo vas a tener que buscar en bibliografía de habla inglesa. No puedo ofrecerte ninguna valoración respecto al libro que nos comentas ya que no tengo ninguna referencia sobre él. Pero puede ser una buena base para iniciarse en la programación de videojuegos. También aconsejarte que busques información por internet, hay mucha y de gran calidad, aunque la traba sigue siendo la misma, el idioma :P.
De todas formas animarte y que plantees todas las dudas que te surjan, e intentaremos resolvertelas lo mejor que podamos acorde con nuestros conocimientos.
Por último aconsejarte que tus primeros pasos en el mundo del desarrollo de los videojuegos lo des mediante juegos simples y preferiblemente en 2D y no en 3D, fundamentalmente para consolidar ciertos aspectos que lleva la programación de un videojuego. No es que no se pueda empezar directamente en 3D, pero considero que es preferible centrarse en un proyecto que no conlleve una gran complejidad técnica e ir aumentando esta poco a poco según vas obteniendo la satisfacción de haber completado un proyecto y te planteas otro reto.
Gracias por la respuesta, iba a empezar en 2d el libro que menciono es de 2d, y la programacion es en visual basic en el libro creo, aunque prefiero aprender c o c++ ya que segun tengo entendido es la mas utilizada, gracias de todos modos y seguire tu consejo.Gracias
Cita de: "Rekuen"iba a empezar en 2d el libro que menciono es de 2d, y la programacion es en visual basic en el libro creo
Un libro sobre programacion de juegos en "Visual Basic"?? Juas, eso si que no me lo creo xDDD
Haces bien, tu que estas a tiempo aprende C++, pero si caes al lado oscuro y te interesas por VB,
dx_lib32 http://dxlib32.se32.com y sus enlaces te seran de mucha utilidad ;)
Salu2...
Hay muchas opciones. Personalmente, yo recomendaría comenzar algún proyecto 2D "simple" como un Pong o similar. No sólo para aprender, sino también para darte cuenta de si realmente te gusta el tema o no es lo que esperabas. No tiene mucho sentido plantearse cosas complejas si ya te quemas con algo más sencillo.
En cuanto a lenguajes, la duda hoy en día suele estar entre C++ y C#, principalmente. Aunque C++ es el lenguaje estándar, es con diferencia el más complejo de dominar. Aspectos como la gestión de memoria en C++ suponen un tema de discusión continuo en una gran cantidad de libros y artículos por su dificultad, y, sin embargo, en C# el programador no tiene que pensar siquiera en ellos (al menos hasta un cierto punto). Ergo, con C# la curva de aprendizaje será menor y la productividad mayor, podrás hacer cosas y tener resultados visibles en menos tiempo, y ello puede suponer un estímulo para continuar.
En cualquier caso, es más que conveniente tener una base mínima de conocimientos del lenguaje elegido antes de comenzar a programar un videojuego. Esto significa dedicar un período de tiempo previo a la programación de aplicaciones varias en modo consola.
Luego está el tema de las librerías y motores. No es lo mismo una librería como DirectX, que tiene todas las funcionalidades necesarias para el desarrollo de videojuegos, que OpenGL, que únicamente tiene funcionalidades gráficas. Y luego están los motores, que te abstraen de los detalles de bajo nivel y de las APIs utilizadas (Ogre, Irrlicht, próximamente Haddd :), ...). La elección dependerá mayoritariamente del lenguaje por el que te inclines, si quieres utilizar 2D o 3D, si te interesa desarrollar aplicaciones multiplataforma y del grado de complicación que desees. Desde luego, para comenzar, es más que aconsejable utilizar alguna librería o motor que te evite el tener que lidiar con los aspectos de más bajo nivel de un videojuego.
Yo lo que haría sería utilizar C++ con SDL (o, aún mejor, una librería que encapsule SDL como CRM32Pro creada por TheAzazel y de la cual tienes un subforo disponible aquí en Stratos), pero la elección es tuya: utiliza las herramientas con las que te sientas más a gusto. Si pruebas varias herramientas, puedes sacar conclusiones mucho más útiles para ti que lo que te puedan decir terceros como yo :P.
Por cierto, si finalmente te decides por Visual Basic, quizá te interese este libro de Course PTR (eso sí, en inglés, pero en este campo, como en la informática en general, el inglés es el idioma que mas se utiliza y conviene conocerlo), que debe ser el único que existe sobre el tema:
Visual Basic Game Programming for TeensEl nombre del libro está fatalmente elegido, pues está destinado a principiantes, pero no necesariamente a adolescentes (o al menos eso concluyo después de echarle un vistazo al capítulo de ejemplo que sale en su página).
¡Saludos!
El post de Flint te resume casi todo, solo enfatizare dos factores que son muy importantes:
- Una vez elegido tu lenguaje de programacion, practica todo lo que puedas con el asi a la hora de hacer tu juego, la limitacion sera el propio juego y no lidiar con el lenguaje en si.
- Empieza por algo pequeño y ve subiendo el liston poco a poco, nadie empieza siendo un Carmack :P por muy especial que crear ser jeje
Y bueno, de lib pues estaria bien que utilizaras las de algunos de nosotros.... dx32 para visual basic de EX3, LooverLib de Loover y CRM32Pro mia..esto en 2D...luego en 3D tienes el motor haddd del propio haddd,berserker y vicente.
Ya nos contaras tus elecciones, saludos y animo que cuando coges el tranquillo a esto de los games mola... jeje
Hi,
si no has programado nada en ningun lenguaje, empieza por C o Pascal (aunque yo elegiría C). Cuando te encuentres comodo manejando memoria, con estructuras de datos, con tratamiento de ficheros, etc... pega el salto a un lenguaje orientado a objetos: java, c++ o c#. Java y C# son bastante sencillitos. C++ es algo mas complejo de dominar pero se consigue.
Si no vas a estudiar ningun curso/modulo/carrera de informatica, va a ser bastante duro aprender. Pero con practica, ganas, paciencia y tiempo se puede lograr. En las páginas de las asignaturas de las escuelas de informatica tienes normalmente practicas para poder hacer. En www.ii.uam.es solo tienes que buscar por las web de las asignaturas la seccion de practicas y veras enunciados/recursos/etc...
De todas formas, creo que para empezar a aprender a programar juegos deberias sentirte lo suficientemente comodo y seguro con tu programacion. Porque si no, puede que toda la ilusion que tengas se "vaya al traste" por intentar correr demasiado: despacito y con buena letra. :lol:
En fin, que yo tambien estoy intentando aprender los misterios de este mundillo.
(ole)
Un saludo y suerte,
-Ruben-
PD: Libros que te recomiendo:
-SOBRE VIDEOJUEGOS-
-Introduction to 3D Game Programming with DirectX 9.0
by Frank Luna ISBN:1556229135
Wordware Publishing © 2003 (388 pages)
-Advanced 3D Game Programming Using DirectX 9.0
Peter Walsh
Wordware Publishing, Inc.
-Core Techniques and Algorithms in Game Programming
By Daniel Sánchez-Crespo Dalmau
-Strategy Game Programming With Directx 9.0.chm
- C++ -
Thinking in C++, 2nd ed. ©2000 by Bruce Eckel
Gracias a todos por las respuestas, creo que empezaré con C, para despues aprender C++ que creo que es de lso mas utilizados y aunque sea un poco mas dificil segun decis supongo que a la larga dará mejores resultados si es mas complejo, empezare mirando los libros que Ruben me ha recomendado, para trastear con directx. Gracias Flint por tu respuesta me ha aclarado bastantes cosas y aunque no conozco SDL mirare a ver que encuentro. Gracias
Por cierto, el libro ese que dices trata sobre el engine
Torque y todo lo que da es TorqueScript (y algunas cosas más, pero me refiero en cuanto a programación). Así que si quieres aprender C/C++ o a usar OpenGL o DirectX, pasa de este.