Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.

domingo, 27 de enero de 2008

Prince of Persia

Llevo unos días jugando al God of War en la PS2 y, he de confesarlo, estoy enganchado. La verdad es que el juego merece un sobresaliente en todos sus aspectos, aunque ya tiene sobre sus espaldas tres añitos. La historia se centra en Kratos, el general espartano que, cegado por su ambición y afán de conquista, vende su alma a Ares a cambio de la gloria y la victoria. A partir de entonces, armado con las Espadas del Caos -dos espadas de fuego atadas mediante cadenas a sus brazos-, Kratos emprende una lucha sin cuartel, devastando todo a su paso.


God of War


La verdad es que el juego se presta a la comparación con la archiconocida saga del Prince of Persia, en particular a sus, hasta ahora, tres últimos títulos: The Sands of Time, Warrior Within y The Two Thrones. Para un fan acérrimo del juego como yo desde sus primeros tiempos, sin duda gana este último, no por nada, sino porque su desarrollo está basado más en la resolución de pequeños puzzles y en la habilidad que en la masacre propia de Kratos. En cualquier caso, tal vez por nostálgico, me quedo con aquellos primeros tiempos, hace ya 20 años, en los que aunque seguía jugando con mi querido Spectrum, un compañero de instituto ya poseía un velocísimo (en aquel entonces) XT-8086 con monitor en fósforo verde. En aquel ordenador descubrí al Príncipe, que corría con su fluido movimiento nunca visto hasta entonces en un juego de ordenador, dejando una leve estela de color verde tras de sí debido al pobre refresco del monitor. Allí llegamos hasta el sexto nivel, y mi amigo, haciendo alarde de su escasa paciencia, borró el juego. Cuando, años después, volví a conseguirlo, lo jugué hasta la saciedad en mi flamante 386 a 25MHz, pasándolo una y otra vez hasta lograr mi record de pasarlo, del tirón, en 21'51". Niveles en dificultad creciente, pequeños enigmas a resolver, enemigos diestros con la espada, y osados equilibrios al pie del abismo nos esperaban.


POP1


Tiempo después vino el Prince of Persia 2, The Shadow and the Flame, bastante más flojo que el original. Prince of Persia 3D, que pasó sin pena ni gloria, dejó entrever lo que sería el mundo de las 3D aplicado al clásico. En todo este tiempo, surgieron juegos basados en él. Los inolvidables Another World y su secuela, Flashback, nos dieron a un "príncipe" futurista. Y Tomb Raider armó a una peligrosa Lara Croft capaz de tantas piruetas como nuestro Príncipe, ahora sí, en unas optimizadas tres dimensiones.


Pasó el tiempo, y Jordan Mechner, el autor del clásico, volvió a resucitar al mito en la trilogía publicada por Ubisoft, volviendo a mostrar todo el esplendor de Oriente, en una serie de juegos que no desmerecieron el desconocido nombre del verdadero Principe de Persia.


¿Y después? Nos quedan diversas secuelas en varias plataformas (PSP, DS, Wii, XBox Live...) , los editores de niveles para el primer juego de la saga (y el famoso 4DPrince, de endiablada dificultad). Ah, y por supuesto, el increíble Assassin's Creed, que promete convertirse en otro clásico. También está presente la temible posibilidad de una película, dentro de un par de años. Temible por cuanto las versiones del séptimo arte respecto a los videojuegos, salvo honrosas excepciones, suelen ser bastante pobres. Y apasionante, si es capaz de captar la magia de nuestro héroe.


AC

sábado, 26 de enero de 2008

OpenID en ASP.NET

Logo de OpenID


Elegir el método de autenticación y autorización de los usuarios de una aplicación y, más concretamente, de una aplicación web que permanece expuesta a la inclemencia de Internet, es siempre un factor determinante en la seguridad de los sistemas informáticos. En la plataforma .Net de Microsoft, los métodos de autenticación para una aplicación ASP.Net dependerán de los que proporciona el servidor web IIS, permitiendo por tanto tres tipos de autenticación: básica, implícita y Windows; podrá estar basada en formularios (usando cookies); o, por último, podremos hacer uso del servicio de Microsoft Passport.


Por otro lado, ASP.NET proporciona básicamente dos tipos de autorización: basada en la autorización de URL, que proporciona acceso a secciones el sitio web para una determinada identidad o mediante la comprobación de listas de control de acceso (ACLs) o permisos sobre recursos para determinar si el usuario autenticado puede tener acceso a los mismos (gestión de roles).


Toda esta gestión se configura mediante el archivo de configuración de la aplicación (usuamente, el web.config). Hasta aquí, simplemente hemos expuesto unas nociones sobre seguridad en una aplicación web ASP.Net.


Hace un par de meses conocí el proyecto OpenID, un estándar que brinda un sistema descentrado de identificación, permitiendo, para aquellos sitios web que le ofrezcan soporte, el acceso de los usuarios sin necesidad de crear una cuenta específica para el mismo. Simplemente necesitarán un proveedor de identidad (IdP). Dicho en pocas palabras y con un ejemplo de la vida real: Yahoo, que acaba de adoptar el estándar como proveedor de cuentas (OpenID 2.0), ha ganado casi 250 millones de usuarios potenciales. Es más, otro de los grandes de la informática, Google, comienza a flirtear con OpenID, permitiendo usarlo como sistema de identificación en los comentarios a las entradas de los blogs de Blogger. Y MediaWiki (el software que se encuentra tras la archiconocida Wikipedia), Wordpress o Drupal ya incorporan, o están en fase de hacerlo, ésta tecnología.


¿Y Microsoft, que pinta en todo esto? Bueno, de momento sigue haciendo la guerra por su cuenta con el lanzamiento de Windows CardSpace, un gestor de cuentas de identidad, incorporado “de serie” en el .Net Framework 3.5. Podemos encontrar en SandBox una página de ejemplo sobre el uso de esta tecnología.


Así las cosas, y visto que OpenID es un estándar dispuesto a quedarse, ¿cómo llevarlo a nuestras aplicaciones ASP.NET?



A grandes rasgos, el funcionamiento de OpenID es el siguiente: el usuario crea un identificador en un servidor que verifique OpenID, y el proveedor de identidad confirmará entonces la identificación del usuario a los sitios que soporten este sistema.
El usuario obtiene, tras este registro, una simple URL (o más concretamente un XRI) que puede usar para identificarse. Es más, si posee una página web puede incluir unas etiquetas “META” en la misma, y usar su propio dominio como código de identificación.

Con OpenID nos encontramos, por tanto, ante una arquitectura Single Sign-On que no especifica el mecanismo de autenticación, por lo que la seguridad de la conexión dependerá de la confianza del cliente en el proveedor de identidad. Según sea la implementación de éste se ofrecerá una autenticación más o menos fuerte, y una mayor seguridad en el sistema.



Así, si queremos que nuestra aplicación web sea compatible con el nuevo estándar, la implementación irá a cargo de las librerías (de código abierto, como el resto del proyecto) que proporciona el sitio web oficial de OpenID.
En concreto, las existentes hasta el momento para .Net se encuentran en C#, y son:

.net OpenID
NerdBank ASP.NET OpenID control
ExtremeSwank OpenID Consumer

Una implementación sencilla del acceso a un proveedor de identidad consiste, básicamente, en solicitar al usuario su identificador y requerir al proveedor de identidad los datos necesarios. En el proveedor, el usuario gestionará si quiere proporcionar a nuestra aplicación sus datos siempre, o sólo en esa ocasión. Los datos que nos proporcionará el usuario dependerán de su elección, siendo obligatorio proporcionar su e-mail y su nombre, y opcional el resto de información de su perfil. A continuación se puede ver el esquema de identificación que sigue OpenID.


Protocolo OpenID


Y, por último, muestro en unas pocas capturas el funcionamiento de una página de acceso a la que he incorporado identificación mediante OpenID.


En primer lugar, el usuario accede a nuestra aplicación web, y solicitamos su identificador.



Paso 1: Identificación


A continuación, se realiza la petición de autenticación ante el proveedor de identificación:



Autenticación en el proveedor de identidad.


Cuando el usuario se autentica, el Proveedor de Identidad le solicita que indique la información que desea transmitirnos. Obligatoriamente deberá indicar su nombre y e-mail, y opcionalmente otra información de su perfil. Además, podrá denegar el envío, o permitirlo una vez o siempre.


Solicitud de envío de información



Por último, la información es devuelta a la aplicación, que puede leerla en los parámetros de la URL.


El proveedor de identidad devuelve el control al sitio web.



Y, para todo ello, el código es tan simple como esto:


Código de la página y llamadas a bibliotecas de OpenID


Referencias:

jueves, 24 de enero de 2008

Programando, que es gerundio

Z80


 


 


Hace unos días hablaba sobre el lanzamiento por parte de Microsoft de su última versión (la 2.0) de XNA Game Studio, así como del Framework de desarrollo de videojuegos que comparte en su nombre las mismas siglas. Bien, hoy retrocedemos unos pocos años atrás, a días gloriosos en los que los videojuegos se programaban "a pelo", en puritito ensamblador, como dirían allende los mares. A la Época Dorada del Software Español, a los inolvidables '80.


Investigando estos días sobre ensambladores cruzados que permitiesen obtener "ejecutables" directamente para la máquina deseada (ya que la programación en ensamblador del Z80 requería después un paso de conversión al formato "en cinta" previo a la carga por parte de un emulador del ordenador elegido), encontré un ensamblador para Z80 muy interesante, que no sólo genera código para una aceptable gama de ordenadores basados en el Z80, sino que también es capaz de generar código para el 8086 a partir de un código fuente en ensamblador de Z80. Su nombre es Pasmo, y puede encontrarse aquí.


Parecería que hoy día es una insensatez ponerse a programar para una de estas máquinas, en el mejor de los casos, o para un emulador de las mismas, que será el caso más habitual. Pero, bien la nostalgia de la infancia, bien porque en y por esos ordenadores se programaron grandes clásicos que siguen siendo jugados hoy día, la programación y el gusto por los 8 bits sigue vivo. Así lo demuestra el ingente número de páginas dedicados a los mismos, la celebración de ferias a nivel nacional (como la próxima RetroMadrid, antigua MadriSX&Retro), o algunos de los enlaces que dejamos aquí, cual botón:


 



lunes, 21 de enero de 2008

XNA 2.0

XNA Logo



Hace apenas un mes desde que se produjo el anuncio por parte de Microsoft del lanzamiento de la versión 2.0 de su plataforma de desarrollo de videojuegos XNA Framework. Integrado con el IDE XNA Game Studio 2.0, puede instalarse en cualquier equipo que incorpore alguna de las versiones de Visual Studio 2005, incluidas las Express. Desgraciadamente, no ocurre otro tanto con las versiones de VS2008, ya disponibles en edición Express, y muy pronto en castellano, en todas sus versiones (Professional, Team System, etc.). Por tanto, su funcionalidad extiende el Framework 2.0 de Microsoft, y deberemos esperar un tiempo hasta que exista soporte para el reciente MS-Framework 3.5.

Así pues, XNA 2.0 viene a ocupar el espacio de su predecesor, y llega dispuesto a romper moldes en el desarrollo de videojuegos. Integra, en sólo un entorno de desarrollo, la posibilidad de generar juegos tanto para PC (Windows) como para XBox 360, y permite la realización de juegos multijugador para ambas plataformas, en el caso de la XBox 360, a través de XBox Live.

Además de estas mejoras, incorpora cambios importantes en los componentes del propio Framework. Por un lado, mejora la GraphicsDevice, abstrayéndonos del dispositivo y evitando una conexión continua con la tarjeta gráfica. También se puede incrustar código en los propios WinForms, por lo que simplemente hay que incluirlo y manejar el código del juego de forma independiente. Otra gran novedad a destacar, referente a la GameComponents, es que ahora permite la creación de supercomponentes, contenedores de otros componentes. La XACT también ha sido mejorada, permitiendo un mayor control del sonido de nuestros juegos.


En definitiva, un divertido mundo por descubrir.


 



Descargas relacionadas:

domingo, 20 de enero de 2008

The Dark Heart of Uukrul

Portada


