@ agnasg

Nada puede ser 100% perfecto, por diferentes razones

29-03-2015 8:37 AM

Tomado de mi diario personal:

Interesante. Siempre, todo momento es oportuno para aprender algo nuevo. Estaba viendo a Mig (mi pareja)  cambiando de directorios en Win 7 y observé que ella usa los drop down menu en la secuencia de directorios de un path. De esa forma se puede cambiar directamente a un subdirectorio. La pregunta inmediata es ¿por qué los drop down menus no continuan a los subdirectorios del subdirectorio? Porque es Windows. Nada puede ser 100% perfecto, siempre debe haber algo malo que mejorar en la próxima version. Shit.

Un ejemplo de los drop down menu de Windows 7

win7-drop-down-menu

 

Habeas corpus contra python

18-03-2015 8:53 AM

I still use MSVC 6 (1998) as my IDE because it has better human factors for me than later versions of MSVC. (Yo todavía uso MSVC 6 (1998) como mi IDE porque tiene ventajas humanas para mí que otras versiones de MSVC no tienen

— Sean T. Barrett, autor de la librería de imágenes stb

Debería existir un “habeas corpus” para los programadores que tenemos que sufrir los desvarios (disparates) de los que programan herramientas de sistemas, lenguajes de programación y otros. Porque aquí tenemos a python que al menos sirve como un buen ejemplo de estos disparates.

Indentation Error: expected an indented block python require Indentation Error: expected an indented block que Indentation Error: expected an indented block cada Indentation Error: expected an indented block bloque Indentation Error: expected an indented block esté Indentation Error: expected an indented block indentado de acuerdo Indentation Error: expected an indented block a Indentation Error: expected an indented block su Indentation Error: expected an indented block nivel

¿Se entiende? Claro que no, tratar de leer el párrafo anterior es tan molesto como trabajar con python, porque este lenguaje prehistórico requiere que cada bloque esté indentado de acuerdo a su nivel o al bloque al que pertenece, es decir, el bloque de un for debe tener una indentación diferente al del for y así sucesivamente. Es como trabajar con RPG, un lenguaje del tipo Cobol de hace 40 años. Sí claro, el editor debe proveer herramientas para convertir espacios en tabs y viceversa (Blender lo tiene) y de todas formas en todos los lenguajes (excepto en basic) se deben indentar los bloques pero python continuamente genera este error cuando hay un espacio en blanco en lugar de un tab o viceversa o en la siguiente línea luego de un bloque de comentarios. Claro los que defienden a python dicen que se puede colocar el bloque anidado en la misma línea y la indentación no es necesaria, pero entonces el código es muy difícil de leer, por no decir imposible, y los bugs aparecen y demás vicisitudes indeseables.

Ayer trabajando en un generador automático de caminos para una escena en Blender tuve que lidiar cientos de veces con el error:

please-python-please

Y todo lo hago por Blender que de verdad es la única razón por la que trabajo en ese lenguaje. Grrrrrrrrrrr

Just Game programming Things – Simplemente cosas de desarrollo de juegos

15-03-2015 12:37 PM

El nombre de este post es como este meme, esta cosa de internet que todo el mundo encuentra gracioso sin saber por qué, es como Just Putin Things (Simplemente cosas de Putin) o como otras similares (Just Cats Things). Pues aqui tengo una lista de cosas extrañas que he encontrado desarrollando juegos con C++, MS VS *, Blender, que he acumulado estos días que he estado trabajando un nuevo nivel para mi juego psyblast.

Asi que, sin más preámbulos, los dejo con simplementes cosas de de desarrollo de juegos…

  1. En Blender el siguiente código en python extrae la escala y la posición de un objeto:
    ob_new.location = copyobj.location
    ob_new.scale = copyobj.scale

    Ajá, pero y ¿cómo se hace lo mismo para la rotación? Una hora después de googlear finalmente conseguí la respuesta. Para obtener la rotación de un objeto en Blender usando python se debe hacer… ta taaaa:

    ob_new.rotation_euler = copyobj.rotation_euler
  2. python no soporta i++, sin embargo todo el mundo lo considera un lenguaje moderno. (1) Esto  salpicó a Blender porque los desarrolladores lo escogieron como lenguaje de scripting.
  3. Microsoft Visual Studio 2012 es una asco. Bueno, hay otras alternativas pero es que nunca es una mala oportunidad para enunciar lo malo que es Microsoft Visual Studio 2012. Es tan malo que para corregir sus fallas lo que hay que hacer es usar Microsoft Visual Studio 2010, es decir, la versión anterior.
  4. Una vez que tienes un nivel listo descubres cosas que no funcionan correctamente. Por ejemplo, al lanzar un misil, le colocas una luz para que a medida que el misil avance la luz simule el fulgor del cohete del misil  (espero no tener que escribir eso más nunca). Pues bien Irrlicht maneja la iluminación en cada vértice, así que si tus meshes son muy grandes la densidad de los vértices es baja y entonces… pum.. la luz dinámica se ve irreal, poco natural. Aquí hay una discusión sobre el tema: “smooth lighting is only good if the vertex count is increaced” (“una iluminación suave es solo posible if el número de vértices se incrementa”). Ouch!
  5. La velocidad de desarrollo se incrementa en la medida que mantengas un balance correcto entre scripting y desarrollo en el core. Así que mi juego tiene 1, no, 2, 3 sistemas independientes para configurar a tiempo de ejecución. ¡3! Uno de ellos permite leer la info desde un xml que se puede cambiar a mano, otro permite modificar variables a través de una panel en el juego (el panel de configuración que tienen todos los juegos) y otro utiliza otro archivo *.ini que es de texto con líneas del tipo “velocidad=10″.Cada uno sirve para una función diferente.

Continuará…

10gb de archivos de sonido gratis

12-03-2015 12:34 PM

La gente de Sonniss acaba de hacer de domino público 10gb de archivos de sonido de todo tipo. Aquí el enlace:http://www.sonniss.com/sound-effe…/free-download-game-audio/ también hay un torrent (que es mi forma recomendada) http://sonniss.com/GameAudioGDC.torrent.
Puedes agregar estos trackers para acelerar un poco la descarga

udp://tracker.coppersurfer.tk:6969
udp://tracker.leechers-paradise.org:6969
udp://open.demonii.com:1337

Los archivos son libres de usar para uso personal y comercial, y no tiene copyright, es decir puedes usarlo para lo que quieras. O como dice el documento que viene con los archivos es Royalty free. Son de . Son 640 archivos de óptima calidad, aunque veo que faltan algunos tipos de sonidos, y parecen estar orientados más para juegos del tipo sci-fi, más que medieval, pre steam-punk. Sin embargo cubre si no toda casi todas las posibles necesidades que puedas tener en el futuro.

Viaje en el tiempo

11-03-2015 7:29 AM
braid

Me llegó a través de Hack News este artículo sobre viaje en el tiempo en el juego Braid. Este ha sido un juego muy celebrado por su innovadora mecánica, que incluye la posibilidad de devolver el tiempo de forma tal que se puede repetir ilimitadas veces una jugada hasta hacerla de la forma correcta. Esto resulta obviamente una ventaja en un platformer (un juego de plataformas, como Mario Bros). Este tipo de juegos nunca han estado entre mis favoritos, precisamente porque es un juego de reflejos, para lo cual soy bastante malo, y eso que jugaba segunda base cuando era adolescente. Ciertamente la capacidad de repetir una jugada es una ventaja y elimina parcialmente el tedio de tener que comenzar de nuevo, cuando, por ejemplo, morimos  justo cuando lo que nos falta es un último brinco, y ahí, justamente morimos. El artículo es bien extenso y resulta una excelente discusión sobre técnicas de diseño de juegos, aunque el autor parece estar más interesado en el viaje en el tiempo que en el juego en sí (de hecho su blog trata reiteradamente el tema 1,2,3,4,5,6,7,8,9,10,11), así que a veces el juego parece ser una excusa para discutir el tema, por ejemplo sus digresiones filosóficas sobre el modelo del juego y su relación con la realidad. El juego tiene una serie de reglas, diferentes a las que nos encontramos y aplicamos en nuestro día a día, pero ¿cómo se relacionan entre ellas, es decir, podemos interpretar estas reglas en base a las otras o, viceversa? Tuve, en realidad, que releer el artículo, porque al final no encontré una conclusión. No estoy seguro por qué estaba esperando una, pero si profundizamos en filosofía, ¿no se supone que es porque tenemos respuestas, o justamente profundizamos en filosofía cuando carecemos de ellas?

Usando un ejemplo más conocido, Superman viene de Kripton, y fue criado por padres humanos, y debido a que su composición molecular es diferente a la nuestra, puede volar. ¿Pero cómo es eso que puede girar sobre la tierra y hacer que se devuelva en el tiempo? No quiero discutir si eso es plausible sino si eso concuerda con el cuento de Kripton, o dicho de otra forma, si concuerda con el sistema de reglas de Superman,¿esto no es un quebrantamiento de las reglas? El autor incorpora al tema lo que Morpheus le dice a Neo (Matrix): “Tiene las mismas reglas básicas, reglas como la gravedad. Pero lo que tienes que entender es que estas reglas no son diferentes a las reglas de una computadora. Algunas pueden ser ajustadas, otras pueden ser quebrantadas”. Es decir, no hay reglas, porque Neo potencialmente puede quebrar cualquier regla. Intuitivamente creemos que detrás de este quebrantamiento hay un límite, hay un marco, hay alguna regla que no puede ser quebrantada, ni siquiera por Neo, por Superman, o por Tim, el personaje en Braid.

¿Por qué? ¿Por qué necesitamos esa regla? Intuitivamente pensamos que hemos llegado a este nivel en el siglo XXI siguiendo, acogiendo o moldeando nuestro comportamiento por un conjunto de reglas. Y es cierto, pero como ha quedado demostrado en política, en economía y en las finanzas, las reglas están para ser quebrantadas, no solamente en los países del tercer mundo sino, y especialmente, en el mundo desarrollado, por más que adoptemos una postura con nuestro monóculo y acariciemos nuestro bigote de la era victoriana donde inclusive había reglas de cómo caminar en la calle. Hollywood nos presenta el mundo de esa forma, pero también a Neo y a Superman, como susurrándonos al oído “Algunas reglas pueden ser ajustadas, otras pueden ser quebrantadas”.

Volviendo a Tim, el personaje en Braid, no quiero revelar nada, pero por lo que se entiende, Tim se portó mal con la princesa, ¿verdad? Te portaste mal Tim, no lo niegues, Tim, sí, sí lo hiciste, entonces, ahora que lo sabes quieres devolver el tiempo, quieres regresar atrás y tratar de enmendar tus errores. Pero te comprendemos Tim. No te culpamos, ¿quién no quiere enmendar sus errores? ¿quién no haría lo que sea por tener una segunda oportunidad, así sea, quebrantando las reglas?

 

 

Fifty Shades of Grey

10-03-2015 2:02 PM

Recientemente vi esta película 50 sombras de Grey, para averiguar por qué todo el revuelo, las sesiones masturbatorias de mujeres en las salas de cine y otras anécdotas similares. Me resultó interesante, bien entretenida, con excelentes actuaciones y un guión impecable. Sin embargo, quiero hacer algunos comentarios sobre los comentarios de la sección de comentarios de imdb, un sitio que es como la wikipedia de las películas.

Mi análisis está lleno de spoilers (es decir, se revelan detalles de la película) así que si no la ha visto y planea verla/no quiere saber detalles cruciales detenga la lectura ahora.

En resumen, los comentadores en el mencionado sitio imdb le otorgan 1 / 10 estrellas. Esto es algo así como llamarla paupérrima. Los comentadores básicamente concentran sus críticas sobre 3 aspectos:

1) El guión es terrible

