¿Cuántas veces habéis vivido esta situación? Seguro que si te consideras un amante de los videojuegos alguna vez habrás querido hacer el tuyo propio. Si ese es tu caso lee atento los siguientes párrafos pues serán de tu interés.
Para poder hacer un juego se requieren conocimientos en diferentes disciplinas, aunque es bien cierto que si participáis varias personas en su desarrollo no es necesario que lo sepas todo. Por ejemplo imagina que os juntáis tres amigos para hacer un pequeño proyecto. Uno podría encargarse de la programación, otro de la música/efectos de sonido y el último de los gráficos. En este caso si tú eres el programador no necesitas saber componer música ni tampoco dibujar porque eso no te incumbe. Lo mismo puede decirse en el caso de los otros dos componentes del grupo.
En muchas ocasiones he oído la típica frase de "aprende a hacer juegos sin saber programar". Esto normalmente viene de aquellos que quieren vendernos su producto a toda costa aunque no siempre es el caso. ¿Hasta que punto puede ser cierto? Hay varios programas como RPG Maker que te permiten realizar juegos sin escribir código alguno o tan solo un poco, pero conforme quieras hacer cosas de mayor envergadura, verás lo muy limitado que estás en este aspecto y enseguida necesitarás dar el salto a alguno de los lenguajes que cito a continuación. Aunque es verdad que existen infinidad de posibilidades a la hora de iniciarse en este mundo, he puesto los que creo que son más importantes por su facilidad o relevancia a día de hoy.

Tokenkai. Un juego comercial realizado en Div2.
Yo comencé a hacer juegos con 13 años en Div2 o también conocido como Div Games Studio, un lenguaje hecho dentro de nuestras propias fronteras. Es bastante sencillo de programar en él y no hacen falta conocimientos previos, pero sí que tienes que aprender a utilizar su sintaxis, lo que son las variables, procesos, etc. Cosas que sin ser complicadas, son necesarias para poder utilizarlo.
Hammer Technologies, la empresa que lo desarrolló acabó quebrando y vendiendo sus derechos a FastTrack, aunque éstos aun no han hecho una versión estable para Windows XP, con lo cual solo se puede ejecutar en Windows 2000 o anteriores. Por otra parte existe un proyecto GNU llamado Fénix. A pesar de no estar finalizado, se han incorporado muchas mejoras, como la posibilidad de modos gráficos en 8 y 16 bits, mientras que en Div2 había que hacer uso de paletas de 256 colores, convirtiéndose esto en una limitación importante. Cabe destacar que si, por ejemplo, escribimos el código en Windows, lo podemos ejecutar en otros sistemas operativos (GNU/Linux, Mac OS X, BeOS) e incluso sería jugable desde otras consolas (Dreamcast, GP32, GP2X, etc). Si alguien está interesado en adentrarse en la creación de ocio electrónico, le recomiendo que escoja esta opción.

Platypus. Juego con gráficos de plastilina programado en BlitzMax.
Existe otro lenguaje llamado BlitzMax, anteriormente llamado Blitz3D, Blitz Basic, etc. Esta última versión incorpora características muy importantes como orientación a objetos, que para los que no sepan programar les adelanto que es algo bastante deseable. Al tener instrucciones tipo “BASIC" sigue conservando la sencillez y facilidad que suponía trabajar con sus predecesores. Es multiplataforma y funciona perfectamente en los tres sistemas operativos para los que está disponible: GNU/Linux, Windows y Mac OS. Uno de los puntos más fuertes con los que cuenta es que se pueden añadir módulos creados por otras personas de la, muy activa, comunidad de BlitzMax.

Gravi Blobs! Otro juego creado con BlitzMax durante la última Campus Party.
A parte existen librerías (bien traducido sería “bibliotecas") como Allegro y SDL. Las librerías una complementación a un lenguaje de programación, es decir, que le añade nuevas funciones, como puede ser utilización de gráficos 3d, detección de colisiones, búsqueda de caminos y muchas cosas más, ampliando así las posibilidades. Para poder utilizar estas librerías no basta con saber como funcionan, pues no se pueden utilizar de manera independiente. Antes hace falta tener unos conocimientos amplios en el lenguaje que se va a usar, por ejemplo C++.
Muchos se preguntan con cierta temeridad si son importantes las matemáticas. Siento decir que sí. Imagina por un momento que quieres programar el desplazamiento de un coche. Para ello necesitarás saber que es un ángulo, un seno y un coseno. O tal vez quieras crear un juego de plataformas y debas programar la gravedad con la que será atraído el personaje hacia el suelo. Necesitarás entonces saber la fórmula física correspondiente. Aun si no eres bueno en las “mates" no te desanimes porque siempre tendrás la oportunidad de buscar información en Internet sobre lo que te haga falta.
Los comienzos pueden parecer difíciles porque tienes que acostumbrarte al entorno de desarrollo, pensar como un programador y sobre todo dedicarle muchas horas. No te preocupes por esto. Te aseguro que la gratificación supera con creces la inversión ya que en vez de decir cómo te gustaría que fuese un juego, pasarás directamente a hacerlo. No intentes crear un SUPERVENTAS desde el principio, ni tampoco un mundo 3D extremadamente realista. En vez de eso, lo que deberías hacer es empezar por cosas pequeñitas. Tal vez programar un “tres en raya" o un sencillo “matamarcianos". Incluso Miyamoto, Hideo Kojima, Yu Suzuki o Yuji Naka, entre tantos, tuvieron que comenzar así.
Por último hay un elemento indispensable para poder hacer un juego: la ilusión. Bien sabido es que hay gran cantidad de juegos que son tan malos que no sirven mas que para acumular polvo en las estanterías. La mayoría de ellos han sido desarrollados sin este elemento y tan solo son fruto del deseo de GANAR DINERO por parte de sus creadores. Cuando uno hace un juego con ilusión tiene el objetivo de conseguir que el jugador disfrute tanto jugando, como tú haciéndolo. Y esta es la clave del éxito.