Una historia de tres juegos: programación en lenguajes para niños (I de IV)


La Osborne I, CP/M, 1981

En una computadora como esta (Osborne, CP/M, 1981) aprendí a programar

Programar juegos de computadora puede sonar divertido pero para nada es trivial. Un buen juego es un excelente ejemplo de ingeniería simple: fácil de usar, divertido, entretenido pero con mucho esfuerzo y trabajo bien pensado como soporte.

La primera vez que intenté programar un juego fue cuando estaba en el bachillerato y aprendimos el lenguaje Basic para la Osborne, una de las primeras PC “portátiles”. Se trataba del famoso “tic-tac-toe” también llamado “equis y ceros”. Recuerdo que vi la película “Juegos de Guerra” (buenísima, un auténtico clásico de computadoras) y me impresionó porque se supone que usan el juego de Equis y Os para enseñarle a la computadora que no hay forma de ganar siempre, y por eso intenté programar ese juego. Ni qué decir que no funcionó, pero me hizo pasar muchas horas en el laboratorio del colegio.

La computadora jugando Tic Tac Toe en la película War Games

La computadora jugando Tic Tac Toe en la película War Games

Desde entonces no había vuelto siquiera a intentar programar un juego hasta que empecé a usar los lenguajes para niños Alice, Scratch y más recientemente Small Basic. Como parte de una pequeña investigación sobre esos lenguajes decidí que era una buena idea intentar hacer el mismo juego en los tres ambientes y resultó divertido y revelador.

El juego que elegí como modelo se llama “Rapid Roll” que juego en mi celular de vez en cuando y es sobre una bolita que va cayendo y uno debe hacer que aterrice sobre barras que suben de forma que no llegue nunca al suelo. El juego se va haciendo más rápido y se complica pero es bastante entretenido.

Claro que mis versiones no quedaron iguales y ni siquiera se parecen tanto al “Rapid Roll” original, pero algo que aprendí de esto es que uno disfruta mucho jugando los juegos que uno mismo programa, así que también fue un experimento divertido.

De la investigación puedo comentarles que los tres lenguajes usan paradigmas de programación ligeramente distintos. Alice es muy cercano a lo que conocemos como “orientado a objetos”, Scratch es un lenguaje procedural donde cada figura se programa independientemente y Small Basic utiliza objetos pero solo como un mecanismo para acceder a ciertos recursos: la pantalla gráfica es un objeto, lo mismo que la de texto, el sistema de archivos y no puede tener más de un objeto de la misma clase.

