"Ningún juego dura tanto hasta que te lo terminas como el que te programas tú mismo,
ninguno te absorbe tanto y ninguno te produce tanta satisfacción cuando lo has acabado"
Programacion de videojuegos
Inicio Curso de programación de juegos 1. Herramientas para empezar
Domingo 22 de Octubre del 2017

Menu principal
Colaborar (con PayPal)

Para continuar con el trabajo de esta Web y poder pagar el hosting, viene bien la ayuda que sea. Gracias a todos.

Importe: 

Ultimas descargas
19.Jan

Clase que permite dibujar texto en OpenGL con mucha facilidad.Usa FreeType2.Para ver que hace y c...


1. Herramientas para empezar Imprimir Correo electrónico
Videojuegos - Curso de Programación de juegos
Escrito por Vicengetorix   

Hemos decidido que vamos a probar a ver que tal es esto de programar un videjuego... ¿por donde empiezo?.




Esta pregunta es lo que pretende responder este articulo.

Lo primero que quiero aclarar es que no hay un metodo fijo ni especialmente correcto si el resultado es satisfactorio (como todo en la vida). Yo tengo el mio, que es el que he usado para mi, pero robablemente existiran 1000 metodos alternativos para cada cosa y seguramente mejores. En todo caso "el movimiento se demuestra andando" (Zenon) asi que vamos a empezar, que siempre estaremos a tiempo de variar el metodo de hacer las cosas.

Empezare recalcando lo que ya dije que hace falta en el articulo anterior debido a que es particularmente importande desde mi punto de vista.
Tener real interes, voluntad y tiempo: No es tarea de un dia hacer un juego por simple que sea, y menos si mientras lo haces estas aprendiendo. La mayoria de la gente lo intenta un rato, ve que no termina de estar claro y se aburre. Para programar en general hay que ser cabezon. Ser de los que piensa "de aqui no me muevo hasta que no me salga", por eso muchas personas odian la programacion, no tiene nada de inmediatez, sin embargo la recompensa es mayor (en satisfaccion personal). Por otro lado, por mas cabezon y aficionado que seas, el tiempo que se requiere es considerable. Hay que buscar documentacion, codigo ejemplo, analizar documentacion y codigo, ponerse a teclear codigo, probarlo, falla..., revisarlo, probarlo de nuevo, ..., ..., ... Tambien depende de la capacidad de cada uno. Yo debo ser particularmente torpe. Tampoco me importa perder el tiempo en algo que me gusta.
Dos cosas mas muy importantes: Internet y el Ingles.
Yo programo por aficion. En internet hay documentacion gratis para aburrir y no me apetece gastarme un duro... euro. La documentacion es indispensable asi que ¡a internet!.
El ingles me temo que tambien sera importante. La mayoria de la documentacion esta en ingles, y cuando digo la mayoria me refiero a un 95% (a ojo, puede ser mas). En español hay algo, poco, pero es siempre basico. Cuando quieres mas, se acabo el español. Yo pongo mi granito de arena en este sitio a favor del castellano. En todo caso pensad que es una bendicion que sea el ingles el idioma dominante en internet y la informatica. Podria haber sido el aleman, ruso, arabe o chino.
Casi se me olvida otra "cosita": las matematicas. No es necesario ser pitagoras pero un vistazo a la parte donde habiamos estudiado el espacio euclideo, vectores y sobre todo matrices, nos vendra bien a la hora de trabajar en 3 dimensiones, si queremos entender lo que hace el codigo ejemplo y no copiar como idiotas sin entender nada y que luego no funcione.
Hasta aqui es el sermon del abuelo cebolleta; ahora iremos a cosas mas tangibles (hasta que me ponga a divagar).


