Si me preguntaran sobre cual es el mejor lenguaje para programar videojuegos, dira que depende. Depende del prposito, plataforma, tipo de juego y un sin fin de detalles ms. Pero si me dijeran que dijera el ms general, el ms usado, el ms potente y en el que estn hechos la mayora de las superproducciones de las grandes compaas dira C++ sin pensrmelo dos veces. C++ es el lenguaje por excelencia en el mundo de los videojuegos debido a que combina el bajo nivel y la eficiencia que da C con la programacin orientada a objetos que es casi imprescindible en la programacin de videojuegos. El problema es que para los recin llegados al mundo de la programacin empiezan a investigar y mucha gente les mete miedo diciendo que C++ es muy complejo y que no es un buen lenguaje para comenzar, esto es una verdad a medias, es cierto que hay lenguajes de ms alto nivel que simplifican ciertas cosas a cambio de sacrificar control y eficiencia, pero por lo menos en mi caso eso es mucho peor para aprender. Me explico, cuando uno est aprendiendo tienen que entender el porqu de las cosas, cual es la finalidad de esto o lo otro, porque mejor usar este tipo de dato o este otro. Eso con lenguajes de alto nivel se pierde, te abstraen tanto del hardware y el bajo nivel que no comprendes porque se usan ciertas cosas. Se aprende porque s y no se est aprendiendo realmente como funcionan las cosas. Con C++ tienes que comprender que es lo que est haciendo el ordenador y porque las cosas se hacen as. Yo sinceramente aprendo mejor las cosas cuando entiendo el porqu que cuando de me dicen: simplemente es as. As que animo a todos los nuevos programadores a no tener miedo y a empezar a programar con C++ y a entender las cosas. Muchas veces nos dicen que son complejas, pero no es cierto al fin y al cabo la programacin es sencilla, se complica cuando se empieza a abstraer y abstraer, pero de eso ya habr tiempo.
Otro de los grandes escollos una vez se decide empezar con C++ es el temido Por dnde empezar muchos potenciales programadores se desaniman al poco tiempo porque no encuentran algo que les ensee desde cero o se desmotivan viendo que tienen simples programas de consola, Ellos quera programar videojuegos, no letras blancas sobre un fondo negro! Sobre esto ltimo no puedo ayudar mucho, es la nica forma de empezar, es muy difcil aprender conceptos bsicos con aplicaciones grficas. Sobre lo primero voy a intentar ayudar sobre el cmino que yo seguira. En la red hay mucha documentacin para aprender a programar videojuegos, la mayora como sabrs, en ingls (es lo que hay) de todas maneras en esta comunidad tratamos de generar y recomendar contenido en espaol y voy a intentar que as sea en esta pequea gua de como aprender a programar videojuegos con C++.
1. Aprende C++
Parece obvio, pero a veces no lo es tanto. Para empezar basta con usar un editor de texto con el que generar los ficheros fuentes y un complidador, yo recomiendo el compilador gnu gcc (g++ para C++) y el IDE Codelite. Pero eso es cuestin de cada uno, hay muchos IDE y compiladores C++. Una ves tengas eso necesitas un manual/curso/tutorial de C++ que te ensee desde el principio. Puedes comprar un libro (hay muchos y muy buenos) buscar alguno en ings en google (tambin los hay muy buenos), pero como dijimos antes vamos a tratar de darte una opcin en espaol. Yo te recomiendo el curso de ConClase es muy popular y de los mas visitados en la red, un curso completo de C++ en espaol y gratuito.
http://c.conclase.net/curso/
A la vez que aprendes C++ te recomiendo que busques y leas mucho acerca de Algoritmos, mtodos de programacin y estructuras de datos. Lee y lee mucho pues es la nica forma de aprender. Una web que debera tener a mano todo programador de C++ es la siguiente, contiene toda la referencia de las bibliotecas estndar de C++, es bueno tenerla a mano siempre.
http://www.cplusplus.com/reference/ (ingls)
2. La STL
Una vez te defiendas con C++ a un nivel bsico te dars cuenta que hacer ciertas cosas es algo tedioso, existe una coleccin de Bibliotecas que son un Standard de C++ y que la mayora de los compiladores actuales trae llamada STL, La STL es casi fundamental para no
volverte loco cuando los programas se vuelven complejos y necesitas tipos de datos avanzados. Descubrirs que contiene plantillas que facilitan el uso de tipos de datos avanzados como cadenas, vectores, diccionarios y un largo etctera de utilidades. A continuacin dejo algunos documentos muy tiles para aprender a usar la STL.
http://softwarelibre.uca.es/wikijuegos/
Esto estupendo tutorial no se limita a mostrat y explicar las caractersticas de SDL, sino que trata de explicar el buen uso de la misma y finalmente tiene el desarrollo de un videojuego paso a paso. Totalmente recomendada para iniciarse con grficos.
4. Sigue aprendiendo
A estas alturas ya habrs aprendido una base y sabrs que camino debes seguir, que cosas debes aprender y como tienes que moverte. En todo momento tienes que estar leyendo, documentndote y aprendiendo es la nica forma de poder entrar en este mundo del desarrollo de videojuegos que est avanzando cada da. Para eso te recomiendo un par de webs sobre programacin de videojuegos, desgraciadamente, la mayora en ingls.
http://gpwiki.org/ Impresindible tenerla en favoritos para todo programador de videojuegos. La wiki por excelencia del desarrollo de videojuegos. http://www.gamedev.net/ Otra muy importante, comunidad muy activa, te enterars de las ltimas novedades y en los foros siempre hay alguien dispuesto ayudar, siempre que sepas ingls. http://www.gamasutra.com/ A tener muy encuenta, ofertas de trabajo, grandes artculos Aadela a tu lista de webs a mirar cada da. http://www.stratos-ad.com/ La comunidad ms grande de desarrollo en espaol. Puedes encontrar muy buenas cosas en los foros. http://www.google.com/ No no es coa, est es la ms importante de todas. Lo de arriba es una gua para comenzar, pero te surgirn miles de dudas a cada paso que des. Google es tu amigo, lo sabe casi todo y lo resuelve casi todo si sabes buscar bien. Aprende si no sabes a usar todos los trucos de google. Un programador y ms uno de videojuegos debe ser autodidacta y aprender a buscarse la vida en este competitivo y apasionante mundo.
Espero que te sirva de algo esta pequea gua si quieres adentrarte en el mundo de la programacin de videojuegos y no sabias como hacerlo.