Dice la canción que "al lugar en que has sido feliz no debieras tratar de volver", y si bien es cierto que en Eriosthe no fuimos precisamente bienvenidos, tampoco se puede afirmar que lo pasáramos del todo mal en la ciudadela de la montaña. Todo ocurrió catorce o quince inviernos atrás, cuando en la Saga Realidad los estudios suponían la mayor de las preocupaciones, dominábamos el inglés a duras penas -hecho que, desgraciadamente, sigue ocurriendo a día de hoy-, y tras saltar del querido 8 bits (un Spectrum, en mi caso) al mundo "pecero", compartíamos, mes a mes, el descanso de los Maníacos del Calabozo en compañía del entrañable Ferhergón.


TDHOU 2


Fue entonces cuando compré mi primer juego para PC. Un juego de rol, como no podía ser menos, y un clásico del que, lustros después, seguiría hablando y recomendando encarecidamente.


TDHOU 1


La historia era simple: un grupo de aguerridos aventureros (un bárbaro, un mago, un clérigo y un paladín), debía aventurarse en la ciudad de Eriosthe, tenebrosa desde que el sabio Uukrul la había corrompido bajo su poder, indestructible con su corazón oculto tras seis candados, que sólo podrían abrirse mediante los ocho corazones helados, custodiados por los esbirros de Uukrul, en busca de Mara, cuyo equipo nos precedió en esta gesta y, todo lo indicaba así, fracasó en su objetivo.

TDHOU 3


El sistema de generación de personajes era bastante original, obviando las actuales tiradas de dados de los JDR (Juegos de Rol; en inglés RPG, por Role Playing Games) por una serie de preguntas del tipo "¿qué harías si...?", que conformaban la personalidad de cada uno de los integrantes de nuestro equipo. Una vez formado el equipo, permanecía unido e inmutable durante todo el juego, a diferencia de los juegos actuales.


Gráficamente, el juego era bastante pobre, incluso para los cánones y posibilidades de la época. Y en cuanto al sonido, mejor ni hablar. Ni un triste "bip" del altavoz interno de nuestro ordenador taladraba nuestros oídos, lo que, habida cuenta el daño que hizo en los juegos de su época, hasta la llegada de las primeras tarjetas de sonido (aquellas AdLib y, posteriormente, las deseadas SoundBlaster), tampoco es que se echase demasiado de menos. Todo él transcurre en las cavernas de Eriosthe, presentando una visión en primera persona, con movimiento por pasos. En la lucha, un deslucido gráfico nos mostraba al enemigo, y pasábamos a una vista superior, desde la cual dábamos las órdenes para abatir al enemigo, siempre moviendo y atacando por turnos. Los hechizos se tecleaban directamente, y conforme avanzábamos en el juego, al departir con los compañeros de gesta (ahora sí, en la vida real), narrábamos orgullosos nuestras victorias: "Ya puedo lanzar el hechizo MUZAQ" o "He quebrantado el Crucigrama del Dragón". Pues los jeroglíficos y enigmas de este juego no han sido superados por ningún otro. En The Dark Heart of Uukrul no debíamos ir subiendo meramente de nivel, para pasar por donde está la hidra de nivel 10 y poder seguir avanzando, no. Debíamos rompernos la sesera, en inglés además, para dar solución a enigmas como el del Dragón custodio de uno de los corazones, o el de los faros, llegados al final de Eriosthe.


TDHOU 4


Como una mera curiosidad, podemos añadir que The Dark Heart of Uukrul da nombre a una canción de la banda black metal de origen ruso Rakoth, aparece incluida en su disco Planeshift y narra la historia de Uukrul, de su alzamiento y caída.

Después llegaron muchos otros juegos de rol: los Eye of the Beholder, Lands of Lore, The Lord of the Rings, Might and Magic, Bloodwych, Shadowlands, Ultima (¡oh, excelso Ultima VII, The Black Gate!), Baldur's Gate o Neverwinter Nights, pero, salvo honrosas excepciones, ninguno hizo sombra a Uukrul y su ciudadela. De los que lo hicieron, de los que lo hagan, llegarán ecos lejanos a este blog que hablen de ellos y de su historia.


(Publicado en el blog de Malvicio.com)