Mostrando entradas con la etiqueta informática. Mostrar todas las entradas

La seguridad en los MMORPG  

Posted by Unai in , ,

Os presento un documento que he elaborado como tarea final en la asignatura de Seguridad Informática. En él he tratado como tema principal, como indica el propio título, la Seguridad Informática en el mundo de los MMORPG, que son un tema recurrente en mi BITácora.

En el trabajo he desarrollado los siguientes puntos:
-El MMO como ventana abierta en la seguridad del usuario
-Protegiendo los bienes virtuales del jugador
-La seguridad de la información por parte de la desarrolladora
-Errores y ataques en mundos virtuales

Aunque haya a quien pueda sonarle un poco técnico, he tratado de escribirlo de la forma más amena posible, añadiendo algunas explicaciones adicionales y con imágenes para agradar la lectura. Creo que puede ser de interés para cualquier a quien le guste este tipo de juegos.


Cómo un ordenador se pasó Civilization mediante RTFM  

Posted by Unai in , ,

Artículo de John Timmer en Ars Technica

How a computer beat <em>Civilization</em> by RTFM

Normalmente, hablar de artículos de informática me supone un gran esfuerzo, pero dos cosas sobre uno reciente le dan un atractivo personal: soy un adicto a la serie de Civil ization y rara vez me tomo la molestia de leer el manual de usuario. Éstos no parecen problemas de los que se resuelvan mediante la informática, pero algunos investigadores han decidido dejar que un ordenador aprenda solo a jugar a Freeciv y, en el proceso, aprenda a interpretar el manual del juego por su cuenta. Sencillamente determinando si los movimientos que realizaba tenían éxito o no, el software de los investigadores no sólo fue mejorando en cómo jugar al juego, sino que también llegó a entender gran parte del manual de usuario.

Civilization no es el primer juego en llamar la atención de los investigadores informáticos. Los autores del ensayo, situados en el MIT y el University College London, citan literatura pasada en la que ordenadores aprendían solos a jugar al go, al póker, al scrabble, a juegos de cartas multijugadores y a juegos de estrategia en tiempo real. Al método utilizado para todos estos se le llama búsqueda Monte Carlo. El juego ejecuta una serie de juegos simulados por cada movimiento posible, que usa para determinar la utilidad de distintos movimientos. Utiliza éstos para actualizar una función de movimiento que estima el valor de determinado movimiento para determinado estado del juego. Después de múltiples iteraciones, la función de utilidad debería mejorar a la hora de identificar el mejor movimiento, aunque el algoritmo insertará esporádicamente un movimiento aleatorio, sólo para seguir probando nuevas posibilidades.

Todo esto suena bastante simple, pero los desafíos computacionales son bastante grandes. Los autores estiman que el jugador medio tendrá unas 18 unidades en juego, y cada una de ellas puede tomar una de 15 acciones. Eso crea un "espacio de acción" de unos 10²¹ movimientos. Para medir la utilidad de alguno de ellos, se realizan pruebas de 20 movimientos y después se comprueba la puntuación del juego (para determinar si se ha ganado o perdido desde entonces). Llevaron esto a cabo 200 veces para generar sus números de rendimiento.

Para las pruebas, se establecía que la búsqueda Monte Carlo se hiciera jugando con la IA de Freeciv en un cara a cara en una rejilla de 1000 tiles. Completar una sola partida de 100 movimientos llevaba 1,5 horas en un Core i7, así que el tiempo de simulación no era trivial. Pero, en general, el algoritmo funcionó bastante bien, siendo capaz de obtener una victoria en ese breve período de tiempo en cerca del 17 porciento de las veces (si se le deja jugar una partida hasta el final, la búsqueda Monte Carlo ganaba casi la mitad de las partidas).

Aun así los autores se preguntaban si el algoritmo podría tomar decisiones mejores si tuviera acceso al manual de usuario, que contiene pistas y consejos sobre los puntos fuertes y débiles de distintas unidades, así como nociones generales de cómo construir un imperio (como por ejemplo, hacer las primeras ciudades cerca de ríos). Así que decidieron que su programa hiciese un RTFM.

La "lectura" se llevó a cabo con una red neural que recibía como datos el estado del juego, una propuesta de movimiento y el manual de usuario. Un grupo de neuronas de la red analizaba el manual en busca de parejas estado/movimiento. Estas parejas son estados como "unidad activa" o "camino completado" y movimientos como "mejorar terreno" o "fortificar unidad". Una red neural separada identificaba si alguno de los estados identificados por la primera se correspondía con la situación actual. Después se combinaban para buscar en el manual algún consejo útil, que a continuación se incorporaba a la función de utilidad.

La clave de este proceso está en que la red neural ni siquiera sabe si está identificando correctamente las parejas de estado/movimiento cuando empieza (no sabe cómo "leer"), menos aun si ha interpretado correctamente el consejo que se da (¿construir ciudades cerca -near- de los ríos, o no construirlas nunca -never- donde los ríos?). Todo lo que le importa es el resultado que haya tenido la interpretación en el devenir del juego. Resumiendo, tiene que aprender a leer el manual de usuario probando distintas interpretaciones de éste y juzgando si mejoran su forma de jugar.

Pese al desafío que supone, funciona. Cuando se incluyó el análisis del texto entero, el éxito del software de los autores se disparó; ahora ganaba más de la mitad de las partidas de menos de 100 movimientos y vencía a la IA del juego casi el 80 porciento de las veces en partidas completas.

Para evaluar cómo de bien lo hacía el software, los autores le daban una mezcla de frases sacadas del manual y del Wall Street Journal. El software identificaba correctamente las frases del manual el 90% de las veces al principio del juego. Sin embargo, al progresar la partida, el manual se volvía una ayuda menos necesaria, y la habilidad de elegir del manual descendía a en torno al 60 porciento durante el resto de ésta. En paralelo a esto, el software empezaba a depender menos del manual y más de su propia experiencia.

Eso no significa, sin embargo, que el Journal fuese inútil. Alimentar al software siempre con texto aleatorio en vez del manual de usuario también aumentaba la tasa de éxito del algoritmo, hasta el 40 porciento en las partidas de hasta 100 movimientos. No alcanza el 54 porciento obtenido con el manual, pero es bastante mejor que el 17 porciento del algoritmo a secas.

¿Qué está pasando aquí? El ensayo no lo dice, pero la cuestión es que la red neural se limita a identificar reglas que funcionen (como construir cerca de un río). No le importa cómo se transmiten las reglas, sencillamente asocia el texto con una acción al azar y determina si el resultado es bueno. Si hay suerte, puede acabar asociando una regla útil a un texto aleatorio. Tiene más probabilidades con textos no-aleatorios del manual de usuario, pero aún puede aportar una guía útil sin importar qué es lo que se le da para trabajar.

(He inquirido a los autores acerca de esta explicación, pero, en la publicación de este artículo, aún no he recibido respuesta.)

Los autores concluyen que su software aprendió exitosamente a valerse del rico lenguaje presente en el manual de usuario para funcionar mejor, aprendiendo a intepretarlo sobre la marcha. Esto es claramente cierto; el software se desempeña mejor con texto del manual de usuario que elegido al azar, y la diferencia es estadísticamente significativa. Pero el mero hecho de darle cualquier texto lo mejora considerablemente. Esto implica que es mejor tener algunas reglas con las que trabajar, sin importar de dónde se deriven, que ninguna guía en absoluto.

Hay una actualización disponible en tu ordenador...  

Posted by Unai in ,

Warning: Linux ownership may result in Jobs-lessness

linux - genial, ¡más cosas gratis!
winwos - ¡otra vez no!
mac - ¡ooh, solo 99$!

Árbol de navidad...  

Posted by Unai in , ,



(editado con imágenes y traducciones mejores, que la anterior la hice con Paint y poco tiempo)

Original en xkcd

Here it is!!! SHOGI WARS PLUS PLUS  

Posted by Unai in ,


Today, Friday, December the 11th, 2009... You can download Shogi Wars Plus Plus for free!!!


Shogi Wars Plus Plus installer (65.81 MB)

(by Euskuaresoft - Unai Cabezón & Iker Martin)

If you like it, help us advertising it. Tell people to play it. Recommend it to your friends. Link us. Thank you.

Instalar el Sacrifice  

Posted by Unai in , ,


Ahora mismo estoy jugando al Baldur's Gate 2, pero como las muertes repentinas y tan fáciles me frustran un poco (como echo de menos el NWN, la "secuela" de los Baldur's Gate e Icewind Dale, con su sistema de adivinar cómo de difícil sería enfrentarse a algo, y así no me mataría cada individuo al que insulto...), he instalado también el próximo juego de mi lista de juegos pendientes: el Sacrifice.

Es un juego que yo llamaría estrategia/rol, o sea, más de estrategia que de rol, al contrario de los rol/estrategia como Final Fantasy Tactics, Bahamut Lagoon o Fire Emblem. Pero ya hablaré de eso cuando le haga la review.

El problema del Sacrifice es que es difícil de arrancar en XP. Tanto en 98 como en Vista se arranca bien, pero no en XP. Y por lo que he leído, según que Linux también da problemas. El problema principal es que a Sacrifice cuando la memoria RAM es de más de 2GB, le parece insuficiente. Hay soluciones del tipo "usa Vista", o "reconfigura el PC para que tenga menos memoria RAM."

Aún así, las mejores soluciones las he encontrado en Bed Against The Wall; concretamente, en estas dos entradas:

Para quien no entienda el english, voy a hacer un resumen, quizás a alguien le sea útil. Además, la primera parte sirve también para otros juegos con el mismo problema.