2) Las actuaciones son pésimas.

3) No hay química entre los personajes.

Para organizar un poco la discusión discutamos punto por punto:

1) El guión es terrible

Yo no veo cuál es el problema con el guión. Yo no perdí de vista ni un momento la película y tampoco encontré alguna escena fuera de lugar, artificiosa, inútil, fastidiosa, repetitiva, contradictoria o absurda. La película me parece que cubrió en el orden correcto todos los aspectos de esta relación (problemática para decir lo menos) y sin que la acción cayera en algún momento, o que se extendiera sin razón. Me parece que cada escena concuerda con el ritmo de la película, y que todas las preguntas recibieron una respuesta satisfactoria. Entiendo que hay personas que se meten a ver la película equivocada (que es lo que creo que pasó con la mayoría de los comentadores) o que hay  personas incapaces de sintonizar con ciertas películas (tengo una conocida que se quedó dormida viendo Speed (Máxima Velocidad), lo cual de por si dice mucho sobre algunos espectadores. Así que no voy a profundizar mucho sobre esta valoración y quizás acepte que por parte del guión la película pierde 3-4 estrellas. Así que quizás estaría de acuerdo con que al menos en lo que al guión se refiere, esta es una película de menos de 7 estrellas. Pero sigamos.

2) Las actuaciones son terribles.

