14 de Junio, 2013

»BarCamp Berkshire 2 · La verdad es que fue el mejor evento al que asistimos el año pasado, así que había que repetir :). Serán dos días de nuevo, aunque puede que solo vayamos mañana. Hay más información en BarCamp Berkshire 2 en Lanyrd.

Actualización: algunas fotos del evento (pocas, porque parece que tenía el día borroso :P).

Hay 0 comentarios, anotación clasificada en: jornadas.

11 de Junio, 2013

»¿IPv6? · Hace dos años del World IPv6 Day, y algo más de uno del World IPv6 Launch. ¿Cómo va la cosa? Pues parece que IPv6 sigue avanzando y en 3 años más de la mitad de los usuarios de Internet deberían estar conectados con IPv6. Bueno, ya veremos :).

Hay 0 comentarios, anotación clasificada en: ipv6, internet.

8 de Junio, 2013

»Cargar objetos 3D en Python · Estoy haciendo un experimento con Pyglet y OpenGL y por ahora cargo objetos en formato OBJ según se exportan de Wings3D gracias a una clase incluída en Pyglet como una contribución externa. Funciona muy bien y por ahora me vale, pero la clase es limitada y no soporta animaciones (ni Wings3D, así que en este punto no es un problema :P). En algún momento probaré con Blender, pero no sé qué formato debería usar (que haya una librería para cargarlo). Tengo experiencia con Collada, pero no sé si es la mejor opción (y requiere numpy, que según recuerdo era un poco incómodo de instalar/distribuir). Dear lazyweb, ¿alguna sugerencia?

Hay 0 comentarios, anotación clasificada en: python, programming.

2 de Junio, 2013

Diseñando juegos

Cuando pasé un vídeo de For Science! (mi entrada en PyWeek 16, con la que quedé tercero), me comentaron que era una idea original; aunque más tarde pude comprobar que no lo era (hay gran cantidad de juegos match-3 combinados con otros géneros).

No es que todo esté inventado, que puede ser. Sospecho que el problema es más que no juego (o dejé de jugar hace años) y por lo tanto no sé realmente qué hace a un juego divertido, ni sé realmente valorar si un juego es innovador o si está copiando una fórmula que ya ha sido explotada en multitud de juegos (y eso que ahora ya sé identificar un tower defense cuando lo veo :D).

Ya intenté analizar cómo tener éxito en una PyWeek, y en cierto modo puse mis ideas en práctica en la última edición implementando un juego tipo puzzle con componentes de estrategia (al menos en papel, en la práctica no quedó tan bien :P). Pero aún considerando que puedo ser medianamente competente a la hora de implementar algunas ideas (como For Science!, que tiene sus cosas pero está dentro de mis posibilidades), no tengo ni idea de cómo diseñar un juego original.

Ya que esto va de pasarlo bien, estoy atacando el problema desde diferentes ángulos y de forma poco consistente según tengo tiempo y ganas :P.

Enfoque clásico: lee un libro

Me compré hace tiempo un libro sobre teoría de juegos y era un ladrillo que no pude acabar y que repetía 4 ideas sin parar; me quedó claro pero no sé realmente como trasladar eso a un juego. Me regalaron uno más enfocado al diseño de juegos y estoy leyéndolo, parece que voy aprendiendo cosas :D. Lo comentaré cuando lo acabe.

YouTube puede ayudar

Y además puede hacerte perder el tiempo. Mucho.

Hay vídeos que nos pueden enseñar de forma muy eficiente cómo funciona un determinado juego (¡sin tener que jugarlo!). La pega es que sin saber qué información es útil, es complicado sacar conclusiones.

He encontrado un par de series muy divertidas que se centran en lo que me interesa, aunque muchas veces se refieran a lo que está mal en un juego (que también es útil). Una de ellas es el clásico Angry Video Game Nerd, y en la misma linea están los cuatro capítulos de Sequelitis.

Jugar un poco

Esto parece evidente, pero no lo es tanto. En los últimos años ha habido una explosión de juegos amateur (el DIY), junto a la popularidad de lo retro y los juegos indie. Muchas veces Linux se queda fuera, y hay que recordar la parte de jugar un poco porque no tengo mucho tiempo ni habilidades (dediqué un domingo por la mañana a esta actividad y no saqué gran cosa en claro aparte de lo difícil que es el juego de las narices).

Si queremos ver qué se está haciendo ahora en el panorama indie podemos probar cosas de la lista de juegos indie en Pixel Prospector (algunos juegos funcionan con Wine o tienen versión para Linux).

Hace poco descubrí los juegos de Ben Croshaw y cómo es capaz de meternos en una historia. Sin saber de qué iba nos sumergimos en 6 Days a Sacrifice y es toda una experiencia (cuidado: horror psicológico, entrega final de una serie de 4; recomiendo empezar por el primero: 5 Days a Stranger -aunque no lo he jugado-).

La mayoría de sus juegos son aventuras point-and-click hechas con AGS (se puede compilar en Linux para jugar a los juegos de forma nativa), aunque ha publicado algún juego en el que usa el motor de AGS de una forma completamente diferente, como en 1213 (tipo Price of Persia o Another World, he jugado el primer episodio y es alucinante).

No sé si estoy dándole el enfoque adecuado, pero podré comprobarlo en la próxima PyWeek cuando tenga que pensar qué juego hacer con el tema seleccionado ;).

Hay 0 comentarios, anotación clasificada en: programming.

18 de Mayo, 2013

Google Talk se cierra

Recuerdo perfectamente la gran noticia de que Google Talk activaba la federación en su servicio de forma que podíamos hablar con sus usuarios desde nuestras cuentas XMPP en otros proveedores (lo que llamábamos jabber por aquel entonces).

Ya era bueno que Google apostara abiertamente por XMPP para su servicio de mensajería en los tiempos en los que diferentes (e incompatibles) protocolos peleaban por hacerse con los usuarios, pero que además permitiera comunicar con otros proveedores... era una pasada.

Ese era el Google de aquel entonces, antes de que apostara fuerte a la carta de las redes sociales. ¿Recordamos el cierre de Reader? Por supuesto Google+ sigue sin ofrecer RSS; otro estándar abierto al que Google parece haberle dado la espalda. Sigue el ejemplo de otras redes sociales: los usuarios deben tenerlo fácil para generar contenido dentro del servicio, y nunca facilitar su salida.

Ahora Google unifica su mensajería bajo el nuevo Hangouts, que ya no está basado en XMPP ni en estándares abiertos :(.

El problema está en que con la unificación de servicios otras opciones como Google Talk o el chat de Gmail desaparecen, y con ellos la interoperabilidad: por ahora el interfaz XMPP sigue funcionando, pero sin federación.

Esto significa que para hablar con tu contactos con cuenta de Gmail (bueno, en realidad es Google+... porque todo converge a eso), tienes que tener una cuenta en Google. Suena tanto a Microsoft con su Messenger que no sé si reírme (digo Microsoft por ser el ejemplo clásico que marcó estilo, en realidad la mayoría de las propuestas de mensajería instantánea siguen esta estrategia). Ahora Google deja de ser especial en este punto; espero que le sirva en su batalla por las redes sociales. No sé si a Facebook le va a afectar demasiado, no parece que Google+ gane terreno.

Afortunadamente el protocolo XMPP goza de buena salud, y lo encontramos en muchos de los sistemas de mensajería que millones de personas usan a diario (mensajería corporativa, el chat de Facebook o WhatsApp, por poner algunos ejemplos), aunque sin federación se pierda parte del espíritu de un protocolo que pretendía unificar el panorama de la mensajería instantánea.

En fin, una mala noticia. Si hablabas conmigo de vez en cuando vía XMPP (sigo con mi cuenta de jabberes.org de siempre) y usas el sistema de Google, dejaremos de vernos online pronto. Al menos el correo electrónico sigue estando basado en protocolos abiertos, ¿no? Mejor no dar ideas ;).

Hay 0 comentarios, anotación clasificada en: jabber.

10 de Mayo, 2013

»¿Programas motores o juegos? · Alguna vez me he encontrado esa pregunta cuando alguien buscaba consejo sobre cómo empezar a hacer juegos, y parece que es más relevante de lo que yo pensaba. Si miramos por ejemplo la lista de juegos indie de Pixel Prospector, veremos que hay muchos juegos que usan inventos de alto nivel como GameMaker o MMF2 (ambos llevan mucho tiempo en el mercado), y los resultados pueden ser muy buenos. Claro que si te pasa como a mi que te gusta programar y tus capacidades artísticas son nulas; igual lo que te pasa es que la respuesta a la pregunta es que más que juegos, lo tuyo son los motores. ¿Tiene sentido?

Hay 0 comentarios, anotación clasificada en: programming.

5 de Mayo, 2013

»Resultados de PyWeek 16 · Ya están los resultados, ¡he quedado tercero! Mi entrada ha sido votada por 14 jueces con una puntuación final de 3.64 (3.43 en diversión, 3.57 en innovación y 3.93 en producción). El ganador en solitario ha sido Balancer Of Cirles (por delante de mi favorito: Last Will of the Emtar; más o menos la misma sorpresa que en la edición pasada porque esta vez incluso el propio autor dice que es más una demo que un juego :P), y en la categoría grupos el ganador ha sido The Sea of Good and Bad (justo ganador, en mi opinión). Felicidades a los ganadores y a todos los participantes, la próxima en Septiembre ;).

Actualización: recuerda que puedes bajarte la versión post-pyweek en: For Science! Incluye un par de correcciones y mejoras en la IA.

Hay 0 comentarios, anotación clasificada en: pyweek, python, programming.

4 de Mayo, 2013

Two Scoops of Django

Acabo de terminar Two Scoops of Django. Como el subtítulo indica, es un libro sobre las mejores prácticas con Django 1.5, de la mano de Daniel Greenfeld y Audrey Roy (que, entre otras cosas, mantienen Django Packages).

No es un libro de iniciación, y se supone que el lector tiene una buena base de Python y Django; aunque no es necesario conocer con todos los aspectos del framework. Por ejemplo: mi experiencia con las vistas basadas en clases no es muy extensa (solo las he usado para generar feeds en Atom o RSS), pero sin tener algo de idea el capítulo puede quedar algo confuso y ser mucho menos útil.

Son buenas prácticas, por lo que los autores demuestran tener una opinión muy formada en todo lo que explican, pero en general está todo muy bien justificado y, además, yo estoy casi siempre de acuerdo con ellos (con lo que seguro que tienen razón :P).

Resulta interesante ver como más o menos ya venía siguiendo algunas de las recomendaciones, y he aprendido muchos cosas nuevas y trucos que espero poner en práctica pronto.

Aunque me ha gustado mucho, el libro no es perfecto. Es corto y se lee fácilmente en unas horas, sobretodo porque está pensado como un libro de referencia y consulta, y si tiene algún capítulo que flojea un poco o alguna parte que chirría, valorando todo el conjunto creo que es un fallo despreciable.

Yo lo he leído de la biblioteca de la empresa (podemos pedir cualquier libro relacionado con el trabajo), pero no descarto comprar una copia para tener a mano en casa (quizás la segunda edición), porque creo que su mayor utilidad está en usarlo como referencia puntual hasta que puedas interiorizar toda la información que contiene para usarla cuando sea necesario.

En resumen: lo recomiendo a cualquiera que tenga ya algo de experiencia con Django y quiera mejorar sus habilidades, pero no es substituto de la documentación oficial, sino un buen complemento.

Hay 0 comentarios, anotación clasificada en: lecturas, django.

28 de Abril, 2013

Votando entradas de la PyWeek

Una vez que consigues entregar un juego en una edición de PyWeek, tienes dos semanas para votar los juegos de los demás participantes. Como conseguí entregar una especie de puzzle con componentes de estrategia, he estado probando juegos esta semana.

Ya he probado 34 de 44 entradas, y sin duda votar es lo peor de la competición :(.

La votación sigue unas reglas sencillas, pero bastante abiertas a interpretación:

  • Hay que valorar cada juego en sí mismo, y no comparándolo con otros.
  • Los criterios a valorar de 1 a 5 son: diversión, innovación y producción.
  • Si no consigues hacer funcionar un juego, puedes votar DNW (de Did Not Work; o no funcionó) y tu voto no contará para calcular el total. Esta es una de esas normas ambiguas, porque normalmente las puntuaciones son muy variables (a gustos) y un juego con muchos DNW tiene menos valores para hacer media, algo que puede beneficiar o perjudicar a la entrada.
  • Finalmente puedes votar por descalificar la entrada si consideras que no ha seguido el tema propuesto, el juego no funciona en absoluto o se han hecho trampas. Una entrada es descalificada si se llega a un 50% de votos de este tipo (algo que no ha pasado nunca).
  • Además hay que incluir un comentario, que puede servir para dar feedback, justificar un DNW, etc.

Es complicado ser consistente tras tantos juegos, especialmente cuando algunos participantes entregan cosas que no son juegos sino una demo de lo que podría ser un juego o simplemente un prototipo repleto de fallos al que no se puede jugar :(.

En esos casos el feedback es especialmente difícil y resulta un poco tedioso cuando tardas más en instalar las dependencias exactas que requiere un juego que luego el tiempo que dedicas a jugar un no-juego.

Curiosamente los juegos más acabados y con más funcionalidad parecen tener los requerimientos más simples: PyGame o Pyglet, lo que puede significar que es más importante conocer las librerías base, centrarse en la mecánica del juego y pulir el resultado que añadir azúcar de una forma más inconsistente.

Esta edición tiene muchos juegos interesantes y, aunque no tengo favoritos, sí imagino quién va a ganar (no, no soy yo :D). ¡En una semana se sabrán los resultados!

Hay 0 comentarios, anotación clasificada en: pyweek.

21 de Abril, 2013

»¡PyWeek 16 conseguida! · La elección del tema Nemesis estuvo a punto de ser eso: mi némesis. No se me ocurría qué hacer :(. Finalmente junté un par de ideas en papel y, aunque ha costado, el plan ha resultado en un juego tipo puzzle match 3 con un componente de estrategia (más o menos :P). Se puede descargar desde mi entrada en PyWeek 16 o desde la página que he montado en usebox: For Science!

Ahora a esperar los resultados de las votaciones, aunque completar una PyWeek es siempre un éxito ;).

Hay 0 comentarios, anotación clasificada en: python, programming, pyweek.

Entradas antiguas