Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

Primera Etapa de Desarrollo del Minijuego

–No es lo mismo conocer el camino que recorrerlo–

En esta ocasión, voy a desfogar un poco de mi ira mientras muestro avances del minijuego que aunque ya tiene partes ejecutables aún está bastante lejos de ser jugable. Apenas si acabo de terminar las rutinas de autodepuración y estoy trabajando en el ciclo principal o gameloop. Como ya lo había dicho lo dificil es sincronizar el gameloop con el loop de mensajes del propio Windows.

iniciodev

En esta captura de pantalla que aparentemente no muestra la gran cosa, si acaso una caja de texto, algunas lineas de ensamblador en la parte baja y una carpeta de proyecto con mas de un archivo. Aquí es donde entra el famoso include. Pues bien usado permite un buen control sobre archivos muy grandes, aunque para el compilador no haya diferencia entre 100 archivos separados de 100 lineas cada uno que un solo source gigantesco de 10,000 lineas (quien piense que estos números son exagerados es porque nunca ha programado en ensamblador). Para un programa que apenas empieza aconsejo que se separe en archivos separados secciones del código como por ejemplo la de datos inicializados e importaciones, y puede que también la de funciones que no van directo en el flujo principal del programa como por ejemplo las de autodepuración. De momento este enfoque me está funcionando bastante bien. Por cierto, hay otra cosa de la que quiero hablarles antes de pasar a las pedradas. Se trata de mi muy particular mapa de desarrollo.

La verdad no se ni me importa si esto ya existe o si no me estoy apegando a los protocolos de administración definidos internacionalmente, pero a mi me funciona bastante bien. Lo llamo mapa de desarrollo y es remotamente parecido a un diagrama de PERT. En este mapa cada cuadro remarcado es una actividad relativamente sencilla para poder definirse con unas pocas palabras. El orden de las flechas define el orden de precedencia, de modo que si la actividad B está antes de la C hay que terminar B primero. Algunas actividades tienen como requisito varias mas y es necesario terminar todas estas antes de proceder. Las áreas coloreadas son las actividades que ya se han completado. No hay que esforzarse demasiado para darse cuenta que las actividades en las que se puede trabajar en un momento dado son aquellas que están separadas de las grises por una sola flecha. Personalmente este tipo de mapas me gusta por un razón, que a diferencia de las gráficas de gantt que tipicamente se encuentran en las paredes de las oficinas, este tipo de gráfica se presta mas para desarrollos llevados a cabo por una sola persona que no tiene un tiempo límite (mínimo) para terminarlos. Si acaso se pueden ordenar por niveles de dificultad y con una buena estructura se puede trabajar en varias actividades simultaneas y así evitar la posibilidad de estancarse en una sola.

mapadev

Según este mapa, ya tengo el documento donde se representan las llamadas a API de Windows desde ensamblador, se terminaron las rutinas básicas de debug que actualmente pueden desplegar tanto números y cadenas sin formato hasta el contenido de registros generales y secciones reducidas de memoria a partir de una dirección offset en formato hexadecimal. Actualmente estoy investigando como hacer el gameloop de manera eficiente, aunque desde este punto bien podría ponerme a investigar de una vez el manejo de archivos e incluso comenzar a armar el documento de llamadas a DirectX desde ensamblador, pero creo que de momento lo mas sano es crear de una vez ese gameloop. Por cierto, otro documento importante pero del que no tengo de momento una imagen para mostrar es un mapa de precedencia de las funciones. Pues ya me he visto en problemas cuando modifico una función de la cual dependen varias mas. Si no mal recuerdo había una regla sobre guias de seguridad a la hora de programar en ensamblador que hacía referencia a este problema al que hasta ahora no me había enfrentado pero por lo menos ahora tengo manera de detectar este tipo de situaciones y hacer algo para remediarlas, o por lo menos sacar ventaja de estas.

Entonces soy la viva imagen de porqué la industria no progresa…

(El título de esta subnota es una actualización de última hora que voy a explicar otro dia porque de momento no puedo teclear de la risa)

Ya para completar mi límite de 1000 palabras por entrada solo quiero comentar algunas cosas que ya no se en que tono escribir. Al comenzar esta nota esperaba destilar bastante veneno contra “la industria” pero ahora que los veo con tan malas ventas y problemas para conseguir vedadera mano de obra calificada dados sus propios prejuicios comienzo a tenerles un poco de lástima. De momento solo digamos que luego de insultar a los desarrolladores independientes, sobre todo a los autodidactas ya algunos de estos grupos están teniendo problemas para conseguir gente de buen nivel que trabaje con ellos. Yo mismo al ver este tipo de situaciones comienzo a plantearme seriamente mi conducta con algunos de estos grupos, pues de los dos mas importantes con uno estoy en abierta hostilidad y el otro ya comienza a tocarme las narices con sus game designers con título de comunicación, especialistas en retoque de botones de interfaces y servicios de outsourcing para juegos extraños que no valen ni 500 DSi points. Creo que es hora de que deje de ser tan condesciendiente con ellos y mejor me concentre en los desarrolladores que comienzan a organizarse en el norte de México que son los que tengo mas cerca y que hasta ahora me he llevado bastante bien. Confío que si logro hacer equipo con la gente clave entre todos podemos hacer un poder equivalente al de los grupos del sur. De momento solo digamos que hay una pequeña empresa, un grupo de estudiantes organizados a nivel interuniversitario y otros creadores independientes con los que podría colaborar. Si hago mi parte y meto algo de actividad a ese grupo de aficionados puede que ocurra un milagro y todas las fuerzas que rondan alrededor de ese grupo se concentren y se logre algo bueno, de momento mejor dejo de trollear en la comunidad de game dev de siempre y mejor me concentro en programar que luego de dias como este me queda cada vez mas claro que el siguiente encuentro que tenga con esa segunda empresa tan importante de “la industria” no va a ser tan feliz como a todos nos hubiera gustado.