Sí,  no es un actor que podamos catalogar como lo mejor de hollywood pero la pregunta es si como sádico y niño millonario, mimado y consentido por su mama sobreprotectora resulta o no convincente. Quiero decir, ¿fue este casting correcto? Cuando Anastasia entra en la oficina de Mr Grey y se encuentra en su presencia, y comienza a sentirse incómoda debido a su timidez, a lo poco simpática de la actitud de su interlocutor, ¿toda esta reacción de ella, era injustificada? ¿el rostro no concordaba? ¿la escena resulta inverosímil? La respuesta a todas estas preguntas es no, el ambiente denso y tenso se produce por la actuación, sobretodo la de Dakota, quien se nos vende como una chica decidida, algo ruda pero ingenua, tímida y sin ninguna experiencia sobre nada. Lo mismo sucede a lo largo de la película, esta es una película que se basa completamente sobre las miradas de los actores, al estilo El silencio de los inocentes. Pero los comendadores de imdb ignoran todo esto, y se van directamente a la falta de sexo, a lo tedioso o falta de energía. Esta es una película que pretende ser erótica, no hay nada de pornografía, y la introducción al aspecto sado masoquista dominador-sumiso es introducido de la forma más elegante y sutil posible. Esa es la idea detrás de las actuaciones y del guión. Yo creo que los los comendadores de imdb estaban esperando una película más excitante, ágil, reveladora, m’as al estilo hollywood, pero se encontraron con una película con ritmo europeo o latino, pendiente de los labios de Dakota que actúan más que ella o el desespero de Mr. Grey.

3) No hay química entre los personajes.

¿No hay química entre los personajes así como con los personajes interpretados por Meg Ryan y Tom Hanks? ¿No hay química entre los personajes así como la química entre los personajes interpretados por Julia Robert y Richard Gere o Julia Robert y Hugh Grant? Yo creo que estamos perdiendo de vista que esta chica, Anastasia, es una virgen, ingenua, inexperta jovencita recien graduada, y Mr. Grey es un sádico, multimillonario, todopoderoso, dominante, malcriado, sabelotodo. No, quizás la química es muy diferente que con Julia, quien por cierto como prostituta se comporta muy diferente, tal como corresponde. ¿No será acaso que estamos en presencia de una sólida actuación de ambos, lo cual, al final, se confunde con falta de química? ¿No será que con un sádico que no hace el amor sino que tira/jode (fuck) la química es muy diferente? ¿No será que para esta jovencita que no tiene problema en someterse a torturas con látigo pero se molesta y decide largarse cuando se entera que Mr. Grey ha tenido en su casa a 15 mujeres, la química funciona diferente? ¿No será que no estamos calificados para opinar sobre cómo se comportaría una virgen con un sádico, si acaso de una prostituta y un millonario (Julia Robert y Richard Gere)? Ciertamente en esta películas no vamos a encontrar una escena como “soy simplemente una chica, parada frente a un hombre, pidiéndole que la ame” (Notting Hill), pero hay escenas, las hay, inclusive tan simples como el “Ana… Christian” en el ascensor. Si estos comendadores de imdb no aprecian el ”Ana… Christian” en el ascensor, difícilmente están calificados para escribir una opinión sobre esta o alguna otra película.