Alice y Scratch implementan muy bien los mecanismos de ejecución simultánea mientras que en Small Basic lo natural es que todo vaya a un solo hilo de proceso. Y todavía hay más, pero mejor paso a contarles cómo me fue y qué pude lograr, pero eso será en el siguiente post.

  1. #1 by manuel on 26 July 2010 - 6:53 am

    Siempre ha sido mi sueño programar un videojuego, lo intenté en una ocasión en vb pero me resulto muy complicado por la poca experiencia en el campo, sin embargo aun asi es genial aprender un poco de ello, saludos.

  2. #2 by Leonel on 28 July 2010 - 8:39 am

    La verdad yo también deseaba programar un juego. Mi hijo me había pedido que lo hiciera también, hasta llegó a dibujar todas las “pantallas” del juego, que era una historia de un conejo.
    Lo interesante es que vienen más plataformas de programación, una que se ve muy prometedora y especial para programar Juegos es Kudo de Microsoft y que se programa en el XBox directamente y con los mismos controles para jugar. Espero probarla algún día.

  3. #3 by manuel on 29 July 2010 - 7:10 am

    Bueno sin llevarte la contraria, aprendí por amarga experiencia que no es muy bueno usar al 100% las tecnologias de microsoft (preferentemente no usar nada), cuando yo conoci vb (version 5 y 6) me encantó hasta que llegó .net y ahi ya empezaron los problemas, resulta que la mayoria de mis codigos no los pude compilar sin problemas en vb.net porque ya no existen muchos tipos de datos, o funcionan de manera diferente, lo cual ya es una pérdida de tiempo, además resulta que microsoft tiene una patente sobre ese lenguaje por lo que no se puede desarrollar otro compilador clon de vb y poder seguir usando este lenguaje que ya está descontinuado por microsoft (existe javaco que compila de vb a java, pero aún está incompleto y al parecer lo harán de paga más adelante), me gusta vb.net pero no tanto como vb6, era muy simple de aprender, creo que vb.net cuesta un poco más de trabajo de lo planeado, sería bueno que microsoft retomara la idea pero sin perder los puntos positivos de .net, así que he decidido irme mejor a java, uso netbeans y estoy contento, a ver si no nos salen con lo mismo más adelante, menos mal que java está liberado bajo licencia GPL, así habria en que trabajar en caso de que descontinuaran el proyecto, espero que no.
    Así que la moraleja es no usar productos propietarios, lamentablemente las escuelas fomentan esto, no enseñan nada que no sea de microsoft (y borland que también fué un problemón) y luego vienen las consecuencias, espero algún día terminar mis juegos, tengo algunos en mente pero no tengo mucho tiempo libre para ello, en fin, si haces algo lo compartes jejejej, saludos.

  4. #4 by Leonel on 29 July 2010 - 9:47 am

    Manuel,
    En realidad es un buen punto. A mi también me gustaba más vb6 que .net. Y al igual que tu también decidí que tenía que aprender Java. Ahora esperemos que Oracle mantenga Java libre para usar y que continue su desarrollo.
    Ahora bien, respecto a Kudo, tengo la esperanza de que el resto de fabricantes de consolas (Sony y Nintendo especialmente) también lancen plataformas de programación para que jugar tenga un nuevo aliciente. Si Kudo progresa seguro lo harán.
    Por cierto, casualmente hoy platiqué con el catedrático de progra en la universidad donde doy clases y me contó que usará Python, así hay progresos y amplia disponibilidad de opciones.

  5. #5 by manuel on 29 July 2010 - 14:26 pm

    Me da mucho gusto que halla iniciativas hacia otros sectores, cuando yo estube en la universidad nos enseñaron c/c++ pero con el compilador de borland, es muy bueno (en su momento con la pantalla azul, ahhh como extraño esos tiempos), pero cuando llegó xp oh sorpresa, no funcionan los programas porque xp no soporta msdos (o al menos en parte), muchos de mis programas ya no pudieron correr, hasta hace poco que me hablaron de dosbox (tengo version portable por si acaso) y ya funcionaron muchos de ellos que aún conservo, conocí el compilador gcc (creo que se llama así), y por un tiempo pude hacer programas de nuevo en c, pero con el inconveniente de que las librerías conio.h y graphics.h no funcionan aquí porque no son estándares, grrrrrrrrrrrr, bueno, pero después lo quisé instalar en mi máquina definitiva y ya no pude crear programas, me daban errores en ejecución extraños (ni idea), use por un tiempo codeblocks y para cosas simples funciona, pero nunca le entendí a la parte gráfica, no pude configurar los wxWidgets para hacer ventanas y demás, así que me mude definitivamente a java y me ahorró problemas, hasta hace poco gracias al proyecto reactos pude instalar su compilador llamado rosbe (variante de mingw) y puedo hacer programas en c para windows pero como no soy muy diestro en c++ (como se debe) pues estoy tardando mucho en hacer cosas simples incluso, snif.
    Cuanto daño nos causó empresas que hicieron lo que quisieron con los estándares, eso sí, nos dió muchas alegrías borland pero hoy en día vemos las consecuencias, ni que decir de microsoft, en fin, ahora hay que enseñar a la nueva gente lo que es correcto y que conozcan más alternativas, suerte con Python.

  6. #6 by Leonel on 3 August 2010 - 17:52 pm

    Muy interesante el comentario Manuel, resume bastante bien lo que ha pasado.
    Yo también aprendí bastante en Pascal de Borland y todavía hace un par de años tuve que programar algo en Delphi y se de gente que lo usa bastante.
    Un día de estos voy a aprender Python… dicen que es fácil :)

  7. #7 by Carlos on 23 March 2013 - 5:58 am

    Excelente artículo
    A mí me dió muy buenos resultados Small Basic con alumnos de 15 años
    No veo que esté difundida la programación en secundaria
    Saludos

  8. #8 by Leonel on 14 April 2013 - 16:48 pm

    Hola Carlos,

    Gracias por tu comentario. Tengo algo desatendido este blog últimamente.

    Es totalmente cierto lo que dices. He visto algunos intentos muy mal enfocados en secundaria donde los profesores intentan enseñar lenguajes comerciales con la excusa de que son los que permiten hacer “trabajo real”. El problema es que a los chicos les resulta tan descontextualizado que terminan odiando la programación.

    Una nueva herramienta muy buena que estoy explorando estos días es Khan Academy en su sección de Ciencias de la Computación tienen unos tutoriales muy buenos para enseñar a programar en JavaScript con el concepto de que todo lo que uno programa se ve inmediatamente. Es fabuloso. Lo puedes ver en: https://www.khanacademy.org/cs/

    Un saludo,

(will not be published)