Archivo de la etiqueta: Second Life

Second Life: Errores en el Marketplace

Desde hace unos días a esta parte muchos usuarios están teniendo problemas al intentar comprar productos en el marketplace de Second Life. En el caso mas notorio, al querer hacer el pago, la página retorna un «internal server error».

Esto es producto de un fallo en el sistema y, aparentemente, se da por un problema de en la base de datos o en las rutinas de manejo de idiomas, ya que el error se produce en aquellos productos que no tienen descripción. Pero, aquí lo interesante, las descripciones faltantes solo ocurren en los idiomas que no son inglés. Leer Mas...

Linden Lab: Sansar, Second Life y próximos pasos

Ayer, en el programa de TV virtual, conducido por Strawberry Linden, concurrieron como invitados Ebbe Altberg (CEO de Linden Lab), Grumpity Linden (Vicepresidente de Producto) y, a la mitad de la entrevista se agregó Keira Linden (Administradora del Proyecto Cambio de Nombre) y hablaron sobre el futuro de Sansar, Tillia, Second Life y los planes futuros de la empresa.

Comencemos con Sansar:

Al respecto, al inicio de la entrevista, Ebbe dejó claro que Linden Lab no continuará sosteniendo la plataforma Sansar y se encuentra activamente buscando compradores para la misma que puedan (y quieran) continuarla y mantener la plantilla de trabajadores involucrados en la misma. Entonces, al ser consultado sobre el tema, su respuesta fue la siguiente: Leer Mas...

Visor BlackDragon, Niran necesita ayuda

Quienes conocen y utilizan el visor Black Dragon se sorprenderán al leer este artículo, pero creo que es importante dar a conocer, a la comunidad de habla castellana, los problemas por los que atraviesa el desarrollo de este visor. Esto sin dejar de lado el hecho que, seguramente, es el mejor visor para la creación de fotos y videos dentro de Second Life, además de otras características únicas que le facilitan la vida a los fotógrafos y videógrafos del mundo virtual.

Sin mas discurso, transcribo a continuación el pedido de ayuda de NiranV en su blog para poder continuar con el desarrollo de este visor: Leer Mas...

Microsoft retira el soporte para Windows 7

El próximo día 14 de enero de este año, Microsoft retira el soporte para Windows 7, lo cual implica que ya no recibirá actualizaciones de seguridad, haciendo que se vuelva (aún más) vulnerable a cualquier nueva falla de seguridad y virus.

En lo que a nosotros concierne, a tono con esta decisión de MS, Linden Lab ha informado, en su blog oficial que se procederá a remover este sistema operativo de la lista de Requerimientos del Sistema para entrar a la plataforma Second Life. Leer Mas...

Second Life: Concurso selección apellidos

Tal como se informara días atrás, Linden Lab declaró oficialmente abierto el concurso para la selección de nuevos apellidos, los cuales, una vez seleccionados, serán incorporados a la lista de apellidos disponibles cuando se active la característica de cambio de nombre.

Dicho concurso tiene lugar entre el pasado día 16 de diciembre y el próximo día 15 de enero de 2020. A continuación se detalla lo mas importante de este concurso en reglas, premios y requisitos para participar.

  • Pueden participar todos los usuarios de Second Life ya sea de cuentas premium o gratuitas.
  • El usuario debe ser mayor de 18 años de edad en RL y, en caso de ser menor (entre 16 y 18 años) contar con permiso escrito por representante legal, presentado en un plazo no mayor a 14 días de su participación en el concurso.
  • Tener una cuenta de correo accesible y válida.

Los residentes de Canadá deberán responder una pregunta matemática adicional para poder reclamar el premio (Honestamente no se si esto es en serio o alguna broma) Leer Mas...

High Fidelity, HMD, Sansar, Realidad Virtual

Un tema que se habla en forma recurrente dentro de Second Life, es su comparación con plataformas de realidad virtual (VR) como sansar (especialmente con ésta, por pertenecer a la misma empresa) o High Fidelity.

Y dentro de estas charlas uno de los temas principales que se discute es si estas plataformas de realidad virtua, hoy, son mejor y reemplazan a Second Life. Las respuestas pueden ser variadas y dependiendo de la óptica y gustos de cada usuario pro hay una realidad técnica que pocos han visto en estos años y recién ahora comienza a notarse. Leer Mas...

Regreso de los Apellidos, Marketplace, Eventos y Premium

Días atrás, Linden Lab, en su blog oficial, informó a los usuarios respecto de novedades en:

Veamos cuales son una por una:

Regreso de los Apellidos: Actualización y concurso.

Según la empresa (y digo así, porque este argumento viene tirado de los pelos), a pedido de los usuarios muy pronto, se podrá disponer de la facilidad de poder cambiarse el nombre y/o apellido en Second Life.

La intención es tener esta característica disponible para finales del mes de enero del año próximo y estará disponible solamente para los usuarios Premium, quienes deberán pagar un cargo para poder realizar la operación. Aún no se ha informado cual será ese «pequeño cargo», seguramente se informará en el mismo momento en que se lance esta característica. Leer Mas...

Sansar: Cambios en la dirección de la plataforma y en Linden Lab

Luego de la reunión de Producto de Sansar del pasado 1 de noviembre, la comunidad de usuarios se encuentra algo revolucionada por los cambios que ha de implementar Linden Lab, tanto en la empresa como en Sansar mismo.

Por lo pronto, respecto de Sansar, Linden Lab ha informado que dejarán de hacer hincapié en determinadas características técnicas tendientes a mejorar el funcionamiento visual de avatares y construcciones y se concentrarán mas en promover los eventos en vivo como eje principal de captación de usuarios para dicha plataforma. Esto es, se hace un alto en todo aquellos que se estaba trabajando para que el usuario pudiera mejorar la personalización de su avatar o la construcción de objetos y «mundos» (regiones en SL) con herramientas externas para dedicarse a promover (ser) mas una plataforma de eventos en línea. Leer Mas...

Second Life: Novedades y avances de proyectos

Es hora de ponernos al día con la información de los distintos proyectos que lleva adelante Linden Lab en su plataforma virtual Second Life. Si bien muchos de estos proyectos pueden ser transparentes al usuario y no deberíamos siquiera darnos cuenta de su implementación, son importantes para mejorar el funcionamiento de la plataforma y, otros proyectos si nos puede interesar (y mucho) en que fase se encuentran y cuando se preeve podrán ser aplicados en Second Life.

Apellidos:

Quizás este proyecto sea uno de los mas esperados por la comunidad de usuarios. A la fecha poco ha cambiado sobre lo que se sabe sobre su implementación y se puede consultar en Este Artículo. Aunque es necesario mencionar los puntos principales de esta característica que ya está siendo denominada «Cambio de Nombre», ya que no solo apunta al regreso de los apellidos sino que va mas lejos y, como se puede ver en el artículo referido, apunta a permitir que los usuarios puedan cambiar el nombre de su cuenta. Leer Mas...

Second Life: Problema de comunicación entre scripts

La semana pasada el grid se vió afectado por un problema en la ejecución de scripts, específicamente cuando un objeto rezea otro y se establece una comunicación entre ambos (parent-child). Este problema, surgido luego de la actualización habitual de martes y miércoles, debió ser revertido por Linden Lab, de manera apurada, el pasado fin de semana (viernes y sábado) tuvo que reiniciar el grid para revertir los cambios y aplicar correcciones para solucionar el problema suscitado.

Ayer, en su blog oficial, Linden Lab emitió un comunicado explicando dicho problema, el cual se transcribe (traducido) a continuación:

Comunicaciones entre scripts  principal/secundario

Como parte de nuestros esfuerzos continuos para mejorar el rendimiento de los sctripts, recientemente realizamos cambios en cómo se programan los mismos y se entregan los eventos. Desafortunadamente, encontramos que esos cambios causaron la ruptura de algunos scripts ampliamente utilizados, lo que llevó a la reversión del estado del grid el sábado pasado. (Aparentemente tuvimos mala suerte en que hubiera poca cantidad de esos scripts en las regiones Release Candidate la semana anterior). Ahora hemos realizado mejoras adicionales que deberían evitar la mayoría de esos problemas, pero incluso con esas soluciones habrá algunos cambios en el tiempo y el orden de cómo se ejecutan los scripts. En general, esos cambios mejorarán el rendimiento, pero hay algunas mejores prácticas de secuencias de comandos que el usuario debería utilizar. Esto le ayudará a evitar depender de un orden o sincronización particular de entrega de eventos y ejecución de script.

Una causa común de problemas es la comunicación entre objetos inmediatamente después de que uno crea el otro. Cuando un objeto rezea a otro objeto en el mundo usando llRezObject o llRezAtRoot, los dos objetos con frecuencia necesitan comunicarse, ya sea a través de llamadas a llRegionSayTo o llGiveInventory. El objeto principal recibe un evento object_rez() cuando se ha creado el nuevo objeto, pero nunca es seguro asumir que los scripts en el nuevo objeto han tenido la oportunidad de ejecutarse cuando se entrega el evento object_rez. Esto significa que el nuevo objeto puede no haber inicializado su evento listen() o haber llamado llAllowInventoryDrop, por lo que cualquier intento de enviarle mensajes o inventario podría fallar. El objeto principal no debe comenzar a enviar mensajes ni a hacer un inventario del evento object_rez(), ni siquiera debe esperar un tiempo después de ese evento. En cambio, el objeto padre (rezzer) y el objeto hijo (rezzee) deben realizar una comunicación previa para confirmar que ambos lados están listos para cualquier transferencia.

La secuencia para este proceso es:

El objeto padre registra un evento de escucha usando llListen en un canal.
El objeto padre llama a llRezObject y pasa ese número de canal al nuevo objeto en start_param.
El objeto hijo crea un evento de escucha usando llListen en su controlador on_rez en el canal pasado como start_param.
El objeto hijo realiza cualquier otra configuración requerida para estar listo para cualquier comunicación que necesite con el objeto padre.
El objeto hijo envía un mensaje «listo» usando llRegionSayTo() en el canal asignado al objeto padre.
El objeto padre transfiere inventario o envía comandos de configuración a través de llRegionSayTo al objeto niño.
El objeto padre envía un mensaje de «hecho» al objeto hijo y ahora puede cerrar el canal de comunicaciones.
El objeto hijo recibe el mensaje «hecho» y ahora puede desmontar cualquier configuración que haya hecho para habilitar la configuración (como llamar a llAllowInventoryDrop( FALSE ) ).

Puedes ver el código de ejemplo de comunicación entre objetos padre e hijo a continuación.

Vale la pena señalar que este patrón de comunicación siempre ha sido la mejor manera de escribir tus scripts. Incluso sin los cambios en el planificador, el orden de cuándo se ejecutan los scripts en el nuevo objeto y cuándo se entregó el evento object_rez al rezzer no fue determinista. Parece cierto que hacer que el planificador sea más rápido ha hecho que esta condición de secuencia  sea algo menos predecible, pero hacer que todos los scripts se ejecuten con menos sobrecarga de programación vale la pena que el pedido sea un poco menos predecible, especialmente porque no estaba asegurado antes de todos modos. ¡Esperamos que estos nuevos cambios ayuden al mundo de todos a funcionar un poco más tranquilo! Para compartir tus pensamientos sobre esto, utiliza esta publicación del foro (En inglés).

Rezzer.lsl //////////////////////// // Rezzer script. // Rez' an object from inventory, establishes a communication channel and // gives the rezzed object inventory. // (Rezea un objeto desde su inventario (pestaña Contenido), establece un canal de comunicaciones y // entrega del inventario del objeto rezeado.) integer COM_CHANNEL=-17974594; // chat channel used to coordinate between rezzer and rezzee string REZZEE_NAME="Rezzee"; string CMD_REZZEE_READY = "REZZEE_READY"; string CMD_REZZER_DONE = "REZZER_DONE"; key rezzee_key; default { //... touch_start(integer count) { state configure_child; } //... } // rez and configure a child state configure_child { state_entry() { // where to rez vector position = llGetPos() + <0.0, 0.0, 1.0>; // establish rezzer's listen on the command channel llListen( COM_CHANNEL, "", "", "" ); // rez the object from inventory. Note that we are passing the // communication channel as the rez parameter. llRezObject(REZZEE_NAME, position, ZERO_VECTOR, ZERO_ROTATION, COM_CHANNEL); } object_rez(key id) { // the object has been rezzed in world. It may not have successfully // established its communication yet or done anything that it needs to // in order to be ready for config. Don't do anything till we get the signal rezzee_key = id; } listen(integer channel, string name, key id, string message) { if (message == CMD_REZZEE_READY) { // the rezzee has told us that they are ready to be configured. // we can sanity check id == rezzee_id, but in this trivial case that is // not necessary. integer count = llGetInventoryNumber(INVENTORY_NOTECARD); // give all note cards in our inventory to the rezzee (we could // do scripts, objects, or animations here too) while(count) { string name = llGetInventoryName(INVENTORY_NOTECARD, --count); llGiveInventory(id, name); } // And now tell the rezzee that we have finished giving it everything. llRegionSayTo(id, COM_CHANNEL, CMD_REZZER_DONE); // And we can leave configure child mode. state default; } } } Leer Mas...