En resumen esta es una muy interesante película para alguien sin prejuicios  que no espera nada en particular sino permitir que la película transcurra a su propio ritmo. Yo solía prestarle atención a las valoraciones de imdb pero como que las voy a revisar con una lupa de ahora en adelante. Mi valoración definitiva y unánime es 6/10 estrellas.

Festival de Motores gráficos

05-03-2015 10:24 AM

¡Orden en la fiesta! (o como diríamos en mi tierra ¡orden en la pea!). Con el anuncio de Valve del nuevo motor gráfico Source 2, son 3 los sistemas de desarrollo de juego que han cambiado su política y precio en los últimos 3 días. Ahora Source 2 es gratis para desarrolladores. No se ha explicado suficientemente qué significa esto pero esperamos que se recibirá más información en los próximos días. Ya Unreal 4 había anunciado que ahora era gratis, y ayer Unity cambió sus condiciones y ahora también es gratis (algo así, hay una versión personal y es gratis hasta un revenue de $100k) (aquí la discusión en HackerNews con mucha información seria sobre el tema)

¿Mi plan al respecto? Ninguno, yo trabajo con Irrlicht, y no tengo interés en cambiar. Stick to the plan damm it!

¿Razones? Tengo muchas pero aquí está un resumen lo suficientemente compacto como para decirlo antes de que se cierren las puertas del ascensor:

  • Unreal

Este es un engine para PC’s de alto nivel, así que solamente es para aquéllos jugadores hardcore con tarjeta gráfica  con enfriamiento por agua. Programar con este motor es para el 10% del mercado. Mala idea.

  • Unity

Unity es una caja negra, si quisiera algo como esto trabajaría en XNA. A mi me gustan los sistemas abiertos, así que no, gracias, prefiero tener control sobre lo que estoy haciendo.

Para detalles ver la mencionada discusión en HackerNews con mucha información sobre el tema.

Motor Unreal 4 ahora es gratis sin subscripción mensual

03-03-2015 11:18 AM

Desde ayer la plataforma para desarrollo de juegos Unreal 4 ahora es gratis sin subscripción. Desde su lanzamiento oficial el año pasado se requería un pago mensual para su uso ($19), más regalías y otros detalles. Ahora es gratis de usar, y solamente se requiere un pago de %5 luego de los primeros $3k de ganancia bruta, por producto, por trimestre. Un buen negocio para todos y casi irresistible.

Además como en resumen se dice aquí en reddit, “Absolutamente increíble, ahora no tengo excusas para usar este motor” (Absolutely incredible. I’m completely out of excuses to NOT use this engine)

Yo he ignorado este tipo de herramientas (al igual que Unity) no solamente por el precio sino por su tamaño. El tipo de juego en los que siempre he trabajado son “simples” como para complicarme con una herramienta cuyo tamaño es absolutamente bestial (4.6gb). Sin embargo me decidí  ahora que no tengo excusas, a meterle mano hasta la médula. Como he dicho, la descarga es de 4.6gb. Al parecer hay que usar la herramienta de manejo de juegos (el launcher) de Epic (el fabricante) y no es fácil dilucidar dónde se maneja la herramienta para desarrollo (respuesta: en la librería).

