@ agnasg

agnasg


Los 5 más impactantes desenmascaramientos de todos los tiempos

16-09-2005 8:12 PM

En la onda del Código Da Vinci he estado pensando sobre algunas cosas que doy por ciertas y en realidad no lo son. Más aún, aquéllas que son conocidas por todos desde un punto de vista incorrecto. Así que comencé a preparar la siguiente lista de los 5 más impactantes desenmascaramientos de todos los tiempos:

  • José Tomás Boves no era un odioso español realista asesino y criminal, tal como nos enseñaron en la escuela, sino uno de los más importantes líderes populares del siglo XIX en Venezuela, quien liderizó una revolución en contra de la opresión de la oligarquía mantuana.
  • Los tres sobrinitos del Pato Donald en realidad son sus hijos con Daisy.
  • No hay tal recalentamiento global. El hueco en la capa del ozono no es tan grave como los ambientalistas dicen. Todo es una patraña para justificar la supervivencia de las organizaciones ambientalistas y ecológicas. Un 100% de esfuerzo de los habitantes del mundo excepto USA, UE y Japón producirá menos de 0.5% de mejoramiento de las condiciones ambientales. Todo depende de las acciones que se emprendan en los paises desarrollados, no del resto.
  • En realidad, a nadie le importa si Batman es o no es gay.
  • Java es el peor lenguaje de programación que se ha hecho desde APL (el write only language).

Enlaces en desorden:

  • Bien, me uno al concierto de bloggers que se están atropellando para mencionar que Google ya tiene un buscador de Blogs. Como ya es sabido, Google ignora los blogs al hacer búsquedas. ¡Qué sabiduría!
  • Buscando en el buscador de B
    logs
    de Google, aparecen una tonelada de blogs sobre programación de juegos. Uhmm, interesante… eso me da algunas ideas para penetrar la blogosfera con más sobre programación de juegos… aunque ya eso lo hecho otras veces…
  • Este puede ser un buen sitio para alguien que está inciandose en la programación. www.cdlibre.org/ son recopilaciones de software de uso frecuente y que conforman el ambiente típico de cualquier programador. PHP, MySQL, Python, Java, son algunas de las perlas que se pueden encontrar. Me recuerdan aquellas colecciones de la época pre-internet. Por ejemplo, Simtel.
  • Otro buen sitio para revisar es el de videohq, de quien acusamos recibo de sus emails. Tiene una excelente coleción de links.

Mi biblioteca de programador

