¿Por
qué este curso?
Mucha
gente me ha pedido que, tomando como base los cursos de Pascal y/o
C/C++
que he desarrollado, creara ahora un curso de programación
de
juegos.
Existe
más de un texto que cubre esta temática.
Personalmente, a
mí me gustan dos:
- PCGPE
(PC Games Programmer Encyclopedia, la enciclopedia del programador de
juegos
de Pc) es muy completa, pero está en inglés, y
hasta
cierto
punto está obsoleta, porque se centra en la
programación
bajo MsDos.
- El
CPV (curso de programación de videojuegos) está
en
español,
es algo menos completo pero es muy fácil de leer.
También
está algo obsoleto, porque se centra en MsDos.
¿Y qué
aporta este curso?
Apenas un par de cosas, que tienen sus
ventajas,
pero también sus inconvenientes:
- Está
en español. Eso hará que llegue a menos cantidad
de
gente,
pero también que los castellano-parlantes tengan otro texto
de
donde
extraer información, aunque no conozcan el
inglés.
- No
entraré tan "a bajo nivel" como en los dos cursos que he
mencionado
antes. Eso puede ser malo porque quien "me siga" no dominará
tanto
la arquitectura del PC, pero tiene de bueno que se podrá
avanzar
más rápido y sin necesidad de tantos
conocimientos
técnicos.
Hoy en día hay muchas "bibliotecas" que se encargan de la
parte
más cercana al hardware, sin que nosotros debamos
preocuparnos
tanto
por ello.
- Lo
que aprendamos se podrá aplicar para crear juegos que
será
posible compilar para MsDos, para Windows y para Linux, sin
ningún
cambio o casi (esperemos).
- Yo
estoy localizable,
algo que no puedo decir
(al
menos en este momento) de los autores de los dos cursos anteriores, de
modo que puedo intentar atender las solicitudes para dirigir el curso
hacia
los aspectos que despierten más interés.
Condiciones
de uso.
Este
texto se puede distribuir libremente a otras personas, siempre y cuando
no se modifique. Tienes permiso para utilizarlo, pero pertenece a su
autor,
José Ignacio Cabanes.
Este
texto se distribuye tal cual, sin ninguna garantía de
ningún
tipo. Si el uso directo o indirecto del contenido de este curso provoca
cualquier problema en tu ordenador, el autor del texto no
podrá
ser considerado responsable en ningún caso. Este texto es
para
uso
personal: su inclusión en cualquier otro
artículo, curso
u medio de cualquier tipo deberá ser consultada
previamente al autor y
deberá contar con su
aprobación.
La utilización del curso supone la aceptación
total de
estas
condiciones.
¿Cómo
puedo colaborar?
Este
texto está hecho "por amor al arte", sin recibir nada a
cambio.
Si quieres ayudar a que se siga mejorando, tienes varias formas de
hacerlo:
- La
más sencilla: envíame un
mensaje
de apoyo, diciendo que utilizas el curso, qué es lo que te
gusta
y qué es lo que no te gusta.
- Si
descubres algún error, házmelo
saber.
- Si
te consideras capacitado para colaborar aportando algún
artículo
creado por ti, será más que bienvenido.
- Incluso
si quieres colaborar económicamente (no es necesario, pero
reconozco
que hace mucha ilusión y que ayuda a renovar partes del
ordenador
cuando parece que va "a pedales"), puedes enviar cualquier donativo a
mi dirección
postal.
Insisto:
la única colaboración "imprescindible":
es la
primera
de todas ellas: enviar un mensaje
de
ánimo,
para que vea que este esfuerzo sirve para algo. Eso hará que
robe
parte de mi (poco) tiempo libre para irlo mejorando.
¿Qué
herramientas emplearemos en este curso?
El
lenguaje que emplearemos va a ser C++(aunque
traduciremos
muchas
cosas a Pascal, lee más abajo) Los primeros ejercicios
serán
más simples y usaremos un lenguaje muy cercano al C, sin
sacar
partido
de la Programación Orientada a Objetos, pero más
adelante
sí la utilizaremos, cuando nuestros proyectos vayan siendo
de
mayor
envergadura.
En
concreto, comenzaremos por usar el compilador DJGPP
y la
librería
(perdón, quería decir "biblioteca") Allegro.
Esta
biblioteca se distribuye como código fuente, de modo que
podemos
recompilarla para que nuestros programas la aprovechen aunque usemos
otros
compiladores. Esto nos permitirá que nuestros programas
estén
diseñados inicialmente para DOS, pero después
podremos
hacer
fácilmente que sean programas de Windows, sólo
con usar
otro
compilador como MinGW.
Eso
sí, tampoco necesitarás dominar C++ para seguir
este
curso
(espero). Las órdenes relativas a gráficos que
necesitemos
las iremos viendo conforme nos hagan falta.
¿Y
si no sé programar en C++?
Es
muy posible que seas capaz de seguir el curso sin problemas si tienes
conocimientos
de otro(s) lenguajes
de programación, como C (por
supuesto),
Pascal (te costará algo más) o Basic
(más
difícil
todavía, pero posible).
En
cualquier caso, tienes muchos cursos gratuitos de C++ a tu
disposición
en Internet. En mi propia página Web
tendrás a tu disposición más de un
curso que te
puede
resultar útil. Entre ellos estará mi curso
(claro) y
algún
otro que yo haya considerado interesante. Por cierto, si encuentras por
Internet algún curso que esté bien y que se pueda
distribuir
libremente, te agradecería que me lo indicaras para que lo
incluya
en mi Web.
¿Y
si prefiero el lenguaje Pascal?
Tienes
tu parte de razón. El lenguaje Pascal es más
legible que
C (y C++), y también existen compiladores para Windows, Dos,
Linux
y otros sistemas operativos. Así que se aprueba la
moción:
haremos las cosas también en lenguaje Pascal, utilizando el
compilador
de libre distribución Free
Pascal. Eso sí, nos
limitaremos
a las posibilidades "estándar" que este compilador
incorpora, de
modo que no podremos hacer tantas cosas avanzadas como con C++ y
Allegro
(existen bibliotecas análogas para Free Pascal, como
Graphix,
pero
no entraremos a ellas... al menos por ahora).
¿Y
qué tal el lenguaje Java?
Tampoco
es una mala idea:
- El
lenguaje Java tiene una sintaxis parecida a la de C++, de modo que los
cambios no serán exageradamente grandes.
- Existen
versiones de Java para Windows, Linux y otros sistemas operativos
(incluso
algunos teléfonos móviles actuales incorporan una
versión
reducida del lenguaje Java).
- Las
órdenes de gráficos, manejo de ratón,
etc. son
parte
del propio lenguaje, de modo que no dependemos de "bibliotecas
externas"
como Allegro.
Entonces... ¿qué
usaremos?
Nos centraremos en C (y más
adelante en C++) con la
ayuda de la biblioteca Allegro, pero indicaremos los cambios que
serían necesarios para que cada juego funcione en Pascal o
en
Java, aunque no siempre sea posible o a veces suponga que el juego
tenga alguna limtación (como no tener sonido, por ejemplo).
 
|