Anuncios

enero 24, 2011 - Posted by | Uncategorized | , , ,

4 comentarios »

  1. Podrías tener más integridad y comentar que la “segunda empresa” es Sabarasa, un estudio al cual enviaste solicitud para entrar a trabajar, pero al no cumplir con lo que se necesitaba, pues simplemente no se pudo. Al parecer, eso te ofendió y aún sigues dolido al respecto, de que nosotros no fuimos los únicos en decirte “muchas gracias pero no”.

    Comentario por Gonzalo Sánchez | enero 25, 2011 | Responder

    • Lo siento mucho por ti Phill, tu eres la persona que mas respeto de esa empresa y espero seguir haciendolo en el futuro, no me falles ahora.

      En cuanto a lo de los rechazos, yo nunca he ido a pedir trabajo en Sabarasa, de hecho yo nunca he enviado un solo CV a ninguna empresa. Todos los trabajos en los que he participado han sido por invitacion y nunca he tenido necesidad de pararme frente a un empleado de RH. Respecto a tu post, creo que ya no tengo que confirmar que la empresa a la que me refiero es Sabarasa.

      En cuanto a ti, voy a seguirte respetando como developer sin importar lo que vaya a pasar con Sabarasa, pues los datos que arroja VGchartz respecto a las ventas de Heroes del Ring no son nada prometedores. Te aconsejo que hagas planes para el futuro porque los lideres actuales de “la industria” Sabarasa y Larva/Immesion puede que sean lo mejor del pais pero no son indestructibles, ni siquiera con el dinero del gobierno que les ha permitido operar con perdidas como puedes comprobar al comparar los datos de venta de sus productos con sus costos de operacion, datos disponibles en internet si sabes buscar.

      Comentario por asm86 | enero 25, 2011 | Responder

      • Es una realidad que las ventas van mal, eso es un hecho que no se niega e incluso se sabe. Pero al menos si hemos podido dar el primer gran paso, y aún cuando fallemos, será gracias a empresas como Sabarasa, Immersion/Larva y Slang el que gente como tu y tus colegas de Monterrey tengan mejores oportunidades. ¿No te das cuenta de la gran cantidad de miradas que están puestas sobre México son gracias a lo que unos pocos hemos logrado?.

        Te agradezco la forma en como me consideras y de igual manera regreso el gesto, conozco el trabajo de investigación que has realizado y se que gente como tu es necesaria para fortalecer lo que se hace en el país.

        Aún así, tanto tu como yo aún tenemos mucho que aprender y un largo camino que recorrer, pero no niego que es una realidad que al menos voy un par de pasos adelante, ya que aún cuando los juegos no sean de gran éxito, son desarrollos de un nivel del cual muchos aún no pueden llegar, porque no solo se trata de tecnología, hay todo un mundo al cual simplemente no te has asomado a ver que es la razón de que en México se hagan juegos de consola.

        Comentario por Gonzalo Sánchez | enero 25, 2011

      • Debo admitir que tienes razon en eso de que ustedes estan varios pasos por delante de nosotros, de hecho esto nos ha servido para aprender de sus éxitos y errores. Es por eso que al menos mi grupo (no hablo por todos los developers de Monterrey) no ha querido hacer tratos grandes con publishers, porque de momento no podríamos asegurarles las ganancias que se merecen. Aunque hay otros por aqui que si que podrian. También les hemos aprendido que de momento nos es mas rentable programar nuestras propias herramientas porque no podríamos recuperar el costo de un engine de uso comercial ni todos los gastos indirectos que estos acarrean como por ejemplo las certificaciones.

        En cuanto a lo de que hay muchas miradas puestas sobre México eso es cierto, pero muchas de ellas son miradas de desprecio. Es cierto que a TODOS nos falta mucho camino por recorrer y cada quién debe de salir adelante con lo mejor que tenga. En mi caso no soy un gran grafista pero puedo programar en ensamblador.

        Sin embargo, hay dos cosas que no deben pasar ni pasarán nunca: La primera es que todos nos enfrentemos unos contra otros tratando de destruirnos y la otra es que todos trabajemos unidos como una sola empresa. No somos soldados ni hermanas de la caridad. Somos empresas o pretendemos serlo a corto plazo y lo que hacen las empresas es competir y muy ocasionalmente hacer tratos entre ellas. Ya verás que un día se alcanzará un sano equilibrio en que cada grupo se especialice en un niño de mercado nicho de mercado y el público pueda elegir entre varios juegos de calidad creados por latinoamericanos.

        Es por eso que no trabajo ni trabajaré con ninguna de las actuales grandes, porque los métodos de trabajo que a mi me han dado resultado son muy diferentes a los que les han dado resultado a ustedes. Si de momento no soy profesional en el sentido económico es solo porque quiero tener un producto que ofrecer desde el primer día que opere como empresa porque oportunidades para operar como empresa he tenido mas de una. Solo que no quiero declarar en ceros durante meses antes de comenzar a facturar. Otra lección que he aprendido de los que van delante de mi.

        Comentario por asm86 | enero 26, 2011


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: