Para entender en qué consiste este proyecto es necesario explicar como funciona el comercio electrónico dentro de mundos virtuales similares a SecondLife y derivados tales como los basados en "Open Simulator". En este apartado incluyo un pequeño glosario en el que explico algunos conceptos básicos.

Primitiva. Todo objeto existente en un mundo virtual está compuesto por primitivas. Se trata de bloques de construcción básicos que pueden ser transformados de muchas maneras diferentes. Por ejemplo cambiar su tamaño en cualquiera de sus dimensiones, su rotación, cambiar colores y texturas en cada una de sus caras, etc. Las primitivas pueden ser agrupadas en un solo objeto formando edificios, vehículos, armas, etc. Desde hace unos pocos años también es posible crear un objeto externamente utilizando herramientas como Blender, Maya, 3D Max Studio, etc y subirlos a secondlife en formato dae.

Todo está hecho de Primitivas. [Ilustración 1: Todo está hecho de Primitivas]

Inventario. Todo usuario de secondlife y otros mundos virtuales tiene un inventario donde guarda todas sus cosas. Ese inventario es accesible usando el cliente con el que se conecta a ese mundo virtual. En ese inventario se guardan cosas tales como objetos, ropa, texturas, scripts, animaciones, ...

Lo interesante para el proyecto que nos ocupa es que las primitivas también tienen su propio inventario pudiendo contener cualquier cosa en su interior. Los scripts que están dentro del inventario de un objeto pueden estar funcionando, de hecho es la única manera en la que puede funcionar un script.

Inventario de un objeto. [Ilustración 2: Inventario de un objeto]

Transacciones económicas en SecondLife. Hay tres formas muy diferentes de comprar algo dentro de secondlife y sus derivados. La primera y más antigua consiste en poner un objeto en venta. Eso se hace editando el objeto para poner un precio a ese objeto. También es posible especificar si lo que se está vendiendo es una copia de ese objeto, el objeto en sí mismo o solo el contenido que está dentro del inventario del objeto. Normalmente los objetos que están en venta están dentro del inventario de una primitiva decorada convenientemente de muchas maneras diferentes. Por ejemplo como una caja de regalos con un lazo de color rosa o como una caja de carton. Básicamente depende de la imaginación del creador. Cualquier avatar puede comprar ese objeto pagando la cantidad especificada. Salvo que compre el objeto en sí mismo al efectuar la compra el objeto aparecerá dentro del inventario del avatar que efectua la compra.

Objeto que está en venta. [Ilustración 3: Objeto que está en venta]

La segunda forma de comprar algo dentro del mundo virtual es mediante la intermediación de un script. El usuario que efectua una compra hace un pago a un objeto y ese objeto entrega al comprador el objeto que ha comprado.

Y por último tambien es posible adquirir productos mediante una página web perteneciente a la empresa creadora del mundo virtual. Si se especifica en la configuración de esa página web es posible que esta envíe un mensaje a un objeto dentro de secondlife cada vez que se efectua una compra. De esta forma es posible que un comerciante tenga unificada toda su información de ventas.

Script LSL. LSL (Linden Script Languaje) es el lenguaje de script que se utiliza dentro de secondlife. Se trata de un lenguaje orientado a eventos con el que se puede hacer cosas tales como manipular cualquier aspecto de la primitivas que lo contiene así como de las demás primitivas agrupadas. Puede mover ese objeto como si fuera un vehículo permitiendo a un avatar controlarlo con las teclas del cursor y lo más interesante para el proyecto que nos ocupa:

  1. Recibir un evento cuando un avatar realiza un pago.
  2. Entregar objetos que están dentro del mismo inventario.
  3. Comunicarse mediante emails o mediante peticiones http con otros objetos o servidores externos.

Vendedor automático (vendor). Se trata de un objeto cuya finalidad es vender objetos, animaciones, texturas, sonidos, etc que están contenidos dentro de su inventario. El avatar que quiere comprar algo selecciona el objeto a comprar haciendo click en primitivas con forma de flechas y una foto del objeto seleccionado aparece en la pantalla principal. Cuando el comprador efectua un pago por la cantidad especificada se le entrega el objeto seleccionado que está dentro de su inventario.

La descripción anterior se refiere a vendedores clásicos que no requieren comunicarse con servidores http externos. El inconveniente de estos vendedores es que su configuración es más complicada y si el comerciante tiene varias tiendas en propiedad o alquiladas si necesita hacer un cambio tiene que hacer ese mismo cambio en todos y cada uno de los vendedores.

En cambio, los vendedores automáticos en red (networked vendors) tienen su configuración centralizada en un servidor externo. Típicamente un hosting en Internet basado en tecnología LAMP o similar. El usuario realiza la configuración cómodamente en un formulario web y un script PHP envía la configuración a todos y cada uno de los vendors. También tienen su inventario centralizado en un uno o más objetos llamados dropbox.

Vendedor clásico. [Ilustración 4: Vendedor clásico]

dropbox. Se trata de una primitiva con un script dentro (en su inventario) y que contiene además todos los objetos que están en venta por un sistema de vendedores automáticos en red. De esta forma en lugar de mantener tantos inventarios como vendors existen se mantiene unificado en un solo sitio. En la siguiente ilustración se muestra un diagrama de como funciona un sistema completo de ventas en red.

Diagrama sistema ventas. [Ilustración 5: Diagrama sistema ventas]

En el diagrama anterior se muestra como es un proceso de compra:

  1. Un comprador paga un vendor.
  2. El vendor envía la petición al servidor.
  3. El servidor envía la petición al dropbox.
  4. El dropbox envía el producto al comprador.
Si cualquiera de estos pasos falla es necesario hacer un "paso atras" (rollback) devolviendo el dinero al comprador.

dropbox. [Ilustración 6: Dropbox]

En la ilustración anterior puede verse varios dropboxes. Suelen ser una primitiva con texturas que imitan un ordenador personal o un ordenador futurista. Algunos suelen tener un display en el que muestran algunos datos y en algunas ocasiones pueden ser autenticas obras de arte. Todo depende de la imaginación del creador.

DNS de objetos (Object DNS). Para que un objeto dentro de secondlife u otro mundo virtual similar pueda comunicarse con otro objeto es requisito que conozca o bién su UUID (para comunicarse mediante email) o bién su URL (para comunicarse mediante peticiones http).

Para que esto sea posible existe una serie de páginas web que funcionan como DNS para objetos dentro del mundo virtual. Estas webs estan mantenidas por usuarios de estos mundos y no son muy fiables debido a que en cualquier momento pueden dejar de suministrar el servicio gratuito. Los servidores de sistemas de ventas son implicitamente un DNS de objetos aunque considerablemente muchísimo más sofisticados.

Caja de alguiler (rentbox). Se trata básicamente de una primitiva con un script dentro. Este script acepta pagos y cuando recibe el dinero suficiente se pone en marcha un contador de tiempo descendente. Cuando queda muy poco tiempo para que el contador llegue a 0 envía mensajes de aviso al inquilino que puede alargar el tiempo restante efectuando más pagos.

Al igual que ocurre con los vendors, también hay cajas de pago que funcionan en red aunque esta característica es básicamente por comodidad en la configuración ya que una caja de pagos puede tener muchísimas opciones.

Caja de alquiler. [Ilustración 7: Caja de alquiler]

Actualizador (Updater). En ocasiones un objeto vendido que contiene en su interior scripts puede contener bugs o puede quedar obsoleto si aparece nuevas versiones por lo que es necesario enviar la versión actualizada a los compradores. Esto se puede hacer de muchas maneras diferentes:

Este último método tiene dos variantes:

En algunos sistemas como el desaparecido HippoTech el sistema de actualizaciones es un producto diferente y separado del sistema de ventas y utiliza un dropbox diferente mientras que en otros sistemas tales como caspertech el dropbox es el mismo.

Entregador de objetos. Un entregador de objetos es similar a un sistema de ventas pero entrega objetos de forma gratuita cuando un usuario hace click con el ratón en ese objeto. Normalmente suele ser un landmark (como un URL pero conteniendo coordenadas dentro del mundo virtual) o notas de texto informativas. En ocasiones pueden contener restricciones, por ejemplo entregar un objeto o regalo solo si el usuario pertenece a un grupo o si su antiguedad dentro del mundo virtual es mayor o menor de una antiguedad especificada.

Sistema de reenvíos (redeliver). En ocasiones un avatar puede perder o borrar por accidente un objeto o bién no ser capaz de encontrarlo en un inventario muy desordenado. Por ese motivo los sistemas de ventas en red pueden reenviar a petición del usuario un objeto que ha sido comprado anteriormente.

