Skip to content

Chicook/WoldVirtualv0.0.01

Repository files navigation

Implementación del Sistema de Islas Nodo (P2P) Este documento resume los componentes instalados y configurados para permitir que cada usuario sea dueño y host de su propia isla privada.

🚀 Estado Actual El sistema está en progreso de implementación. Se han realizado avances significativos en la lógica principal, pero quedan tareas pendientes como la implementación completa del ghosting de avatares y correcciones de errores restantes. El visor carga automáticamente la isla privada al iniciar sesión y se han actualizado componentes para conexión P2P y sincronización.

📦 Componentes Instalados y Actualizados

  1. Gestor de Isla Local (Godot) Script: GDSCRIP/IslandManager.gd Función:
  • Gestiona el ciclo de vida de la escena rprc_3d.tscn.
  • Genera un WorldID único basado en el hardware del usuario usando OS.get_unique_id() y SHA256.
  • Implementa lógica de carga automática en _ready() para simular inicio de sesión.
  • Función get_world_id() para obtener el ID actual. Configuración: Añadido como Singleton (Autoload) en project.godot. Actualizaciones: Se añadió lógica para carga inmediata de la isla privada y generación de WorldID hardware-based.
  1. Sistema de Invitaciones (C#) Script: exep2p/C#/Systems/InviteSystem.cs Función:
  • Genera códigos de invitación cifrados (ej. ISLAND-X9-R22) usando AES-XOR.
  • Cifra la IP pública, Puerto UDP y ID de la Isla.
  • Incluye rotación automática de códigos cada 60 minutos o al unirse un nuevo usuario vía OnNewUserJoined(). Actualizaciones: Se añadió el método OnNewUserJoined() para rotación de códigos al unirse nuevos usuarios. Se corrigieron errores CS8618 haciendo campos nullable.
  1. Puente P2P y Networking (C#) Script: exep2p/C#/Networking/P2P_Bridge.cs Función:
  • Maneja la conexión directa entre usuarios (P2P).
  • UDP Hole Punching: Algoritmo agresivo para atravesar NATs simétricos (envío de 10 paquetes).
  • Modo Standby: Suspende la isla local cuando el usuario viaja a otra isla.
  • Sincronización de escena: Métodos para handshake, request y apply de datos de escena.
  • Envío de actualizaciones de avatar compactas (33 bytes) con encriptación XOR cada 30ms. Actualizaciones:
  • Corregidos errores CS8618 con campos y eventos nullable.
  • Actualizado ConnectToIslandBase() con lógica de handshake.
  • Actualizado SendAvatarUpdate() para paquetes compactos y encriptación XOR.
  • Añadidos métodos PerformHandshake(), RequestSceneData(), ApplySceneData(), SendSceneData().
  • Implementación parcial de procesamiento de paquetes de avatar (deserialización pendiente).
  • Optimizaciones para bajo consumo de RAM (<0.1%) y soporte cross-country NAT.
  1. Sincronización de Avatares (Ghosting) Script: GDSCRIP/movimientoAV3d.gd (Modificado) y pendientes en IslandManager.gd Función:
  • Emite señales de posición y rotación cada 30ms.
  • Optimizado para bajo consumo de ancho de banda. Actualizaciones: Lógica pendiente para timer de 30ms en IslandManager.gd y handler en BridgeClient.cs. Se planea añadir _on_avatar_timer_timeout() para enviar posiciones a C#.

🛠️ Correcciones y Ajustes Realizados

  • Whitelist de Escenas: Se añadió rprc_3d.tscn a GodotSceneManager.cs para asegurar que el visor active el chat y la UI al cargar la isla.
  • Compilación: Se corrigieron errores en InternalServer.cs para asegurar una compilación limpia del proyecto C#.
  • Errores corregidos: CS8618 (nullable types), CS1998 (async/await), CS0103 (pendiente en Program.cs).
  • Optimizaciones: Enfoque en bajo uso de RAM y CPU, soporte para NAT simétricos entre países (ej. España-Cuba).

📋 Archivos Clave Componente Ruta Descripción Scene Manager GDSCRIP/IslandManager.gd Lógica de carga de isla en Godot Invite System exep2p/C#/Systems/InviteSystem.cs Generador de códigos seguros P2P Core exep2p/C#/Networking/P2P_Bridge.cs Conectividad UDP y sincronización Avatar Ctrl GDSCRIP/movimientoAV3d.gd Lógica de movimiento y sync

📝 Tareas Pendientes

  • Completar deserialización y procesamiento de paquetes de avatar en P2P_Bridge.cs.
  • Añadir timer de 30ms y lógica de envío en IslandManager.gd.
  • Implementar handlers en BridgeClient.cs y suscripción a eventos en P2P_Bridge.
  • Lógica en Godot para aplicar actualizaciones de ghost avatars.
  • Verificaciones finales y pruebas en el directorio especificado.

Generado automáticamente por el asistente basado en el progreso actual.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published