Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

Programación Gráfica no es lo mismo que Arte Digital

–Un Cuento de Niñas Bonitas y Gamers Chiflados–

Desde que se comenzaron a popularizar las carreras universitarias relacionadas con el desarrollo de videojuegos ha surgido una gran desinformación con aquello que alguna vez fue llamado Programación Gráfica. Los quinceañeros de hoy en día parecen no entender la diferencia entre USAR una herramienta de modelado 3D para generar una animación y HACER un programa de computadora capaz de generar una animación 3D en tiempo-real. Sin embargo, hay otra frontera entre el arte y la tecnología que está mucho mejor delimitada y se trata de la música.

Desde tiempos inmemoriales han existido músicos que tocan instrumentos y escriben canciones. Con la entrada de sistemas computacionales capaces de generar sonidos musicales vino una especie de división entre quienes tocaban instrumentos de verdad y los que optaban por la música por computadora. A la fecha se considera que el verdadero músico es el ejecutante y no cabe duda que decirle a una máquina que toque una canción no tiene ningún mérito como lo tiene el que puede hacer lo mismo con un instrumento musical. Sin embargo hay un profesional de la música a quien no le importa si su obra será tocada por humanos o robots. Dicho personaje es el Compositor.

No conozco mucho del mundo de la música pero se bien que ni todos los que tocan instrumentos saben componer canciones ni todos los que componen canciones han puesto las manos alguna vez sobre un instrumento musical. Aunque existen los denominados cantautores. La Programación Gráfica se parece a la composición musical en el sentido de que en ambas es necesario saber sincronizar un conjunto de instrumentos para crear arte. Pero antes de continuar vamos a pasar a nuestra acostumbrada sección de insultos gratuitos.

“Puro Inutil Gamer Chiflado”

Para los que son nuevos lectores, tengo que aclarar que en marzo del 2009, una cierta universidad en la que viví unas experiencias muy feas derivadas de mis ambición de convertirme en un game developer irónicamente inauguró una de estas carreras orientadas al desarrollo de videojuegos. Desde entonces he seguido por internet todo lo relacionado a esta desde sus planes de estudios, noticias en los medios nacionales, chismes en los foros de discusión y por supuesto he seguido algunos rastros que al parecer muchos de los alumnos se empeñan en dejar por todas las redes. Uno de estos rastros me llevó directo a la sección de preguntas y respuestas del yahoo en la que alguien pedía informes sobre esta carrera y alguien que había sido de la primera generación le daba la respuesta que reproduzco en esta infame captura de pantalla.

ninirespuesta

Al leer esta respuesta la verdad no supe que pensar, pues la niña bonita que da esta respuesta muestra su desencanto por la carrera y acusa a esta de cosas que yo mismo he reclamado a carreras similares que deberían de implementar. Es como cuando te gusta mucho el cine de horror y alguien te dice que la nueva película “es un asco” porque los monstruos que salían eran muy feos y le dieron pesadillas. La verdad es que si lo que dice ese post es cierto y en esa carrera realmente se imparten los cursos de gráficas por computadora con todo y su parte matemática y las materias de programación realmente se ven desde el punto de vista de la lógica entonces las cosas no deben de estar tan(recalco el TAN) mal como yo pensaba en un principio. Asi que para rematar, si la niña bonita que dio esa respuesta lee este blog (que no creo que haya hecho a menos que ya haya llevado la materia de Ensamblador) o si alguno de nuestros lectores la conoce, díganle que si realmente se piensa cambiar de escuela lo mejor es que entre al CEDIM. Pues por lo que he podido ver en internet, ella tiene todo lo necesario para ser admitida en una escuela de diseño de tan buen nivel. Además de que ahí si le van a enseñar modelar y usar programas de animación y no se va a estresar tanto. Eso suponiendo que ya hayan encontrado a los “expertos en desarrollo de videojuegos” que llevan buscando desde hace meses para impartir las clases.

Por cierto, el subtítulo de “puro inutil gamer chiflado” no es de mi autoría, sino de alguien que comentaba en otro foro de discusión sobre el cambio que había traido la incusión de esta nueva licenciatura en la facultad de matemáticas y como a su percepción el nivel de las carreras había bajado todavía mas. Personalmente he escuchado muchas leyendas de que alguna vez egresó una generación muy capacitada de la carrera de computación de esa facultad pero al menos para la segunda mitad de los noventas que fue cuando entré el nivel de esa carrera ya no era ese. De acuerdo, ese otro post decía muchas cosas muy ciertas sobre el valor de las matemáticas en la programación pero perdió toda mi credibilidad cuando puso estas al mismo nivel que las tan odiadas certificaciones. Por cierto, hace poco un lamer me preguntó si existía algo similar a una certificación en programación en ensamblador. Admito que al escuchar eso primero solté la carcajada pero esa misma noche tuve unas pesadillas muy feas que si son asiduos lectores de este blog no deben de tener problemas en imaginar.