Luego, cuando traté de comenzar a preparar un “Hello World” me encontré con que U4 requiere Visual Studio 13 ( yo tenía VS Ex 5, VS 10, VS 12, mala suerte, ese no lo tenía) Así que tuve que instalarlo también (9gb adicionales de peroles de microsoft). Espero en las próximas semanas describir mis peripecias con esta herramienta y ofrecer alguna ayuda a los principiantes. Primera pista: U4 es gigantesco y la curva de aprendizaje luce a la distancia bien pronunciada. Así que hay que tener bastante aliento. Uff.

El procrastinador siempre consigue la forma

30-01-2015 12:23 PM

Agregado recienmente al diccionario de el programador emperdenido:

Procrastinar (lat. procrastinare) 1.tr. Reprogramar con Qt tu aplicación de 20k líneas de código solamente para poder mostrar una tabla de una forma más conveniente para el usuario.

Esta aplicación (un ETL), tiene una rutina que se encarga de grabar a la base de datos interna (SQLite) los campos del convertidor de datos. Tiene 200 líneas de código luego de la reingeniería para simplificarla (sic). La conversión desde el rupestre api del Gui de Irrlicht a  Qt requirió 3 horas de trabajo. Moraleja: …

Enlaces en cualquier orden

  • Slasher’s Keep, un nuevo rpg, con excelentes gráficos, dungeons generados aleatoriamente, trampas, combate, y más, Lo único que no me gusta es que es first person (primera persona), si fuera con perspectiva en tercera persona estaría completo para mi. Clic: página en Steam greenlight, página del juego.
  • Una nueva solución sobre Galatea, pero traté de contrastarla en esta versión y no parece funcionar. Se debe tratar de una versión. Dejo al lector investigar y proveer un informe al respecto. Para el neófito de la ficción interactiva, Galatea es la obra maestra de Emily Short.
  • Siguiendo en la onda de la ficción interactiva, acaban de publicar una versión pulida, con una bonita interfase de The hitchhikers guide to the galaxy en su 30 aniversario. Realmente uno de los mejores juegos de Infocom (yo lo jugué por primera vez en mi Amiga 500 en 1989)
  • Más de ficción interactiva y más de Douglas Adams:El juego RPG secreto que la gente ha estado jugando por 15 años (The Secret Douglas Adams RPG People Have Been Playing for 15 Years)
  • … y más juegos re-actualizados, pero esta vez se trata de una aventura gráfica: Grim Fandango. Con nuevas texturas, mejoras y nuevo look. En su época vendio 200mil copias (yo compré una de ella), resultó muy famoso (y hoy en día sigue siendo un clásico) pero en realidad no es tan bueno como debería ser. Hay otras aventuras gráficas de mejor calidad pero que pasaron desapercibidas. Pero hay opiniones. Esta es una larga larga larga larga semblanza del juego, desde sus orígenes, con comentarios de Schafer, el autor de Grim (si usas Chrome puedes hacer clic con el botón derecho y dar “Traducir” si tus conocimientos de inglés no son los adecuados para una larga larga larga larga lectura).
  • Intrigante: este inocente artículo (¿Quién es el dueño de los Angeles?)es el equivalente de una novela de Sherlock Holmes para los programadores SQL. Comienza con un cuento a 1000 leguas de distancia para terminar en un análisis forense de la data disponible sobre los propietarios de la ciudad de los Angeles en California. SQL, ESRI, archivos dbf, queries imposibles, articulan un suspenso en crescendo que mantiene al borde de la silla a cualquier programador.

Anotaciones mezcladas

19-01-2015 4:42 AM

Un resumen rápido de lo más “relevante” de las últimas semanas.

Enlaces