A) Arreglar el problema de la memoria:
-A veces podría bastar con cambiar la compatibilidad a Windows 98 (click derecho, propiedades, y en la tercera pestaña)
-En el CD de Windows XP, hay que instalar: \Support\Tools\act20.exe
-Tras instalar, ejecutar Archivos de programa\Windows application compatibility...\applications\QFixApp.exe
-En "Layers", seleccionar ProfilesSetup
-En "Fixes", seleccionar GlobalMemoryStatusLie. Si está, también GlobalMemoryStatusTrim.
-Bucar en "Browse" el archivo "sacrifice.exe" (o, en su defecto, el ejecutable del juego que no funciona)
-Click en "Run"
-Ejecutar el juego

B) Solucionar 0xc0000005
-Es un error que sale en XP, si en lo anterior no se ha marcado GlobalMemoryStatusTrim. ¡El problema es que las versiones actuales del QFixApp no traen esa opción!
-Tenéis que meteros en el segundo enlace que he puesto antes, bajar a la zona donde pone "solution".
-Descargarse el parche que hay donde dice "from here" en el punto 1.
-Descargarse el archivo en descarga directa donde dice "direct link" en el punto 2.
-Abrir lpatch.exe
-Decir "yes", buscar el archivo que se descarga en el punto 2, decir "ok", buscar el "sacrifice.exe"
-Si todo va bien, aparece un mensaje diciendo que ha cambiado 1 byte del archivo.

¡Bien, ya debería funcionar! (A mí, me ha funcionado)

Shogi Wars Plus Plus  

Posted by Unai in ,


Suena bien, ¿eh? ¿A que dan ganas de comprarlo? :)

Shogi Wars Plus Plus es el trabajo práctico que estamos haciendo Iker Martín (el heavy de clase) y yo en C++. Es un videojuego basado en el Shogi o "ajedrez japonés", solo que en vez de usar un simple tablero cuadriculado y las fichas con los kanji (caracteres japoneses), hemos dotado al juego de una ambientación más fantasiosa, con magos, dragones, mazmorras y todo lo demás.

¿Qué es un "shogi"?
Shogi es un juego cuyas raíces son las del ajedrez, en la antigua India. Hace ya casi 1500 años que el juego se expandió hacia oriente, resultando en una gran cantidad de variantes. El shogi "estándar" actual se remonta a por lo menos el siglo XVI.
El tablero del shogi es mayor que el del ajedrez, ya que es de 9x9. Tiene más fichas, y algunas de ellas se mueven diferente (por ejemplo, el peón come hacia adelante y no hacia los lados, y el caballo solo salta hacia adelante).
Una de las grandes diferencias son las promociones. Cuando una ficha que no sea el Rey o un General Dorado llega a las filas más lejanas, se "promociona" a otra ficha. Por ejemplo, el alfil y la torre obtienen movimientos nuevos, y el peón obtiene los del general dorado.
La otra gran diferencia es que las fichas no se comen, sino que se capturan. En cada turno el jugador puede elegir entre mover una ficha, o poner en juego una capturada (con ciertas limitaciones, claro).

El mapa del Shogi "estándar" es un asedio al Castillo Gormandyas.
En imagen, un Ángel, la promoción de las Sacerdotisas (alfiles)

Buoh, de eso ya hay en internet. ¿Qué tiene este Shogi Wars Plus Plus de especial?
¿Aparte del nombre, que está chulísimo y es todo un reclamo publicitario? ;) Como se ve en el par de capturas de pantalla que pongo, tiene unos gráficos chulísimos creados usando los de los programas RPG Maker. Además, nos hemos tomado unas licencias creativas y hemos cambiado de nombre a muchas fichas. Siempre manteniendo sus movimientos originales, claro.
Además, Shogi Wars Plus Plus no tiene solo el shogi 9x9, sino que también cuenta con otras OCHO variantes: 5x5, 6x6, 7x7, 7x9, 11x11, 12x12, 13x13 (estas últimas dos son sin capturas) y una variante del 9x9 en la que se empieza con el tablero vacío. ¡Cada una con distintas fichas y escenarios!
Por si fuera poco, le hemos puesto todo un argumento. Sucede en los Reinos Shogi, Gormandyas, Yvori, Braal y Thunng, cuyos líderes (Gormandyas III, el Emperador Yvor, el Señor Oscuro y el Faraón-Lich) quieren invadirse los unos a los otros. Y no digo más por no spoilear :D
El 7x9 es un enfrentamiento entre magos, en la Torre Oscura.
Ampliando esta imagen se ven los gráficos del juego a tamaño real.

En resumen, es mejor que el ajedrez porque tiene más fichas y opciones, es mejor que el shogi por los geniales gráficos, y encima no hay uno sino NUEVE tableros diferentes. Todo esto con descarga directa gratuita. Para mediados-finales de Diciembre ya estará listo. ¡Así que ya sabéis qué pedir estas Navidades!