Empezamos por el lenguaje en que programaremos.
Se puede hacer un juego en cualquier lenguaje de programacion pero si lo queremos hacer bien (aunque aficionados intentamos hacerlo lo mejor posible) usaremos el C++. ¿Por que? por que todos los programadores serios lo usan, porque es el mas eficiente en la relacion esfuerzo en programar-rendimiento (en comparacion con ensamblador, por ejemplo), y sobre todo porque en C o C++ encontraremos el 90% de los ejemplos en la documentacion, el codigo publicado y desde este lenguaje podremos usar casi todas las librerias gratuitas que muchos aficionados en el mundo ponen a disposicion publica.
Solo necesitamos un compilador, y siguiendo la logica de nuevo, sera gratis. Hay varias opciones:
Borland C++. Es un clasico que a mi particularmente me gusta mas que los otros, lo que no quiere decir que sea lo que uso al final. Tiene un compilador sin entorno de programacion, solo las herramientas en modo comando. Se puede descargar, tras registro en la pagina, desde aqui:
Borland C++ compiler 5.5.
Tambien ha sacado el Turbo C++ explorer que si viene con IDE.

Como editor para usar compiladores sin IDE se puede usar CodeBlocks, editor gratuito y que se configura solo para usar varios compiladores.

Aqui podras ver la variedad de compiladores posibles.

Nuestra eleccion, de nuevo por motivos de compatibilidad con el codigo y librerias escritas por voluntariosos programadores, sera Microsoft, que gracias a dios ha sacado una version gratuita de su compilador e IDE. A parte de instalar el compilador necesitaremos tambien el SDK correspondiente para que no fallen los programas mas que una escopeta de feria.
Visual C++ 2008 EXPRESS.
SDK para WINDOWS SERVER 2008 y ...

Puedes buscar si quieres el Visual C++ 2005 espress y su SDK correspondiente, que son los que yo tengo instalados. Son las versiones anteriores y tambien gratuitas.
Al instalarlo y compilar, puedes tener problemas al no encontrar las librerias standard. Cuando instales VC++ y el SDK, por favor, lee esto antes: Correcta intalacion de VC++ y el SDK.

A partir de aqui todo depende del C/C++. Si sabes C++ mejor, si no es mejor que vayas aprendiendo. En la seccion de manuales hay unos cuantos.

De momento solo queda una decision que tomar que es ya una vieja discusion en multitud de foros: ¿que libreria grafica usar?. Al final la cuestion se queda entre DirectX y OpenGL.
Primero aclarar para que queremos una libreria grafica.
Podriamos programar nosotros mismos funciones para acceder directamente a la memoria de video, como se hacia antes, y despues funciones para dibujar una linea, un cuadrado y asi hasta llegar a una figura 3D ... y ya estariamos jubilados. Ya tenemos bastante trabajo con otras cosas y nadie hace eso ya. Las librerias graficas son suficientemente complicadas de usar.
Ahora el viejo enfrentamiento entre DirectX y OpenGL. Pues no, no voy a decir cual es mejor porque no soy un experto ni me importa mucho. Con los mismos criterios de disponibilidad de manuales, codigo ejemplo, librerias compatibles y demas recursos en internet y gratis, la opcion sera OpenGL. Ademas es el standard para la mayoria de empresas del ramo, que forman el grupo de trabajo que define OpenGL y te sirve para Windows, Linux, Mac, ...
En la zona de descargas hay, de momento, dos documentos que no deben perderse de vista referentes a OpenGL: El BlueBook, nos servira de referencia cuando estemos programando y el RedBook, manual que deberiamos empezar a echar un vistazo.

En resumen, vamos a usar:
Lenguaje:        C++
Compilador:    Microsoft Visual C++ 2008/5 EXPRESS
Graficos:         OpenGL

... todo gratuito y con abundante documentacion, como debe ser.

Mas adelante necesitaremos algun programa para generar graficos que usar en 2D y 3D pero eso es otro tema.





¡Sólo los usuarios registrados pueden escribir comentarios!
+/- Comentarios
Buscar
EGAlegue  - INTERESANTE.. LEER POR FAVOR   |200.41.130.xxx |25-01-2012 21:38:29
ME INTERESA MUCHOLA PROGRAMCION DE JUEGOS.. Y ME COMVENCE LA FORMA EN QUE
LA EXPLICAS, LA UNICA CONULTA SERIA QUE SI ME PODRIAS MANDAR UN
MAIL PARA SABER SI CUALQUIER CONSULTA QUE TENGA TE LA PUEDO MANDAR.
Vicengetorix   |85.53.195.xxx |26-01-2012 20:47:24
En el apartado "Contáctanos" puedes mandar un mensaje, pero el foro me
parece mejor opción ya que las dudas suelen ser comunes y pude ayudar a otras
personas que, seguro, tienen la misma duda.
Josue anaya  - soberbio   |189.135.54.xxx |21-04-2011 16:35:12
gracias a ti porfin podre hacer lo que me gusta de una manera mas parecida a
profecional GRACIAS
Jesus Figueroa  - Gracias     |189.227.40.xxx |14-03-2011 09:29:33
Muy buen post sobre como empezar y solo tengo una duda, crees que el C#
evolucione para la programacion en juegos que parte de Java en la escuela como
programacion tambien vere C#
Vicengetorix   |85.53.213.xxx |14-03-2011 19:23:18
Se pueden hacer juegos en cualquier lenguaje. De hecho se usa mucho java para
juegos en red. El unico problema de los lenguajes interpretados es el del
rendimiento. A cambio son mas portables.
alfrosende  - Gracias   |200.40.100.xxx |16-04-2010 18:48:45
La verdad soy un aficionado a los videojuegos y a la programación. Por esto he
tratado (infructuosamente), de aprender a programar video juegos varias
veces.
La verdad que luego de leer los dos primeros capitulos quedé muy
contento con tu forma de explicar y tu pasión por compartir con nosotros tus
conocimientos, espero los capitulos que siguen sean de la misma calidad y desde
ya te agradezco todo tu esfuerzo, un saludo desde Uruguay.
Vicengetorix   |85.53.222.xxx |16-04-2010 21:46:42
Me alegra que te animes; hacer la web, escribir el código y probarlo,
comentarlo y escribir por fin el capítulo, es un trabajo que hago para
compartirlo, es lo que me anima. No tendría sentido hacerlo para nadie.
Un
abrazo a Uruguay desde el otro lado del charco.
Catalanoic   |Registered |04-07-2010 23:29:20
Yo voy a usar el Code::Blocks para Linux, aunque ya tengo el Microsoft Visual
c++ en linux con el Wine para evitarme problemas usare el otro.
Vicengetorix   |194.179.126.xxx |05-07-2010 11:01:35
El capítulo 23 es sobre el programa básico en Linux. En Linux se puede usar
GLEE pero para cargar gráficos en el curso se usa Corona y no creo que se pueda
usar en Linux. Seguramente hare un cápitulo sobre como cargar graficos en
Linux.
sharavsambuu  - hi     |202.179.10.xxx |29-03-2010 13:26:14
Thank you very much. im learning within google translator :)
Vicengetorix   |85.53.223.xxx |30-03-2010 15:09:43
Welcome. I'm happy you are following the course. The web is in Spanish but the
Games has not language.
carlos  - quiero participar   |189.130.183.xxx |01-06-2009 01:36:46
No tengo experiencia, pero quisiera aprender compartiendo y ayudando.
Gracias
Vicengetorix   |194.179.126.xxx |02-06-2009 16:15:24
Pues lo mejor es ponerse al trabajo y acumular nuestra propia experiencia.
Con
el tiempo no descarto, si la pagina va bien y avanza, poner un sistema de
trabajo en grupo para proyectos. Ya se vera.
Yoshimura  - Gracias!!     |88.17.152.xxx |21-05-2009 17:36:14
Gracias por el tiempo que le has dedicado y le dedicas a la web, la seguiré y
seguro que me será de gran ayuda!

Un saludo
Vicengetorix  - De nada   |85.53.201.xxx |23-05-2009 01:09:51
Gracias a ti. El tutorial pretende ser muuuuucho mas extenso y, si es posible
por el tiempo, intentar que al final el resultado sea jugable.
Tambien planeo
poner en esta web un resultado intermedio, una libreria de funciones de ayuda
para agilizar mas aun hacer un juego de la nada, y como es la filosofia de este
sitio, facil de usar y muy bien documentada.

Un saludo.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 


Banner
Spanish Chinese (Simplified) English French German Japanese Portuguese Russian