15-09-2005 10:03 PM

  • Amazing 3D Games. Lary L. Myers fue tal vez uno de los pioneros en desarrollar un “engine” del tipo Wolfentein (el juego de ID Software predecesor de Doom). Todavía su sistema ACK anda en los baúles del olvido en algún servidor ftp. Tan cercano como 1995 el Coriolis Group publicó su libro que describe con toda la profundidad imaginable como desarrollar un juego usando este sistema. Es un libro de cabecera para cualquier aprendíz.

  • Black Art of 3D Game Programming. El libro de LaMothe está más orientado para juegos diseñados para DOS, pero contiene los conceptos básicos que todo programador debe conocer.

  • DirectX Inside y The Awesome Power of DirectX. Los libros de Bargen & Donnelly y Peter Kovach respectivamente son ideales para manipular con exito el API Direct X. Yo no tengo libros sobre Opengl, no tanto porque esta es una especificación inadecuada para desarrollar juegos 3D, sino porque las veces que necesité documentación la encontré en el Web.

  • Black Book Graphics Programming (Special Edition) de Michael Abrash describe suscintamente en 1300 páginas todo lo que hay que saber para desarrollar juegos del tipo Quake, y con un indice de 100 páginas! La mayoría del material resulta inútil pues está dedicado a conceptos de programación para DOS (VGA y cosas por el estilo) pero los capítulos dedicados a quake son memorables. Michael Abrash ahora está trabajando en la xBox de Microsoft.

  • Game Developer’s Marketplace de Ben Sawyer, Alex Dunne y Tom Berg. Hey!, deja de hacer preguntas de lamer en alt.games.programming y aprende todo lo que hay que saber sobre la comercialización de juegos. A menos que pertenezcas a un grupo de la euroscene, todo tu trabajo es para que obtengas un beneficio económico. Este libró explica cómo.

  • Game Design, secrets of the sages, de Marc Saltzman, es una excelente elección en cuanto a diseño de juegos. Tiene entrevistas a luminarias del octavo arte (desarrollo de juegos) tales como Gabe Newell (Half-Life), Matthew Toschlog (Descent), Sid Meier (Civilization, Railroad Tycoon, como si fuera necesario decirlo), Peter Molyneux (Populous, Dungeon Keeper), entre otros. Cada uno de ellos expresa desinteresadamente sus opiniones sobre el trauma de diseñar juegos, con recomendaciones sobre lo que hay que hacer y lo que debemos evitar para tener éxito. Este libro es indispensable para cualquiera que tome en serio el diseño y desarrollo de juegos de computadora.

  • Game Architecture and Design, de Andrew Rollings y Dave Morris, es una exploración completa y total sobre el tema (parece un libro de james Joyce, donde la visión es ecléctica). Como es usual, qué es gameplay, por qué es importante un diseño datallado y qué hace que un juego sea divertido ocupan algo asi como las primeras 100 páginas del libro. Es dificil evaluar un libro como este en una primera pasada. Quizás sea necesario leerlo y releerlo varias veces para llegar a una conclusión acertada sobre en qué medida es o no es valioso. No hay duda que es un libro que me va a tener ocupado algu
    nas semanas. Y esto es uno de los requisitos necesarios para que sea un libro altamente recomendable. Si tuviera que organizar estos libros en una lista quizás Game Architecture and Design ocuparía los primeros puestos por su caracter enciclopédico. Por cierto, los review en Amazon dan 4 estrellas y media a este libro, muy merecidas por cierto.

  • Casi por casualidad adquirí el libro editado por Mark DeLoura Game Programming Gems, publicado en agosto de 2000. Un vistazo al indice deja mudo a cualquier programador serio: Quaternions for Game Programming, Designing a General Robust AI Engine, A finite State Machine Class, A* for path finding,3D Collision detection, Keyframe animation, Real time shadow, etc, etc, etc. Uno de esos libros difíciles de abandonar, y tal como dice el autor, para un programador de juegos no hay un recurso único y definitivo que consultar a la hora de programar un algoritmo para el cual ni siquiera tenemos idea de como comenzar. Pues este libro está escrito con la finalidad de ser esa primera fuente de inspiración.

  • The C++ Programming Languaje de Bjarne Stroustrup, es la piedra angular de mi biblioteca, pues, siendo como soy un programador tiempo completo del lenguaje C++, cómo voy a prescindir del libro fundamental del lenguaje (Stroustrup es el creador de C++). El nivel de detalle que adopta el libro es el adecuado para un programador experto, aunque a veces no funciona como una buena referencia pues su organización no facilita la búsqueda de un tópico. En particular, es dificil conseguir información general, como por ejemplo, qué es más eficiente, un map de estructuras, o una estructura con varios maps.

  • The C++ Standard Library: a Tutorial and Reference de Nicolai Josuttis, es un excelente libro para un programador que quiera acercarse a las entrañas de C++. Con profusión de ejemplos, es ideal como libro para encontrar la rápidamente la forma de resolver un problema específico. Véase un excelente review en C/C++ Users Journal, pág. 40, marzo de 2.001.

  • Exceptional C++ de Herb Sutter, presenta 47 complicados problemas y su solución en C++. También está lleno de pequeños consejos para optimizar el código. Por ejemplo, en la construcción for (…;…;i++) {…} es más eficiente escribir ++i que i++ pues en esta última el compilador va aguardar innecesariamente el valor de i para incrementarlo posteriormente. Lo siguiente no aparece en este libro, pero lo acabo de recordar por asociación (recuerdan La cantante calva?): ¿es la siguiente construcción válida: k = i+++++j;?

    Todos estos libros están disponibles en Amazon

  • No todos tenemos la habilidad de asar 2 conejos al mismo tiempo sin que se queme uno

    20-08-2005 8:16 PM

    Estos dias han transcurrido en mi propia manera de reinventar mi pasatiempo favorito, que es pretender que estoy programando un juego. Leyendo artículos pasados detecto un poco de injusticia de mi parte, o un exceso de autorecriminación aprendida. Veamos:

    • Motor Grafico 75%
    • Detección de colisiones 90%
    • Movimiento Personajes 100%
    • Scripts 100%
    • Scheduling/Eventos 100%
    • Creación/Manejo Niveles 75%
    • Manejo Juegos Salvados 100%
    • Menus 100%

    Así que tengo toda la plataforma para un juego en un promedio del 83,33% que es mucho más de lo que pueden reconocer muchos juegos (¿Duke Nukem Forever?). Mi decisión fue cambiar el motor gráfico porque el que estaba programando era tosco, viejo, del tipo Quake I, y la migración entre las distintas versiones de DirectX consumía mucho tiempo. Decidí cambiar a Irrlicht Engine para no perder más tiempo y dedicarme principalmente a mi objetivo que es programar un juego. Sin embargo, incorporar este motor gráfico a mi código me va tomar semanas. Apenas estoy entendiendo cómo funciona, y como desplegar meshes y salones. Así que aqui van otras 3 recomendaciones para programar un juego y no morir en el intento:

    Así que tengo toda la plataforma para un juego en un promedio del 83,33% que es mucho más de lo que pueden reconocer muchos juegos (¿Duke Nukem Forever?). Mi decisión fue cambiar el motor gráfico porque el que estaba programando era tosco, viejo, del tipo Quake I, y la migración entre las distintas versiones de DirectX consumía mucho tiempo. Decidí cambiar a para no perder más tiempo y dedicarme principalmente a mi objetivo que es . Sin embargo, incorporar este motor gráfico a mi código me va tomar semanas. Apenas estoy entendiendo cómo funciona, y como des
    plegar meshes y salones. Así que aqui van otras 3 recomendaciones para programar un juego y no morir en el intento:

    • Mantén el foco permanentemente. Revisa con frecuencia en qué estás empleando el tiempo, y cómo ese tiempo contribuye al objetivo principal.
    • Escoge cuidadosamente el lenguaje, las librerías y los componentes que vas a usar. Una selección equivocada puede significar pérdida del más importante recurso: el tiempo.
    • No todos tenemos la habilidad de asar 2 conejos al mismo tiempo sin que se queme uno. Programar un juego puede ser un pasatiempo apasionante, pero o lo mantienes así, un pasatiempo, o lo conviertes en tu ocupación. Puede ser algo más que un conejo (o los dos) lo que se queme al final.

    Tengo que pedir disculpas a los lectores porque mi página de contacto ha estado deshabilitada al menos desde hace un mes. La razón es que una compañía que no puedo recomendar pero es la que hasta ahora ha estado manejando mi dominio macronosis no ha renovado el dominio por razones desconocidas. He colocado una nueva página temporalmente mientras se resuelve el problema.

    Causas perdidas… o la manía suicida de reinventar la rueda

    20-08-2005 3:59 PM

    Puesto que conduzco una página sobre programación de juegos, y jamás he publicado un juego, y ni siquiera puedo mostrar algún demo de un protojuego a medio terminar, me siento con la suficiente autoridad de hablar de las causas perdidas en la programación de juegos, o la manía suicida de reinventar la rueda.

    Y es que reinventar la rueda, es decir, programar y reprogramar rutinas, algoritmos, librerías, módulos y subsistemas que ya han sido programadas por otros, y cuya disponibilidad en internet es amplia, completa y gratuita, es, en términos de manejo de recursos (incluyendo el más valioso, que es el tiempo) un suicidio. Lo digo con propiedad, porque durante 5 años me dediqué a programar un motor gráfico, sin llegar a terminarlo jamás, cuando en Internet hay disponibles cientos de estos subsistemas (el 3D Engines List muestra 643 engines, y aumentando diariamente!) y más aún cuando hay engines de altísimo nivel como la recién liberada Quake III Arena. Así que aqui están mis tres consejos para Ud. amigo programador de juegos que se inicia:

    Enlaces eternos:

    • Una enorme lista de monstruos para NetHack. Una muestra adicional de la dedicación infinita. Si Ud. es un lector de estas páginas sabrá de qué hablo.

    • rootkit
      es una página dedicada a la tecnología de hackear windows para ocultar procesos, gravar programas en sectores no utilizados del disco, modificar y hacer cirugía al kernel Win32, etc.. Inclusive, hay un libro sobre el tema que explica todos los detalles para hacer esto (un review en slashdot). Esta es la explicación de cómo funcionan algunos programas que generan los famosos “popus” que no podemos eliminar, ni utilizando sysclean, spybot – search & destroy, etc.. La pregunta es que si esto no es una contribución a la proliferación de virus. La respuesta es que de todas maneras los hackers que programan virus ya saben todas estas técnicas desde hace años y mucho más. Ahora bien, se me ocurre que algún lamer de bajo nivel se le puede ocurrir intentar programar una nueva generación de virus. ¿Da miedo, verdad?
    • Bueno, aprendices de brujo, que digo, aprendices de hacker, aqui tienen un recurso adicional, phrack.