Bueno, ahora vamos a seguir con el asunto de los compositores y la Programación Gráfica. Pues quien compone una canción debe de saber bien como suenan los instrumentos, los tonos de voz y la forma de ordenar las palabras para que se escuchen bien. Luego pone todo en papel y lo entrega a la orquesta para ver como suena. Del mismo quien está en la Programación Gráfica debe de conocer bien los chips de video, direccionamiento de la memoria, capacidades del CPU y hacerlos trabajar implementando los complejos pero óptimos algoritmos que ha dominado directamente en lenguaje máquina para mayor eficiencia. Luego pone todas esas instrucciones en un programa de computadora y lo ejecuta para ver el resultado. Como pueden ver el parecido entre ambos es enorme.

Sin embargo, no por eso hay que pensar que los ejecutantes deban de ser considerados como menos que los compositores. Pues en el caso del desarrollo de juegos, por un lado se necesita de la programación gráfica para echar a andar el juego. Pero aquello que es lo que se ha de animar son precisamente los sprites o modelos 3D creados por quienes crean personajes y mundos usando las herramientas de modelado y animación. En este caso los programadores son los compositores y los grafistas los ejecutantes y entre ambos ofrecen un concierto a la audiencia que en nuestro caso es un juego terminado.

Anuncios

mayo 16, 2010 - Posted by | Uncategorized | , ,

26 comentarios »

  1. Creo que la gente no programa en ensamblador porque no lo conoce, y muchos de los que lo conocen piensan que es dificil de programar, dificil de mantener, costoso (programadores mas caros, especializados), las empresas prefieren que los programadores sean todos iguales (facilmente reemplazables) y ese es tambien el exito de .net, java, etc… hoy en dia puedes tener un programador de java por 6,500 pesos mensuales, pero uno de ensamblador de Intel T6500 que sepa programacion multinucleo debe ser costosisimo y ni hablar de programacion 3d en ensamblador (y nada de graficas pre-rendereadas en tiempo real jaja).

    Creo que este blog es lo suficientemente maduro como para que lo pases a un servidor propio y empieces a poner publicidad en el. Podrias tener una fuente de ingresos estable con solo seguir escribiendo sobre ensamblador…
    con algunos video-tutoriales de matematicas, fisica, programacion, aplicaciones graficas, ejectos especiales.. seria una bomba.

    Comentario por Puerco | mayo 17, 2010 | Responder

  2. Hola ASM86.

    Yo la verdad te e seguido leyendo desde tu antiguo blog, con este de wordprees en principio iba bien….aunque eso del trauma psicologico con los “LAMERS” que nombras y renombras al final ya cansas tio, en fin segun va poniendo temas en el blog y esta basofia del reality show que da lastima porcierto(y verguensa agena), hasta ahora no e visto nada de nada importante y nada codeado que valga la pena hecho por ti….los codes que e visto de directx esos que encuentras en google, lo peor de todo que esto del “reality show” a pasado ya muchos post en el blog y no e visto nada sobre programacion de juegos en asm exepto esas gilipolleces que que pones que no tienen nada de ciencia ni conocimiento de asm.

    Comentario por Anonimo | mayo 17, 2010 | Responder

    • Ese viejo blog ya lleva muerto desde hace años y en cuanto encuentre los passwords perdidos voy a enterrarlo de manera definitiva.

      En cuanto a que el contenido de programación seria en ASM ha bajado en los últimos meses en eso tienes toda la razón. De hecho, de los 7 episodios de Poor Programmer que han salido hasta ahora solo 3 tienen algo de programación y el resto solo son recopilatorios de chistes malos. Eso nos da una pureza de alrededor del 40 porciento. Los llamados “Informes ASM86[]” tampoco aportan nada a quienes quieran programar en ensamblador y del resto la mayor parte solo son chismes de eso que llaman “la industria”.

      Recibo con alegría tus palabras porque de todos los comentarios de tono agresivo el tuyo es el primero en casi 2 años que realmente se puede considerar una crítica constructiva. Así que si tienes sugerencias específicas para tocar algún tema en este blog puedes enviármelas porque en estos meses he estado un tanto corto de ideas.

      Por cierto, si te interesa la programación de videojuegos me acabo de enterar de que en España van a abrir una sucursal del DigiPen Institute of Technology que es una importante institución dedicada a dar clases de como hacer juegos y tiene el respaldo de Nintendo. Ahí me platicas que tal se pone por allá el show.

      Comentario por asm86 | mayo 17, 2010 | Responder

  3. Hola asm86.

    La verdad pensé que mis palabras te las ibas a tomar para mal, pero ya veo que no, espero que mejores la calidad de los post en el blog, creo que de ves en cuando no esta mal sacar algo de esto de “noticias de la industria”

    Y respecto a juegos en asm, en mi opinión no hace falta hacer un estudio minucioso de juegos ni hacer unas gráficas 3d que deslumbren a todos, yo creo que con proponerse hacer un secillo juego 2d(un mario, arkanoid, pong o lo que sea) basta para empezar, que avarcaria temas como:

    – Sprites
    – TileMap
    – Sonido
    – Fisica basica( saltos, gravedad etc)
    – etc..

    Cada una de ellas tienen su estudio, se podria hacer una especie de libreria o GameEngine basico en asm con cosas especificas para cada una de ellas como LoadSprite, RotateSpite etc, nose ideas basica algo por donde empezar, porque eso de empezar por 3D(grave error).

    Saludos.

    Comentario por Anonimo | mayo 18, 2010 | Responder

    • Todas las sugerencias se toman en cuenta. De hecho, en la primera parte de la serie de videos el objetivo es manejar sprites, animaciones básicas y control con el teclado. Aunque ahora que lo mencionas el Tilemap es relativamente sencillo de hacer y da muy buenos resultados una vez que se aprenden a manejar los sprites.

      En realidad el proyecto del reality no es un tutorial sino solo una muestra de progresos de ciertos temas. Si recuerdas el primer episodio se menciona que los episodios se agrupan en retos donde cada uno tiene sus objetivos concretos. Solo para adelantar, el objetivo del primer reto consiste en tomar el control del sistema gráfico del windows a nivel muy básico para con ello manejar sencillos gráficos 2D.

      No se si sea conveniente adelantar vísperas pero en ese serial los siguientes retos tienen que ver con los temas que sugieres. Por ejemplo el segundo reto va a consistir en hacer un muy sencillo editor y animador de sprites, mas o menos del nivel del Paint pero mas especializado. Este editor abarcaría por lo menos dos retos hasta que se tuvieran dos cosas: un conjunto de rutinas en ASM usadas para programar y una herramienta para crear contenido (sprites, animaciones, sonido, efectos, etc.) Esto será suficiente para entretenernos por el resto del año. Por cierto, eso que llaman \fisica aunque tiene una base matemática mas o menos avanzada es mucho mas sencilla de programar de lo que la mayoría de los programadores creen.

      En cuanto a lo del 3D no es sencillo determinar donde comienza este y termina el 2D. Mas bien la diferencia está entre los sprites y las gráficas vectoriales. Mas adelante pero mucho mas adelante ya discutiremos como implementar los algoritmos para gráficas 3D.

      Comentario por asm86 | mayo 18, 2010 | Responder

  4. Pues esa es la idea y espero que te pongas en marcha con ello y no le des mas vueltas con otros temas que no van al caso, sino centrarse en programar.

    Comentario por Anonimo | mayo 19, 2010 | Responder

  5. oye mario? creo haha oyeee nada que ver en esta entrada pero no supe ddonde poner una pregunta! y soi nuevo aqui en tu blog..

    se puede desensamblar un programa? esqe hize un proyecto de hacer un videojuego en ensamblador en la carrera de LMAD y le quiero pasar el exe a unos weyes de la clase pero tengo miedo qe puedan desensamblarlo y robarme el codigo!.. por eso te hago esta pregunta.

    Comentario por Ensamblador xD | mayo 25, 2010 | Responder

    • Primero que nada bienvenido al blog. En cuanto a lo de desensamblar un programa ejecutable claro que es posible. De hecho en las notas “Poor Programmer” episodios 4 y 5 viene una demostración en video de como desensamblar un programa ejecutable con un desensamblador.

      Sin embargo la cosa no es tan sencilla como abrir un ejecutable con un desensamblador y hacer copy-paste para reensamblarlo de nuevo en otro compilador, pues una vez que un source code se convierte en lenguaje máquina mucha información importante como los nombres de las variables, comentarios, bases de los números e identificadores se pierden. En pocas palabras, para desensamblar, entender y modificar un programa escrito por otra persona se requiere mucha mayor habilidad de la que se necesita para escribir un programa a partir de cero. Así que si acaso alguno de “esos weyes” es capaz de desensamblar y reconstruir un ejecutable hecho por otra persona dudo mucho que no puedan hacer un programa ellos solos, cosa que les resultaría mucho mas facil.

      Por cierto ¿Quién te da la clase de Ensamblador? ¿Acaso es el Rosas? No vaya a serla de malas y sea el Solis. Bueno, sea como sea, tu y tus compañeros ( y uno que otro maestro ) de la carrera LMAD pueden pedirme ayuda con toda confianza. Sobre todo en temas como Lenguaje Ensamblador y Gráficas por Computadora porque si de algo pueden estar seguros es que en ambas materias van a necesitar toda la ayuda que puedan conseguir.

      Comentario por asm86 | mayo 25, 2010 | Responder

    • Yo uso el IDA Disasembler, para desensamblar:
      http://www.hex-rays.com/idapro/

      Comentario por blackpig | mayo 26, 2010 | Responder

      • Por cierto, Va a haber un evento relacionado con desarrollo de videojuegos en Cintermex el otro miercoles. Se llama MIMEC. Pasale la informacion al Julio. Mas adelante puede que hable sobre este.

        Comentario por asm86 | mayo 26, 2010

  6. hola hola! c:!
    yo soy la niña bonita que tanto odias…
    primeramente creo que me tengo que disculpar cuando respondi esa pregunta estaba tan enojada, sentida y amargada, que como todo ser humano en el mundo se quiere desquitar y hablar mal…
    si, la verdad yo hace un año no sabia nisiquiera que era c++ o cualquier otro lenguaje de programacion XD! y ahora lo se, creeme que en este año eh aprendido muchas cosas que no pense conocer en mi vida!… al enterarme que esta carrera salio, me hise falsas iluciones… es todo, yo nunca supe que era lo que iba a ver que me hiban a enseñar sobre todo que contenido tenian las materias y pues si fue dificial al principio y aun pienso que lo es… y no soy la unica que piensa haci… u-u, como el titulo lo dice no es lo mismo programacion grafica que arte digital, yo en un principio pense que era practicamente lo mismo…
    YA SE QUE NO! LENGUAJE ENSAMBLADOR aun no llevo esa materia, pero todos mis compañeros estan sufriendo con ella en estos momentos…

    Y creeme que aun no me cambio de escuela porque me enamore de esto… suena estupido pero haci lo es! c:! aun esta en mis planes estudiar diseño de modas(y no a modelar)

    me gustaria platicar contigo para dudas, preguntas y pedradas todo es bien resivido… c:!
    atelier.egosh@hotmail.com

    Comentario por Alejandra | mayo 27, 2010 | Responder

    • Hola hola! :3
      Hay diferencia entre odiar y despreciar y el que alguien te odie es algo mas halagador que hiriente. No nos conocemos pero es seguro que cuando eso pase vamos a odiarnos mutuamente aunque sea un poquitito.

      La respuesta que publiqué sin tu autorización me gustó mucho porque refleja perfectamente la situación anímica de la inmensa mayoría de los estudiantes que entran a este tipo de carreras. Entiendo bien tu frustración, yo pasé por lo mismo al leer libros sobre programación y gráficas por computadora que en ese entonces era completamente incapaz de entender. Sin duda tanto la respuesta como tu comentario servirán de ejemplo a otros que quieran ingresar a una carrera como esa.

      Ahora viene lo interesante: ¿De verdad quieres continuar en esa carrera o buscar otras opciones mas “normales”? Si en verdad te gusta y decides quedarte además de ganarte mi respeto puedes contar con mi ayuda no solo tu sino cualquiera de tus compañeros que tenga dificultades en entender algún tema de programación o matemáticas para gráficos. Por cierto, tu interés en el diseño de modas puede serte muy util a la hora de hacer arte conceptual y “character design” para animación y juegos.

      No había podido responder porque estaba ocupado en algunos asuntos urgentes pero voy a contactarte por el messenger en estos dias. Así podremos platicar con mas calma.

      Comentario por asm86 | mayo 30, 2010 | Responder

  7. oye black pig… sigues trabajando donde mismo? o te cambiaste? uuiikkk

    Comentario por Puerco | mayo 27, 2010 | Responder

    • Sigo en el mismo lugar de siempre, ya este hice hoyo. Y tu ya estas en mty? o sigues en España?

      Comentario por b1ackpig | mayo 28, 2010 | Responder

  8. si, aun sigo por estos rumbos… falta poco para que regrese… se va el tiempo rapido.. uiikk ya empece a jugar chess de nuevo con un programa que se llama chess master 10… a ver si luego nos echamos un chess… con una hamburguesa doble teriyaki

    Comentario por Puerco | mayo 28, 2010 | Responder

    • Eit, a ver si te consigues un Chess por alla, creo que son de buena calidad. Te encargo uno.
      Y sigues comiendo bien, como puerco, cochino, pibil, etc? o alla ya no comen puerco? o puro Carls’jr?

      Comentario por blackpig | mayo 28, 2010 | Responder

  9. Ya estas black pig. Pues comemos de todo, pero cocinar porque comprando te sale muy caro.. hago de todo ya, picadillo, gorditas de maiz, gisados, sopas de arroz, fideos, etc… uuiikkk sigues teniendo tu mismo correo? llegando me pongo en contacto…

    Comentario por Puerco | mayo 31, 2010 | Responder

    • Pues si sigo teniendo el mismo correo de siempre. No mames, sabes hacer mas comida que yo. A mi todavia no me sale un huevo estrellado. Pues aqui te esperamos.

      Comentario por blackpig | mayo 31, 2010 | Responder

  10. jeje, oye black pig… feliz cumpleanios… un abrazo. y un saludo para el Julious jeje

    Comentario por Puerco | mayo 31, 2010 | Responder

  11. Gracias Puerco por los saludos, y espero te vaya muy bien en todas partes que estes chambeando o de vacaciones jejeje.

    Mario:

    A que hora es el evento en cintermex?

    Saludos a todos

    Comentario por El Julio | junio 1, 2010 | Responder

    • Es a las 7:00 de la noche en la cineteca Centro de las artes uno en el parque fundidora

      Comentario por asm86 | junio 1, 2010 | Responder

    • Por cierto Julio, tu y Blackpig ya estan invitados formalmente al evento del MIMEC, acabo de enviar los datos de los tres a la lista de invitados. Si hay problemas con los guardias solo digan que yo los invite. Igual y seria bueno reunirnos unos minutos antes para llegar juntos.

      Comentario por asm86 | junio 1, 2010 | Responder

  12. oyee asm86 soy el qe te pregunto de lo de qe si se podia desensamblar un programa, oyeee como va a estar eso del MIMEC me gustaria participaar ya que me interesa y tengo habilidad para los juegos en ensamblador!!

    saludos!!

    PD: si me da rafa xD

    Comentario por Ensamblador xD | junio 2, 2010 | Responder

    • Por desgracia para ti, en el momento en que escribiste este comentario la presentación del MIMEC ya había dado inicio. Pero puedes preguntarle al maestro Rosas como estuvo porque me lo encontré ahí.

      En el evento lo mas interesante fue una conferencia impartida por un diseñador que trabajó en EA y algunos datos sobre la empresa Sabarasa que ya opera en México desde hace un corto tiempo.

      Lo mejor del evento fueron los participantes, pues aunque no todos pasaron al frente a hablar si se dieron buenas conversaciones en el refrigerio que siguió a las conferencias. Es impresionante ver la clase de talentos que ya circulan por estas tierras y uno ni cuenta se había dado. En la próxima nota escribiré sobre este evento.

      Y si te interesa programar juegos en ASM eres bienvenido a comentar en este blog todo lo que quieras. Por cierto, estoy pensando formar un grupo sobre ensamblador, tal vez el maestro Rosas quiera participar junto con ustedes.

      Comentario por asm86 | junio 3, 2010 | Responder

      • Que lastimaa yo pense que seria el proximo miercoles…. apoco conoces al profe rafa? haha…
        pues si si me interesaria formar un grupo sobre ensamblador! te dejo mi correo para estar e contacto.
        javier_samaa@hotmail.com

        Comentario por Ensamblador xD | junio 3, 2010

      • Conozco al profesor Rosas desde hace mas de 10 años cuando yo mismo era un estudiante de tu facultad en la carrera de LCC. Aunque nunca me dio clase. En esa epoca quiso dar una materia de Gráficas por Computadora como optativa en la carrera de computación y al final los únicos que quedaron fuimos 3 oyentes que ni siquiera llevábamos la materia de manera oficial. Respecto al grupo hay que pensarlo entre todos mientras trataré de contactar contigo lo mas posible via messenger. Si sabes de alguien mas que le interese puedes invitarlo también. Ahora que quiere formarse industria aqui en monterrey es mejor organizarnos bien para lograr algo.

        Comentario por asm86 | junio 3, 2010


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: