Proyecto Elgoi – Reglas de Negocio y Oauth

Desde hace unas dos semanas heestado recibiendo mensajes sobre lo del proyecto Elgoi así que entre hoy y mañana trataré de explicar las reglas del kiego Eve Online y desde el punto de vista Técnico l oque se llama OAUTH / JWT.

Hace un tiempo comenté que durante años usé un sistema de autentificación basado en el Microsoft Passport, ya depreciado.

Oauth es uno de esos terminos que vemos de repente en el mundo real,

  • Oauth es un protocolo de autorización estándar que permite a aplicaciones de terceros acceder a información de usuario (como Google, Facebook o Twitter) de manera segura sin compartir contraseñas. Utiliza tokens de acceso temporales para delegar permisos (scopes), garantizando la la seguridad en el acceso a sitios web. Es mas o menos lo que vemos cuando decimos “entrar con google” a un sitio web.
  • Casi siempre Se usa al mismo  tiempo que JWT: JSON Web Tokens o JWT es un estándar para transmitir información segura entre partes en forma compacta y verificada…  y que da muchas vueltas.
  • En juegos, se usa en Eve Online desde hace unos años con una implmentación gradual, para compartir información con acceso granular de “scopes” , y en Warcraft para tener acceso a la lista de personajes de las cuentas Battle net account.

Para hacer un sistema que use Eve Online, debemos usar OAUTH / JWT, y entender las reglas de negocio. Voy a tratar de mencionar las reglas de negocio principales en dos mensajes, uno hoy y otro mañana.

Es posible que hayas vivido una doble vida en el mundo real. Que un grupo de conocidos no conozca a los otros; por ejemplo, los de la escuela no conocen a los del trabajo y los del trabajo casi no conocen a los de tu casa.

EVE Online tiene muchos asuntos que parecen literalmente guerra de pandillas. Te atacan por tus vecinos o por donde vives, en ocasiones. Por lo mismo, es mejor mantener separadas tus transacciones financieras si la “alianza” o pandilla en turno lo puede ver.

Un ejemplo práctico de la vida real: Un cliente tenía dos cadenas de farmacias de barrio, antes que existieran las farmacias de similares. Con contadores distintos, para unas 16 en una y 17 en otra. No eran la misma denominación, como dije eran farmacias de barrio, pero los respectivos contadores ignoraban que existían las otras. Y no solo usaba este señor contadores diferentes, sino bancos diferentes. Podría parecer duplicación de trabajo. Cuando empezó a recibir peticiones de chantaje o cobro de piso en unas, simplemente las vendió, dejó de ver a ese contador y creó otras nuevas en diferentes ciudades, con diferente contador.

El concepto de Pocket 6, opsec y alianzas. EVE es parecido.

Una vez me pasó, por ejemplo, que uno de mis pilotos de combate pequeños estaba especializado en algo poco usual. Y un día, en la región insegura, null sec, me atacó un miembro de los Goons, un grupo llamado también Imperium. ¿Qué pasó? Pues me defendí y destruí su nave. Pero como hay sistemas automatizados, cualquiera que vea su historia o mi historia sabe que destruí a ese Goon, pero no saben que fue en defensa propia. Y literalmente ni ese personaje ni mis personajes contacto pueden tener que ver con los Goons, porque ya me consideran enemigo por eso.

Así que en la práctica, a un jugador con algo de experiencia probablemente le va a pasar que tiene contactos o grupos internos de pilotos que, para un observador externo, son independientes entre sí. Y a veces no puedes vender farmacias, simplemente las conservas pero aparte.

De momento yo tengo seis grupos y posiblemente deba crear un séptimo, aunque quizá en un momento dado elimine uno y regrese a seis. Para fines prácticos, me voy a referir a esto como un campo varchar POCKET6, que para una alianza puede ser, digamos, Alianza 1. O a lo mejor decides agrupar por mineros y tus operaciones de minería las tienes en una corporación propia, y solo un piloto tiene que ver con los demás. Ese es otro caso.

La estructura política de EVE es compleja, pero la separación de seguridad de operaciones es muy importante. Un personaje puede quedar arruinado por un tiempo si, por error, hace transacciones con alguien que haya matado a un Goon o a la antigua Pandemic Horde. Si alguien revisa tus claves —lo cual a veces ocurre para entrar a grupos grandes— vas a estar baneado. Ese tiempo de revisión de logs FINANCIEROS es de tres meses aproximadamente, cuatro para estar seguros en dinero. Los logs de violencia no desaparecen, por una utilería aparte hechapor jugadores, que conserva un histórico.

Ejemplo: tu personaje Alice le pasa a Bob 300 millones. Quizá no puedas entrar a la corporación Charles como Bob, porque te van a preguntar quién es Alice.

A veces es tan extremo que tienes que vender tu personaje o “dormirlo”, es decir, no usarlo.

Los jugadores de EVE contratan cuentas (accounts), a las que podemos asignar un nombre. Consejo: piensa un alias, como decíamos en otro momento, por ejemplo GOTHAM1670, que no sea reconocible, y crea tu cuenta con ese moniker y un número consecutivo. Me lo vas a agradecer por organización mental y apego emocional.

Así que vamos a suponer que tú tienes una cuenta llamada GOTHAM1670X1 y necesitas crear una nueva. ¿Qué harías? Si tu piloto se llama juanperez, no te recomiendo que le pongas a la cuenta juanperez, sino GOTHAM1670X2, subiendo el número cada vez.

 

Características del juego

  • Cada cuenta tiene un nombre que solo tú conoces y puede tener tres personajes diferentes, aunque solo puedes usar uno a la vez.
  • Cada personaje tiene su propia API o clave, como si fuera un empleado o una sucursal. Los llamamos pilotos.
  • Tip: Elige bien el nombre, no lo puedes cambiar después.
  • Los pilotos aprenden puntos de experiencia que tú seleccionas, a partir de libros aprendidos. Solo uno de ellos aprende a la vez, a menos que pagues algo adicional.
  • Las cuentas pueden ser de paga (Omega) o gratuitas (Alpha). Puedes tener una Alpha conectada a la vez, o todas las Omegas que tengas. Si tienes tres Omegas, pagas suscripción por cada una, pero puedes usar tres pilotos a la vez, uno de cada cuenta.
  • Los pilotos pueden pertenecer a una corporación a la vez, y cada corporación a una alianza a la vez (un grupo de corporaciones). Esto queda grabado para siempre, así que no puedes brincar de una corporación a otra sin que desconfíen de ti.
  • Por ejemplo, tengo un piloto con mi nombre llamado Alfonso Orozco Aguilar, que pertenece a mi propia corporación Full Stack Developer. El piloto Alfonso Orozco pertenece a la misma corporación, pero no pertenece a ninguna alianza.
  • Omega es deseable, pero yo te recomiendo que no la uses los primeros meses. Si quieres aprovechar mucho del juego siguiendo mis indicaciones, no necesitas hacer otro gasto que el de 5 USD por una única ocasión para poder usar la API.
  • Siempre recomiendo no pasar de 5 cuentas, y en casos extremos 9. Esto es por estadísticas y control mental. Así como el círculo tiene 360 grados, es más fácil sacar estadísticas con 36 personajes.
  • Si tienes más cuentas es por otra razón, pero casi nunca es necesario. Sin embargo, te comento que por experimentos y por conservar imágenes del editor de personajes, yo tengo cuentas únicamente por el aspecto de los personajes, no porque los use (solo uso al líder). Puedes ver la lista en este link: https://evewho.com/corporation/98742383.
    • Un ejemplo de uso, puede ser temporadas y pilotos de guerra. Muchas personas tienen cuentasque activan solamente cuando hay guerras en el juego. Como soy industrial, yo tengo cuentas de industria que se activan en guerra, que en totaldan 64 personajes pero porque construyo para cientos de jugadores.  Uno de mis objetivos de este año esreducirlo a 48 personas,con solo 24 activos de manera normal (por los multiplos y divisiones). Es decir, unas 22 cuentas que pasaré a 16 para tener activas ocho.
  • Hay cuatro razas y cuatro sistemas de armas principales, con sus ventajas y desventajas. Es conveniente crear cuatro personajes para conocer los diferentes sistemas de armas.
    • Todos los personajes pueden aprender todas las habilidades, pero lo normal es especializarse en un sistema de armas por personaje y, más adelante, aprender otras especializaciones.
  • Cada raza tiene un color distintivo, lo cual puede ser útil para tu organización mental: Caldari azul, Amarr amarillo, Gallente verde y Minmatar rojo, todos en tonos pastel.
    • Estético: Dijimos que hay cuatro razas. Tener cuatro razas diferentes con tres juegos de aspectos físicos significa que existen 24 familias de aspectos principales: 12 para hombre y 12 para mujer, que puedes configurar tú mismo.
    • Las damas consideradas más guapas son Caldari Achura y Minmatar Sebiestor.
    • Los hombres más varoniles son Amarr-Amarr (sí, se repite), Caldari Civire y Minmatar Brutor.
    • Algunos son casi imposibles de que se vean bien, por ejemplo Gallente-Gallente (repetido) para hombres, o Verokhior tanto para hombres como para mujeres.
    • Si no te preocupa el aspecto físico, puedes comprarles ropa. Hay una ropa simple llamada Triglavian, con la cual puedes ocultar los rasgos físicos sin importar de qué raza sean. Yo lo hago en algunos pilotos, como los que usaré en este experimento, porque usaré mi nombre, Alfonso Orozco.
  • El API es complicado pero muy amplio. Yo siempre te sugiero que pienses en tus personajes y tus cuentas como uno principal para tu control.
  • Es mejor que tu personaje principal de control nadie lo conozca. En mi caso va a ser un Alfonso Orozco nuevo; ya existen dos y voy a crear otros dos.
  • Supongamos entonces que buscas un generador de nombres de proyectos y decides usar un nombre decente como Crimson Dynamo (es un villano de Iron Man de Marvel). Aunque tengas por ahí en un lugar desconocido a Crimson Dynamo y nadie lo ubique contigo, es lo que yo llamo el personaje llave.
  • Además, puedes querer tener dos juegos de personajes separados y confirmarlos. Si quieres ver estadísticas, digamos de mineros y pilotos de combate, o en mi caso personajes reales y los que conservo solo por aspecto, puedes hacer comparativos entre personajes de ambos grupos o filtrar por grupos usando un solo personaje llave.
  • Nota importante: Cuando registras la cuenta te pueden dar un millón de puntos de experiencia si usas un link de referencia. El mio es https://www.eveonline.com/es/signup?invc=6397de03-5ac1-4f06-a232-8e4ed20b8ea9

El proceso para hacer un sistema, necesita Oauth y para registrar Oauth implica :

  1. Comprar algo, lo que sea, es necesario porque así pueden ligar el API a una persona real. La primera opción es algo que llaman pase de fin de semana, que puedes usar siempre que quieras pagando. A la larga es caro, pero por ejemplo, si tienes dos cuentas puedes un día activar el pase de fin de semana en 4 USD cada una y experimentar lo que es volar dos pilotos a la vez. Sin embargo, incluso sin pagar puedes aprender mucho y divertirte como Alpha, que es mi sugerencia principal.
    1. Un sitio llamado Market Dragon vende unos paquetes decentes de 5 USD que te dan 7 días Omega. Ese gasto es suficiente para que te puedas registrar. Es de única vez por cuenta, así que deja esa opción para después.
  2. Darte de alta en el portal de desarrolladores.
  3. Indicar ruta, permisos y qué va a hacer tu “aplicación”.
  4. Yo recomiendo crear dos “aplicaciones”:
    1. Una para usarla como llave y entrar con un solo personaje.
    2. La segunda para leer ahora sí todos los permisos: inventarios, mercados, cola de entrenamiento, habilidades, etc.
  5. Finalmente, en un servidor subes el sistema que llama a las APIs. Estas permanecen vivas si se hace bien por unos 28 días. Así que tienes que controlar que el modo haya corrido todos tus personajes durante esos 28 días.
    1. ¿Cómo es esto? Si se refresca automático cada hora o cada dos horas, no tienes mucho problema.
    2. Solo una vez usas la aplicación dos para ligar tu personaje, y un botón para actualizar si hace falta.

El problema es que si no actualizas todos tus personajes, después de 28 días aquellos en los que no hayas entrado te van a dar el error token expired.

Related Posts

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *