Archive for febrero 2014
Indie Games FTW!
¡Hola! En esta ocasión escribiré sobre el documental titulado “Indie Game: The Movie” producido por BlinkWorks
Media y dirigido por Lisanne Pajot y James Swirsky en el año 2012. Tocaré algunos temas de la película y comentaré un poco sobre el camino que está tomando la industria de los videojuegos en la actualidad.
En la película se le da seguimiento al desarrollo de tres
videojuegos independientes: Super Meat Boy, FEZ y Braid. En el caso de Super
Meat Boy, se enfrentaban a terminar el juego en un tiempo relativamente corto
no solo porque querían ganar dinero, sino porque DEBÍAN ganar dinero, ya que
sus fondos se estaban agotando. El caso de FEZ no es muy distinto. Se debía
terminar el juego para estar en una convención de videojuegos (PAX) y tener ganancias
para terminar con el desarrollo del videojuego y de igual manera obtener
ganancias. Adicionalmente, FEZ enfrentaba problemas legales por la separación
de los desarrolladores del juego, lo cual implicaba que si FEZ se presentaba en
PAX, podría implicar una demanda. Por otro lado, Braid es un juego que rompió
paradigmas en el modo de juego de plataforma tradicional, ya que podríamos
considerarlo como un juego a prueba de errores, haciendo que además de ser un
juego de plataformas, también pudiese ser considerado un puzzle.
La industria del desarrollo (de videojuegos y en general) es
un poco hostil en el aspecto de que las personas involucradas tienen que
sacrificar muchas cosas: dinero, tiempo para ellos mismos, horas de sueño e
incluso el tipo de alimentación que llevan. Si bien la recompensa final en
muchos casos vale la pena, hay que tener en cuenta lo que representan todos
estos sacrificios. En este caso no hablamos simplemente de tener poca vida
social, sino de repercusiones a la salud por la falta de sueño o alimentación
hasta depresión por la falta de contacto con otras personas.
Esto es todo por ahora. Espero que haya sido de su agrado y les recomiendo jugar juegos independientes. Aunque a veces no lo parezca, pueden llegar a ser muy buenos a pesar de que algunos son cortos.
Welcome to the Jungle, We Got Fun 'n' Games
¡Hola! :)
En esta ocasión hablaré un poco sobre el arículo titulado "Welcome to the Jungle" escrito por Herb Sutter en diciembre del 2011.
En esta ocasión hablaré un poco sobre el arículo titulado "Welcome to the Jungle" escrito por Herb Sutter en diciembre del 2011.
El artículo habla acerca como en el
“final” de la Ley de Moore, comenzamos a hablar de entregar a los
usuarios equipos personales de cómputo paralelo. En tiempos
actuales, tenemos que hablar de 3 formas esenciales de procesamiento
en múltiples núcleos.
Primero vale la pena hablar acerca del
procesamiento con varios núcleos en sus primeras fases. El hecho de
que la velocidad de procesamiento de los procesadores no se haya
visto mejorada (como en años anteriores), obligó a las empresas a
implementar modelos con varios núcleos. Ya se ha hablado de este
aspecto en entradas anteriores.
Ahora bien, con el modelo de
procesamiento con varios preocesadores, tenemos que recordar la parte
de núcleos heterogeneos. Con este modelo, podemos hablar del
procesamiento dedicado en varios núcleos. El ejemplo más común es
la parte de CPU y GPU, donde el CPU se utiliza para tareas comunes
del sistema operativo y el GPU funge como procesamiento de gráficas,
permitiendo un mejor uso de los recursos disponibles. Ahora, hablar
de paralelismo en CPU y GPU permitiría llevar la optimización de
recursos hasta su máxima expresión.
Posteriormente, estamos obligados a
tocar el tema de núcleos elásticos para cómputo en nube. La parte
de paralelismo y concurrencia es un tema común (sino es que
indispensable) en cloud computing. Hay que recordar que una de
las técnicas más usadas en la nube es el map-reduce. Con
esta técnica, hablamos del crecimiento “scale-out” de los
centros de datos. Esto quiere decir que en lugar de concentrarse en
un solo dispositivo, el
centro de datos tiene varios equipos pequeños siendo usados de
manera distribuida. Así, el procesamiento lo hace cada equipo de
manera concurrente y una computadora finalmente hace la operación de
reduce. Este es uno de los modelos de procesamiento más importantes
de la actualidad, ya que funciona con grandes volúmenes de
información en tiempos razonables.
Eso es todo por ahora, espero haya sido de su agrado :)¿Paralelismo? ¿Quieres saber qué significa?
¡Hola! En esta ocasión, discutiré un poco sobre el artículo "Parallel Computing on any desktop", escrito por Ami Marowka, el cual fue publicado en el Communications of the ACM.
El artículo habla acerca de paralelismo aplicado a distintos equipos de cómputo. Hace algunos años, hablar de paralelismo no era muy común. Solamente los equipos con un buen nivel de procesamiento eran los “indicados” para realizar este tipo de tareas. Actualmente, hablar de paralelismo es no solamente común, sino que se ha vuelto una necesidad.
El artículo habla acerca de paralelismo aplicado a distintos equipos de cómputo. Hace algunos años, hablar de paralelismo no era muy común. Solamente los equipos con un buen nivel de procesamiento eran los “indicados” para realizar este tipo de tareas. Actualmente, hablar de paralelismo es no solamente común, sino que se ha vuelto una necesidad.
El tema de paralelismo en computadoras que pueden ser
adquiridas por personas “comunes” es algo que implícitamente nos hace ver a los
programadores que tenemos que explotar todo el procesamiento disponible que
existe. Es importante saber que cuando se habla de “explotar”, no se refiere a
solamente hacer que el procesador trabaje al máximo de su capacidad, sino que todo
lo que el procesador trabaje sea efectivo dentro del programa.
En el artículo se propone como una solución a OpenMP. Hay
que recordar a OpenMP como una herramienta poderosa que permite configurar
código y permitir la ejecución de ciertas tareas de manera paralela. Si bien
existen herramientas tan buenas como OpenMP, hay que recordar que solo es eso:
una herramienta. El programador es quien se tiene que hacer cargo de comprender
la naturaleza del problema y posteriormente escribir código que sea thread-safe. La parte de comprender el
problema es sumamente importante, ya que mientras más se conozca el problema,
menor es la probabilidad de sufrir de alguna falla referente a datos que son
accesados por varios threads.
Finalmente, hay que remarcar la parte de equipos de cómputo
en ámbitos empresariales. Es cierto que a un buen equipo empresarial podría
sacar provecho de herramientas como OpenMP. Sin embargo, cuando hablamos de
empresas que empiezan a crecer en grandes dimensiones, es necesario explorar
otras alternativas, como el cómputo distribuido. Esta solución puede ser vista
como “factible”, debido a que el sistema puede estar construido con distintos
equipos caseros y que, usando cómputo distribuido, puede ser capaz de procesar
grandes volúmenes de información en un periodo de tiempo aceptable.
Eso es todo por ahora, espero haya sido de su agrado :)