
El siguiente ariculo fue publicado por el Major Nelson y pertenece a Vince Curley (Xbox LIVE & Platform Architect) y lo encuentran en inglés aquí, ahora como hoy es un viernes lluvioso, todo el Departamento se encuentra en modo “locha” y pendiente de ir a instalar una nueva red pero da jartera, así que prefiero ponerme a traducir esta vaina. asi que aqui vamos…. sie es que no me arrepiento en el camino porque esta vaina esta bien larga, asi que el que no sea perezoso por favor continúe…

¿Cuál es el sonido más feliz del mundo? El rugido de las monedas al verter en la bandeja de metal cuando cuando juega en una maquina traga perras? La campana de la escuela al cierre del año, que marca el inicio del verano? La alegría de la multitud cuando tu equipo gana un partido?
Claro, todas esas cosas son grandes, pero creo que el sonido es más feliz oído más de 4 millones de veces al día, en todo el mundo: el sonido de la notificación que tu Xbox hace cuando ganas un logro. (Sí, es el mismo sonido que se oye al recibir una solicitud de amistad o de una invitación de juego, pero esas cosas sólo hacer el sonido aún más feliz.)
¿Sabía usted que el mensaje “Logro desbloqueado” y el alegre sonido que lo acompaña fueron una adición de última hora antes del lanzamiento de la Xbox 360?
Tuve la gran fortuna de ser el primer desarrollador en el sistema de logros, y escribí una buena parte del código de perfil que se ejecuta en la consola Xbox 360 en la actualidad. En este post, voy a compartir algunos otros detalles tras bastidores de la creación del sistema de logros Xbox 360 y cómo funciona.
Construyendo una cosa buena
Un beneficio clave de Xbox LIVE es que tiene una identidad que lleva en todos los juegos. En los primeros días, antes de que se puesiera en marcha Xbox 360, tu identidad era tu gamertag. Pero con Xbox 360, lo amplificamos para incluir información sobre los juegos que juegas, ¿qué tipo de jugador eres (tu Gamer Zone), reputación global (las estrellas en su gamercard), ajustes personales (como su preferencia de inversión de controlador ), y, por supuesto, tus logros.
Recuerdo mi primer encuentro en el equipo de Xbox. Un pequeño grupo se reunió en torno a una larga mesa en una sala con poca luz en un parque de oficinas en decadencia. No erea el pulido y profesional grupo de Microsoft que estaba acostumbrado. La invitación a la reunión decia que íbamos a ir por los planes de una “identidad digital” para la próxima nueva consola. Eso no suena atractivo, pero una vez me senté en la mesa, me sentí atraído de inmediato por la pasión en el grupo hacia la función. Yo estaba justo a la izquierda del Major Nelson, la gente realmente lo llamaba”Major” y pensé: “Es un nombre raro.” Afortunadamente, he descubierto… eventualmente. (Espero que no lea esto o nunca voy a oír el final de la misma.)
Uno de los temas calientes que surgió en esa reunión fue que los perfiles deben estar disponibles sin conexión. Esto significa que un jugador no tiene que estar conectado a Xbox LIVE para poder acceder a sus logros o la configuración de perfil. La declaración fue apasionada, “Tengo que ser capaz de tomar mi Xbox al Whistler (un hotel) para un fin de semana de esquí, y tienen que todos los logros que gano aparecer en línea cuando la conecto el lunes por la mañana en su casa!” La vida habría sido mucho más fácil cuando los hoteles en Whistler ofrecieran acceso gratuito a Internet pero, en cambio, el acceso en línea se convirtió en una gran parte de la historia perfil. No sólo podría abandonar el hogar por el fin de semana, sino que usted no tiene que preocuparse si pierde su conexión a Internet antes de llegar a un hito fundamental. O podría jugar sin tener que conectarse a Xbox LIVE, ganar un montón de logros, y hacer que se muestre en la nube de la primera vez que se conecte. El acceso sin conexión se realizó durante varias horas de la noche por el equipo de desarrollo, pero sabíamos que era lo correcto, y eso fue suficiente para justificar la prórroga.
Eso fue sólo una de cientos de puntos de diseño que forma el sistema. Podíamos simplemente centrarnos en los requisitos del proyecto, pero subimos la marcha y a ver cómo funciona todo.
En el Estudio de Juegos
Cuando un diseñador está trabajando en un juego, él o ella debe decirle al sistema Xbox varias cosas sobre el juego, como detalles acerca de los logros del juego, sus tablas de clasificación, cómo hacer los Matchmaking, sus cadenas de status (como “Corriendo en Laguna Seca “), etc. Esta información ayuda a la consola y el servicio Xbox LIVE proporcione experiencias específicas de ese juego.
Desde el lanzamiento de Xbox 360, la información del juego ha sido definida con una herramienta Game Development Kit (GDK) llamada XLAST, la herramienta de creación y presentación de Xbox LIVE. XLAST escribe la información del juego en un archivo XML llamado archivo XLAST. (Somos muy creativos en nuestra convención de nombres, ¿no?)
El archivo XLAST es continuación ejecutado a través de otra herramienta que valida el XML y hace cumplir las cosas tales como el número de logros definido, cuánto GamerScore, los premios de juegos, etc. Por ejemplo, aquí están algunos de los límites actuales:
| Titulo base | Contenido Descargable | |||
| Tipo de Titulo | Logros | Gamerscore | Logros | Gamerscore |
| Estándar (Único o Multidisco) | 5 a 50 | 1000 | 0 a 30 | 0 a 750 |
| Árcade | 12 | 200 | 0 a 9 | 0 a 150 |
| Demo | 0 | 0 | 0 | 0 |
Si pasa todos los controles, a continuación, se emiten dos archivos: un archivo de cabecera y un archivo de SPA. Dado que la herramienta recopila los XLAST en un SPA que se conoce como el compilador de SPA, o SPAC (pronunciado “Spock”), para abreviar.

El archivo de encabezado se utiliza en C y C + +, los idiomas comúnmente utilizados para escribir juegos. Este archivo define, entre otras cosas, identificadores únicos que se utilizan para referirse a los logros específicos. Más sobre esto más adelante cuando se hable de cómo el juego activa los logros.
El archivo de SPA es una representación binaria compacta del archivo XLAST. “SPA” es un acrónimo de Estadística (tablas de clasificación), Estado, y logros (Stadistics, Precence y Achievement, según sigla en inglés). Hay más ahí, pero esas son las grandes piezas y “SPA” sale de la lengua más fácil que “SPAPCXYZZY.” El archivo SPA integrado en el binario ejecutable del juego para que cuando se inicie el juego, el software del sistema Xbox puede sacar de la SPA datos del ejecutable y lo revisará en las estructuras internas para su uso posterior.
Dentro de Xbox
Cuando un juego quiere adjudicar un logro que llama a la función de GDK XUserWriteAchievements:
/ / Logro identificadores se definen en Spa.h, creado por SPAC de la XLAST archivo
rgAchievements [dwNumAchievements]. dwUserIndex = dwUserIndex;
rgAchievements [dwNumAchievements]. dwAchievementId = ACHIEVEMENT_PLAYED10GAMES;
dwNumAchievements + +;
rgAchievements [dwNumAchievements]. dwUserIndex = dwUserIndex;
rgAchievements [dwNumAchievements]. dwAchievementId = ACHIEVEMENT_PONG_A_THON_I;
dwNumAchievements + +;
dwResult XUserWriteAchievements = (
dwNumAchievements, / / Número de estructuras en pdwAchievements
pdwAchievements, / / Logro / usuario establecer
Y XOV); / / estado asincrónica
Los parámetros pasados indican una lista de logros y que jugadores deben recibir esos logros. La mayoría de los juegos dan un logro a la vez, pero es posible otorgar todos los logros en el juego en una sola llamada. Por supuesto, usted tendría que ser muy bueno para que esto suceda. Los identificadores únicos pasados en pdwAchievements fueron los únicos especificados en XLAST y de salida en el archivo de encabezado por el compilador de SPA.
Dentro de la función XUserWriteAchievements, el sistema Xbox examina los logros que el jugador ya tiene y si alguna de las identificaciones que se pasan son para nuevos logros escribe la información ganada en el perfil del jugador y aparece el mensaje “Logro desbloqueado” (junto con el más feliz sonido en el mundo).
Hasta ahora sólo hemos visto lo que sucede en la misma consola, pero ¿qué hay de la comparación de los logros? ¿O en la recuperación de la cuenta? ¿O visualización de perfiles en xbox.com? Para que aquellas cosas funcionen, necesitamos el apoyo del servicio Xbox LIVE.
En la nube
Antes, cuando el desarrollador del juego creando y compilando el archivo XLAST, estaba también enviando este fichero a el servicio Xbox LIVE. El perfil del servicio Xbox LIVE analiza el archivo XLAST para cada juego por lo que conoce cada detalle de cada logro. Así es como se puede navegar por los logros en xbox.com o comparar su perfil contra alguien y ver más detalles de logros de los juegos que nunca he jugado. Aprovechamiento de nombres y descripciones se pueden localizar a muchos idiomas diferentes, y el servicio es lo suficientemente inteligente como para darle el texto en su idioma, si está disponible. Estas traducciones También se explican en el archivo XLAST por el desarrollador de juegos.
Ahora tenemos un perfil basado en la consola que se puede escribir en cualquier momento, y un servicio basado en la nube que sabe de todos los juegos y sus logros. Estamos casi listos para ese viaje de esquí de Whistler. La última pieza del rompecabezas es la sincronización de la copia local de su perfil con la copia que se almacena en el servicio. Cualquier escritura en su perfil, tales como la concesión de un logro, marcará el perfil de “sucio” para que la próxima vez que se conecte al LIVE (o alrededor de 30 segundos después de escribir si ya está conectado a Live) el cambio de datos se envía al servicio y se fusiona en su perfil almacenado allí. Esto significa que usted puede tomar su consola en ese viaje de esquí, sólo ganar los logros que se quiera, y cuando vuelva a conectarlo en casa esos logros se le enviará automáticamente a los servicios y se marca como ganados al mundo para que los vean.
Si apaga la consola antes de la sincronización de perfil que ha sucedido, no verás tus logros nuevos en xbox.com. Más importante aún, tus amigos no verán su nuevos logros al ver tu perfil! La sincronización es bastante rápida y totalmente automática, siempre y cuando estés conectado a Xbox LIVE. A veces pierdo la conexión, por lo que para asegurarse de que cada uno puede deleitarse con mi dominio, cuando veo que el PopUp”Logro desbloqueado”, aprieto el botón guía en el controlador de Xbox. Eso me lleva derecho a la pantalla de logros para que pueda ver los detalles de mi última conquista. En la guía también se puede comprobar para ver si todavía estoy conectado a Live y vuelva a conectar si no lo soy. Luego de volver a jugar, sintiéndose seguros de que cuando mis amigos vean mi perfil van a ver a mi nuevo trofeo. Nada de eso es necesario, pero cuando usted absolutamente, positivamente quiere asegurarse de que está en sincronía, puede verificar su conexión antes de desconectarse por la noche. Pero recuerde, la sincronización es completamente automático y la sincronización manual no es algo que nunca pediríamos a nuestros clientes más relevantes hacer.
Hora de historias
Ahora echemos un vistazo a algunas historias detrás de las cámaras que llenan con algunos detalles sobre de cómo funciona el sistema en su conjunto.
Evolución
Logros tuvo una niñez difícil, tanto en términos de tecnología, así como socialmente. Por el lado de la tecnología que voy a dar un consejo a cualquiera que trabaje con un sistema similar: si te quieres quedar en buenos términos con tu jefe “jefe” jefe, asegúrese de que todos sus logros de “Need for Speed” estén en línea. Deja un logro fuera y oirás al respecto. (“Lo siento, Ben!”)
Los dolores más grandes vinieron en la adopción y las mejores prácticas de los frentes. Al principio, los logros no fueron muy bien comprendidos por los diseñadores de juegos, y no aportamos una buena orientación a los títulos temprano sobre cómo utilizar mejor el sistema. Debido a esto, las primeras implementaciones de los logros no eran coherentes y no tan bien como podían haber sido. Algunos juegos hicieron el mínimo requerido: 5 logros que fueron dados básicamente al empezar el juego. Algunos juegos fueron hechos de manera logros muy difíciles o muy fáciles. Nuestro equipo de soporte a los desarrolladores ha hecho un trabajo increíble al proporcionar orientación, incluyendo la creación de una de 21 páginas, 8.000 palabras documento técnico sobre las mejores prácticas en materia de logros. En estos días la mayoría de los diseñadores dan cuenta de que sus logros constituyen un gran motivador para las personas de probar nuevas áreas de su juego, u ofrecer valor de repetición que serían difíciles de hacer publicidad sin ellos.

Los iconos de arriba son un símbolo de la evolución de los logros. El primero fue el icono de logro muy por primera vez. La creé para mi juego de prueba antes de escribir cualquiera de los códigos del sistema real. Dato curioso: también era una de las imágenes de jugador personalizado en primer lugar, pero eso es una historia para otro post. ¡Desarrollo de reglas del arte! La segunda fue una imagen del Project Gotham Racing 3 utilizadas para todos sus 20 logros. Es bonito, pero incluso los juegos creados por Microsoft no estaban utilizando el sistema en toda su extensión. La última es de Gears of War 2, que esta hermosamente dibujado, los iconos personalizados para cada uno de sus 50 logros. Hemos recorrido un largo camino, mucho tiempo.
El brindis que casi no fue
Estamos orgullosos de la coherencia a encontrar en todos los juegos. Usted tiene una lista de amigos, cada juego es compatible con el chat de voz, etc. Pero también nos gusta dar a los diseñadores de sala de juegos para llegar a nuevas e interesantes maneras de entretener. Esa disyuntiva está en el corazón de la decisión original del “no” hacer ninguna indicación de que un nuevo logro había sido adjudicado. Algunas personas argumentaron que en los juegos no le gustaría que apareciera el mensaje en el fragor de la batalla y que los diseñadores de juegos que quieren utilizar su propio estilo visual para presentar sus logros. Otros abogaron por la coherencia y para la reducción de las tareas solicitadas por los desarrolladores de juegos. Al final, hemos añadido la ventana emergente de notificación y su tono alegre, que resultó ser la decisión correcta, pero desde hace mucho tiempo era cualquier cosa menos lo obvio.
Cuando este completada no está completa
A menudo viene como una sorpresa para la gente que los juegos pueden añadir nuevos logros después de su lanzamiento. Es común que los grandes juegos como Halo o Gears of War para agregar nuevas opciones de juego a través de actualizaciones de título o contenido descargable y los diseñadores a menudo quieren atraer a la gente a probar esta nueva bondad, ofreciendo nuevos logros.
Cuando lanzan un juego, el sistema busca no sólo los recursos del juego, sino también en todos los paquetes del juego contenido descargable para la última y más completa lista de logros. El sistema copia esa lista en su perfil, para que pueda navegar por los logros cualquier momento, incluso si te tomas tu perfil a la casa de un amigo. Cualquier logro agregado desde la última vez que jugó se fusionan en su perfil, por lo que al ver tu perfil podrá ver la nueva, los logros no derivados del trabajo.
También podría ver nuevos avances si está comparando juegos con alguien en línea. Xbox LIVE siempre sabe la última lista de logros, por lo que le mostrará los, incluso si no ha actualizado las reglas del juego, o descargarse cualquier contenido adicional. La comparación de los juegos no copia los nuevos logros en tu perfil de manera que las pueda ver cuando se comparan con alguien más, pero no si sólo está viendo su propio perfil.
Estos nuevos logros son grandes porque dan a los diseñadores de juegos una gran flexibilidad en el despliegue de nuevos contenidos y hacer que los contenidos como con todas las características como el juego original. Sin embargo, tan poderoso como es, sino que también pueden ser sorprendentes. Es posible que haya ganado todos los logros que podrían alcanzarse un día, pero descubren que se han añadido otras nuevas al día siguiente. Usted estaba al 100% completo, pero ahora no lo eres, y no hay manera de “olvidar” que esos logros existen. Por un completista como yo que esto puede ser frustrante. Pero hay una respuesta fácil: He arrancar el juego y ve a buscar los nuevos logros. Es un trabajo duro pero alguien tiene que hacerlo.
El futuro
Logros han sido una parte muy popular de la experiencia de Xbox 360. Tanto es así que hemos ampliado su presencia en los juegos de PC con Games for Windows LIVE y pronto en los juegos móviles en el próximo teléfonos Windows 7.
Creando el sistema de logros fue muy divertido y todavía me encanta ver la ventana emergente de notificación y audiencia que el sonido feliz. Y ya que usted lea este post entero, mereces tal se como se oye:
Logro desbloqueado!









Que buena info man!!!