Nuevamente hay dos filosofías, o bién un sistema aparte como era el caso de HippoTech o bién como una característica integrada en los vendedores que es el caso de CasperVend.

Sistema de reenvíos. [Ilustración 8: sistema de reenvíos]

Silla de la suerte (Lucky chair). Se trata de una silla que tiene un cartel en el que muestra una letra. Si el nombre del avatar comienza con esa letra al sentarse en la silla recibe un regalo. La letra de la suerte cambia cada cierto tiempo o antes si un avatar se sienta en esa silla. Tradicionalmente este ha sido un producto que no trabajaba en red pero Caspertech comercializa una versión en red que funciona conjuntamente con su sistema de ventas reaprovechando el dropbox para una nueva funcionalidad.

Silla de la suerte. [Ilustración 9: Silla de la suerte]

Midnightmania Se trata de un objeto que cuando es medianoche en California entrega un regalo a todos los avatares que hallan hecho click para registrarse. Pero hay una condición para recibir el premio. Tiene que alcanzarse el número de avatares que indica el panel. Si no se alcanza el número deseado al llegar medianoche el panel se pone a 0 sin entregar regalos.

Midnightmania. [Ilustración 10: Midnightmania]

Gacha. Se trata de un vendor especial en el que no eliges lo que compras si no que te entrega un producto aleatorio. Todos estos productos tienen el mismo precio y son no copiables, es decir, puedes transferirlos a otro avatar pero al hacerlo te quedas sin el.

Normalmente suelen estar acompañados de un poster que muestra los diferentes productos que puedes conseguir y algunos de esos productos son marcados como "raros" por que hay menos probabilidades de conseguir un producto raro.

Gacha. [Ilustración 11: Gacha]

Vendedores automáticos a comisión Se trata de un vendedor automático que puede ser entregado a otro avatar para que venda productos a cambio de una comisión. Existen establecimientos especializados en vender objetos a comisión. Para evitar problemas es muy importante que el sistema de ventas sea totalmente transaccional y solo haga la partición cuando la operación se haya realizado correctamente.

Vendedores a comisión [Ilustración 12: Vendedores a comisión]

Panel de avisos. Se trata de un panel que puede contener cualquier texto. Este texto puede configurarse mediante una orden en el chat o bién mediante una página web. Cuando se tienen varios paneles en diferentes sitios es una ventaja poder configurarlos externamente dese una web.

Panel de avisos. [Ilustración 13: Panel de avisos]

Detectores/contadores de visitas. Saludador. Se trata de un objeto que cuenta el número de avatares que visitan un sitio. En algunas ocasiones estos también envían un saludo al visitante e incluso le envía cosas tales como un landmark, una nota de texto, un regalo, etc. Es frecuente que estos contadores de visitas envíen la información a un servidor web externo con el objetivo de hacer todo tipo de estadísticas o enviar posterior publicidad a los visitantes. Aunque este último punto es posible que no sea legal debido a la ley GDPR o incluso alguna ley anterior.

Panel publicitario Son paneles que se ponen en sitios tales como discotecas, sandboxes, etc y que muestran publicidad mostrando una textura. Cuando se hace click en el panel este generalmente entrega un landmark o una nota de texto. Muchos paneles son de alquiler y funcionan de forma similar a una caja de alquiler.

Nuevamente existe la posibilidad de que estos se conecten a un servidor externo para configurar muchos a la vez. También existe la posibilidad de paneles que muestren varios anuncios mediante rodajas de tiempo, es decir, cambiando el anuncio visible cada varios minutos.

Paneles publicitarios. [Ilustración 14: Paneles publicitarios]

Redes de Teletransporte. La mayoría de las redes de teletransporte pertenecen a un solo usuario y tienen un ambito de una sola región. Pero existen redes de teletransporte que pertenece a mas de un usuario y abarca todo el mundo virtual. Las más conocidas son las redes stargate.

Algunas redes tales como OpenGate intenta minimizar la dependencia de servidores externos mediante algoritmos auto organizativos que crean un grafo creando vínculos entre diferentes nodos. pero aun así es necesario un servidor para localizar un punto de entrada.

Otro tipo de red que se ha visto de vez en cuando son las cadenas, similares a las que hace añs existía en las páginas web. Estos teletransportadores tienen tres botones, visitar el siguiente sitio, visitar el sitio anterior y visitar un sitio aleatorio.