![]() |
|
OpenSimulator vom Manni - Druckversion +- GridTalk.de (https://www.gridtalk.de) +-- Forum: Werkstatt (https://www.gridtalk.de/forumdisplay.php?fid=4) +--- Forum: Technik (https://www.gridtalk.de/forumdisplay.php?fid=25) +---- Forum: Linux (https://www.gridtalk.de/forumdisplay.php?fid=26) +---- Thema: OpenSimulator vom Manni (/showthread.php?tid=4234) |
RE: OpenSimulator vom Manni - Manfred Aabye - 24.09.2025 OpenSimulator 0.9.3.1 Extended Windows Linux NET 8 (Build 20250924, Commit 0cbe8d5) Unofficial extended and automated OpenSimulator version from the Developer Version. Datum wurde hinzugefügt um die fertigen Builds besser auseinander halten zu können. Github Download ![]() Github Download RE: OpenSimulator vom Manni - Manfred Aabye - 16.12.2025 ================================================================================ MANNIS OPENSIMULATOR EXPERIMENTE Dokumentation der Entwicklungs- und Dokumentationsarbeiten ================================================================================ Autor: Manni Datum: Dezember 2025 OpenSimulator Version: 0.9.3.1 .NET Version: 8.0 Runtime ================================================================================ INHALTSVERZEICHNIS ================================================================================ 1. OPENSIM-ADDON-EXAMPLE ERWEITERUNGEN 2. OPENSIM-CONSOLE-API ENTWICKLUNG 3. OPENSIM-MONEY-ACCOUNTING SYSTEM 4. OPENSIM-WEB-PORTAL IMPLEMENTATION 5. WIKI-DOKUMENTATION ÜBERARBEITUNG 6. RELEASE NOTES AKTUALISIERUNG 7. DEUTSCHE ÜBERSETZUNGEN 8. DEVELOPER MEETING DOKUMENTATION 9. TECHNISCHE ERKENNTNISSE 10. ZUKÜNFTIGE ARBEITEN ================================================================================ 1. OPENSIM-ADDON-EXAMPLE ERWEITERUNGEN ================================================================================ PROJEKT: Erweiterung des OpenSim-Addon-Example Moduls ZEITRAUM: Dezember 2025 STATUS: Erfolgreich abgeschlossen und getestet 1.1 MOTIVATION -------------- Das Standard OpenSim-Addon-Example war ein einfaches Beispiel ohne praktische Funktionalität. Ziel war es, das Addon um realistische Funktionen zu erweitern, die zeigen, wie man: - Konfigurationsdateien (Robust.ini) liest - Auf die OpenSim MySQL-Datenbank zugreift - API-Endpunkte bereitstellt - Console-Befehle implementiert 1.2 IMPLEMENTIERTE FEATURES ---------------------------- A) RobustConfigReader Klasse - Liest Robust.ini Konfigurationsdatei - Parst INI-Sektionen und Schlüssel-Wert-Paare - Verwendet Nini.Config für robustes INI-Parsing - Fehlerbehandlung für fehlende oder fehlerhafte Dateien Funktionen: - ReadRobustConfig(string filePath): Dictionary<string, Dictionary<string, string>> - GetConfigSection(string sectionName): Dictionary<string, string> - GetConfigValue(string section, string key): string B) DatabaseHelper Klasse - MySQL Datenbankverbindung zu OpenSim-Datenbank - Zugriff auf UserAccounts Tabelle (Benutzerstatistiken) - Zugriff auf regions Tabelle (Regionsstatistiken) - Verwendet MySql.Data.MySqlClient - Connection String aus Robust.ini Funktionen: - GetUserAccountsCount(): int - GetRegionsCount(): int - GetUserAccountsList(): List<UserAccount> - GetRegionsList(): List<Region> - TestDatabaseConnection(): bool C) Neue API-Endpunkte 1. /api/robust-config - GET Request - Gibt Robust.ini Konfiguration als JSON zurück - Zeigt alle Sektionen und ihre Schlüssel-Wert-Paare - Nützlich für Monitoring und Debugging 2. /api/database-stats - GET Request - Gibt Datenbankstatistiken als JSON zurück - Zeigt Anzahl UserAccounts und Regions - Performance-Metriken für Datenbankzugriffe D) Neue Console-Befehle 1. show robust-config - Zeigt Robust.ini Konfiguration in der Console - Formatierte Ausgabe aller Sektionen - Hilfreich für Administration 2. show database-stats - Zeigt Datenbankstatistiken in der Console - Anzahl Benutzer und Regionen - Verbindungsstatus 1.3 TECHNISCHE DETAILS ----------------------- Projektdatei: OpenSim.Addon.Example.csproj - Hinzugefügte NuGet-Pakete: * MySql.Data (für MySQL Zugriff) * Nini (bereits vorhanden, für INI-Parsing) Prebuild-Konfiguration: prebuild-OpenSimAddonExample.xml - Reference name="MySql.Data" path="../../../bin/" hinzugefügt - Notwendig für korrektes Kompilieren mit prebuild.xml System Hauptdatei: ExampleServer.cs - Erweitert um ca. 300 Zeilen Code - Neue Klassen: RobustConfigReader, DatabaseHelper - Neue Handler: RobustConfigHandler, DatabaseStatsHandler - Integration mit bestehender IHttpServer Infrastruktur 1.4 KOMPILIERUNG UND TEST -------------------------- Build-Prozess: 1. runprebuild.bat ausgeführt (prebuild.xml generiert .csproj Dateien) 2. OpenSim.sln in Visual Studio / Rider geöffnet 3. Solution erfolgreich kompiliert 4. Alle Projekte ohne Fehler gebaut 5. Binaries in bin/ Verzeichnis generiert Fehlerbehandlung: - Initial: prebuild.xml fehlte MySql.Data Referenz - Lösung: Manuell in prebuild-OpenSimAddonExample.xml hinzugefügt - Nach runprebuild.bat erneut: Erfolgreiche Kompilierung Test-Ergebnisse: - API-Endpunkte erfolgreich erreichbar - Console-Befehle funktionieren - Datenbankverbindung stabil - Robust.ini wird korrekt gelesen - Keine Memory Leaks oder Performance-Probleme festgestellt 1.5 VERWENDETE TECHNOLOGIEN ---------------------------- - C# / .NET 8.0 - MySql.Data.MySqlClient 8.0+ - Nini Configuration Library - OpenSim.Framework - OpenSim.Server.Base - System.Net (HttpListener) ================================================================================ 2. OPENSIM-CONSOLE-API ENTWICKLUNG ================================================================================ PROJEKT: REST API für OpenSimulator Console-Befehle ZEITRAUM: Dezember 2025 STATUS: In Entwicklung / Experimentell 2.1 PROJEKTÜBERSICHT -------------------- Ziel: Bereitstellung einer RESTful API für die Ausführung von OpenSimulator Console-Befehlen über HTTP-Requests. Dies ermöglicht externe Monitoring- Tools, Verwaltungs-Dashboards und Automatisierungs-Scripts, mit dem OpenSimulator zu interagieren, ohne direkten Console-Zugriff zu benötigen. 2.2 HAUPTFEATURES ----------------- A) REST API Endpunkte - POST /console/execute - Führt Console-Befehle aus - GET /console/status - Server-Status abrufen - GET /console/regions - Liste aller Regionen - GET /console/users - Benutzer-Informationen - WebSocket Support für Live-Console-Output B) Sicherheitsfeatures - API-Key Authentifizierung - IP-Whitelist - Rate Limiting - Command-Whitelist (nur erlaubte Befehle) - Audit-Logging aller API-Zugriffe C) Datenformat - JSON Request/Response - Strukturierte Fehler-Responses - Async/Await für nicht-blockierende Operationen 2.3 TECHNISCHE IMPLEMENTATION ------------------------------ Architektur: - Standalone Server-Prozess - Integration mit OpenSim.Framework - Kestrel Web Server (.NET 8.0) - SignalR für WebSocket-Verbindungen Projektstruktur: - OpenSim.Console.Api.csproj - ConsoleApiServer.cs (Hauptserver) - CommandExecutor.cs (Command-Ausführung) - AuthenticationMiddleware.cs (Security) - WebSocketHandler.cs (Live-Updates) Konfiguration (ConsoleApi.ini): ```ini [ConsoleApi] Enabled = true Port = 9000 ApiKey = your-secret-key-here AllowedIPs = 127.0.0.1,192.168.1.0/24 AllowedCommands = show version,show users,show regions ``` 2.4 VERWENDUNG -------------- Beispiel-Request: ```bash curl -X POST http://localhost:9000/console/execute \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{"command": "show version"}' ``` Response: ```json { "success": true, "command": "show version", "output": "Version: OpenSimulator 0.9.3.1 (Dev)", "executionTime": "0.023s", "timestamp": "2025-12-16T10:30:00Z" } ``` 2.5 HERAUSFORDERUNGEN --------------------- - Console-Befehl-Output capturing - Thread-Safety bei gleichzeitigen Befehlen - Sicherheit gegen Missbrauch - Performance bei vielen gleichzeitigen Requests - Integration mit bestehendem Console-System 2.6 ANWENDUNGSFÄLLE ------------------- - Web-basierte Administration-Dashboards - Monitoring-Systeme (Prometheus, Grafana) - Automatisierungs-Scripts - Mobile Admin-Apps - CI/CD Integration für Deployments - Remote-Management-Tools ================================================================================ 3. OPENSIM-MONEY-ACCOUNTING SYSTEM ================================================================================ PROJEKT: Accounting und Reporting für OpenSim Currency Server ZEITRAUM: Dezember 2025 STATUS: In Entwicklung 3.1 PROJEKTÜBERSICHT -------------------- Ziel: Erweiterung des OpenSim Currency Servers um umfassendes Accounting, Transaction-Logging und Financial Reporting. Bietet Grid-Betreibern detaillierte Einblicke in die virtuelle Wirtschaft ihres Grids. 3.2 HAUPTFEATURES ----------------- A) Transaction Logging - Detailliertes Logging aller Geld-Transaktionen - Transaktionstypen: Käufe, Verkäufe, Transfers, Land, etc. - Zeitstempel, Benutzer, Beträge, Beschreibungen - Speicherung in separater Accounting-Datenbank B) Financial Reports - Tägliche/Wöchentliche/Monatliche Berichte - Benutzer-Kontostände - Transaktions-Volumen - Top-Käufer/Verkäufer - Geld-Fluss Analysen - Export als CSV/PDF/JSON C) Analytics Dashboard - Web-basierte Visualisierung - Charts und Graphen (Chart.js) - Echtzeit-Statistiken - Filter nach Datum, Benutzer, Typ - Drill-Down Funktionalität D) Audit Trail - Unveränderbare Transaction-History - Fraud-Detection Mechanismen - Verdächtige Aktivitäten-Alerts - Compliance-Reports 3.3 DATENBANK-SCHEMA -------------------- Neue Tabellen: - transactions (id, timestamp, from_user, to_user, amount, type, description) - account_balances (user_id, balance, last_updated) - daily_summaries (date, total_transactions, total_volume, unique_users) - audit_log (id, timestamp, action, user, details) Indizes für Performance: - timestamp (für Zeit-basierte Queries) - user_id (für Benutzer-spezifische Reports) - transaction_type (für Typ-basierte Analysen) 3.4 API ENDPUNKTE ----------------- - GET /api/accounting/transactions - Liste der Transaktionen - GET /api/accounting/balance/{userId} - Kontostand eines Benutzers - GET /api/accounting/reports/daily - Tagesbericht - GET /api/accounting/reports/user/{userId} - Benutzer-Report - GET /api/accounting/analytics - Statistische Auswertungen - POST /api/accounting/export - Report-Export 3.5 KONFIGURATION ----------------- AccountingServer.ini: ```ini [Accounting] Enabled = true DatabaseConnection = "Server=localhost;Database=opensim_accounting;..." RetentionDays = 365 EnableAuditTrail = true EnableFraudDetection = true AlertEmail = admin@example.com [Reports] GenerateDailyReports = true GenerateWeeklyReports = true ReportOutputPath = /var/opensim/reports/ ``` 3.6 VERWENDETE TECHNOLOGIEN --------------------------- - .NET 8.0 - Entity Framework Core (ORM) - MySQL/PostgreSQL (Datenbank) - ASP.NET Core (Web API) - SignalR (Realtime Updates) - Chart.js (Visualisierung) - iTextSharp (PDF Generation) 3.7 INTEGRATION --------------- Integration mit OpenSim-Grid-MoneyServer: - Hook in alle Transaktions-Methoden - Asynchrones Logging (nicht blockierend) - Event-basierte Architektur - Fallback bei Accounting-Ausfall 3.8 PERFORMANCE-ÜBERLEGUNGEN ---------------------------- - Bulk-Inserts für Transaktionen - Caching von häufigen Queries - Aggregierte Tabellen für schnelle Reports - Async/Await für nicht-blockierende DB-Ops - Connection Pooling ================================================================================ 4. OPENSIM-WEB-PORTAL IMPLEMENTATION ================================================================================ PROJEKT: Umfassendes Web-Portal für OpenSimulator Grids ZEITRAUM: Dezember 2025 STATUS: In Entwicklung 4.1 PROJEKTÜBERSICHT -------------------- Ziel: Entwicklung eines modernen, responsive Web-Portals für OpenSimulator Grids, das Benutzern und Administratoren umfassende Funktionen bietet. Vergleichbar mit Second Life's Website-Funktionalität. 4.2 HAUPTFEATURES ----------------- A) Benutzer-Features - Profil-Verwaltung - Avatar-Darstellung (Render-Service) - Freundesliste - Gruppen-Management - Inventar-Browser (read-only) - Messaging-System - Event-Kalender - Marketplace-Integration B) Content-Management - Region-Verzeichnis - Orts-Details mit Karten - Beliebte Locations - Events und Veranstaltungen - Blog/News-System - Community-Forum - Wiki-Integration C) Administration - Benutzer-Verwaltung - Region-Management - Server-Status Dashboard - Performance-Monitoring - Log-Viewer - Konfiguration-Editor - Backup-Management D) Statistiken & Analytics - Grid-Statistiken - Benutzer-Aktivität - Region-Traffic - Wirtschafts-Daten - Visualisierungen und Charts 4.3 TECHNOLOGIE-STACK --------------------- Backend: - ASP.NET Core 8.0 MVC - Entity Framework Core - SignalR (Realtime) - REST API - JWT Authentication Frontend: - Blazor WebAssembly / Razor Pages - Bootstrap 5 (Responsive Design) - JavaScript/TypeScript - Chart.js / D3.js (Visualisierung) - Vue.js / React (für interaktive Komponenten) Datenbank: - Shared Database mit OpenSimulator - Read-Only Zugriff auf Core-Tabellen - Eigene Tabellen für Portal-Features 4.4 ARCHITEKTUR --------------- Layered Architecture: ``` ┌─────────────────────────────────────┐ │ Presentation Layer │ │ (Razor Pages / Blazor / API) │ ├─────────────────────────────────────┤ │ Business Logic Layer │ │ (Services, Validators, Managers) │ ├─────────────────────────────────────┤ │ Data Access Layer │ │ (Repositories, EF Core, DTOs) │ ├─────────────────────────────────────┤ │ Database Layer │ │ (OpenSim DB + Portal-specific DB) │ └─────────────────────────────────────┘ ``` 4.5 WICHTIGE KOMPONENTEN ------------------------ A) Avatar Render Service - Region-Service aufrufen für Avatar-Appearance - Server-seitige Rendering mit OpenGL/Vulkan - Caching der generierten Bilder - Verschiedene Größen und Posen B) Mapping Service - Region-Tiles abrufen - Interactive Grid-Map - Teleport-Link-Generierung - Search-Funktionalität C) Authentication Service - Integration mit OpenSim User-Database - OAuth2 / OpenID Connect - Two-Factor Authentication - Single Sign-On (SSO) D) Notification Service - Email-Benachrichtigungen - In-World Nachrichten - Push-Notifications (Mobile) - Event-Reminders 4.6 SICHERHEIT -------------- - HTTPS/TLS Verschlüsselung - CSRF Protection - XSS Prevention - SQL Injection Prevention (EF Core) - Rate Limiting - Input Validation - Content Security Policy - Secure Password Storage (bcrypt/Argon2) 4.7 KONFIGURATION ----------------- WebPortal.ini: ```ini [WebPortal] Enabled = true Port = 8080 BaseUrl = https://grid.example.com [Database] ConnectionString = "Server=localhost;Database=opensim;..." PortalDatabase = "Server=localhost;Database=opensim_portal;..." [Features] EnableUserProfiles = true EnableMarketplace = true EnableForum = true EnableWiki = true [Email] SmtpServer = smtp.example.com SmtpPort = 587 FromAddress = noreply@grid.example.com ``` 4.8 DEPLOYMENT -------------- Optionen: - Docker Container - IIS Hosting (Windows) - Nginx Reverse Proxy (Linux) - Cloud-Hosting (Azure/AWS) - Kubernetes für Skalierung 4.9 INTEGRATION MIT OPENSIM --------------------------- - Region Server XML-RPC Calls - Robust Service Grid Queries - Database Direct Access (read-only) - OpenSim Events über UDP - XMLRPC für Avatar-Daten 4.10 ROADMAP ------------ Phase 1 (Current): - Basic User Profiles - Region Directory - Admin Dashboard Phase 2: - Marketplace - Forum - Advanced Analytics Phase 3: - Mobile App - API für Third-Party - Social Features ================================================================================ 5. WIKI-DOKUMENTATION ÜBERARBEITUNG ================================================================================ PROJEKT: Aktualisierung und Modernisierung der OpenSim Wiki-Dokumentation ZEITRAUM: Dezember 2025 STATUS: Abgeschlossen 2.1 ADDON-WIKI ÜBERARBEITUNG ----------------------------- Ursprungsdatei: addon-wiki.txt Neue Datei: new-addon-wiki.txt Durchgeführte Änderungen: - Aktualisierung von 0.7.x/0.8.x auf 0.9.3.x - Entfernung veralteter Diva.AddinExample Referenzen - Aktualisierung auf .NET 8.0 Runtime Anforderungen - Entfernung toter CodePlex Links (CodePlex wurde 2017 geschlossen) - Hinzufügen von GitHub Repository Links - Modernisierung der Code-Beispiele - Hinzufügen von SDK-style .csproj Beispielen - Erweiterte Troubleshooting Sektion - Aktualisierte mautil.exe Beispiele - Verbesserte Erklärungen zu Mono.Addins Neue Inhalte: - Prerequisites Sektion mit .NET 8.0 Anforderungen - Detaillierte Erklärung des Prebuild-Systems - Moderne Projekt-Struktur Beispiele - Erweiterte Best Practices - Kompatibilitätshinweise für verschiedene OpenSim-Versionen 2.2 INSTALLATION GUIDE ÜBERARBEITUNG ------------------------------------- Ursprungsdatei: Installing_3rd_party_addins-wiki.txt Neue Datei: new_Installing_3rd_party_addins-wiki.txt Durchgeführte Änderungen: - Aktualisierung aller Versionsnummern auf 0.9.3.x - Hinzufügen .NET 8.0 spezifischer Installationsschritte - Modernisierung der Beispiele - Erweiterte Fehlerbehebungssektion - Aktualisierung der mautil.exe Befehle - Hinzufügen von Sicherheitshinweisen - Verbesserte Schritt-für-Schritt Anleitungen - Aktualisierte Repository-Links Neue Inhalte: - .NET 8.0 Runtime Voraussetzungen - Detaillierte Verzeichnisstruktur-Erklärungen - Erweiterte Troubleshooting-Sektion - Backup-Empfehlungen vor Installation - Kompatibilitätsprüfungs-Hinweise 2.3 REGION MODULES DOKUMENTATION --------------------------------- Ursprungsdatei: New_Region_Modules-wiki.txt Neue Datei: new_New_Region_Modules-wiki.txt Durchgeführte Änderungen: - Komplette Überprüfung gegen OpenSim 0.9.3.x Codebase - Verifizierung der Interface-Definitionen (IRegionModuleBase, etc.) - Aktualisierung auf .NET 8.0 - Modernisierung aller Code-Beispiele - Erweiterte Lifecycle-Dokumentation - Hinzufügen von Performance-Überlegungen - Erweiterte Best Practices Sektion - .NET 8.0 spezifische Troubleshooting-Hinweise Neue Inhalte: - SDK-style .csproj Beispiele für .NET 8.0 - Detaillierte Erklärung des Modul-Lebenszyklus - Shared vs. Non-Shared Module Entscheidungshilfe - Erweiterte Cross-Module Communication Beispiele - Memory Management Best Practices - Async/Await Pattern Guidance Verifizierte Informationen: - IRegionModuleBase Interface überprüft gegen aktuellen Code - ISharedRegionModule PostInitialise() Methode bestätigt - INonSharedRegionModule Interface verifiziert - Lifecycle-Methoden gegen grep-Suche im Codebase validiert - Implementierungsbeispiele gefunden in: WorldMapModule, SoundModule, etc. ================================================================================ 6. RELEASE NOTES AKTUALISIERUNG ================================================================================ PROJEKT: Erweiterung der 0.9.3.1 Release Notes DATEI: 0.9.3.1-wiki.txt STATUS: Abgeschlossen 3.1 BEKANNTE PROBLEME MIT ASSET-SPEICHERUNG -------------------------------------------- Hinzugefügter Abschnitt: "Known Issues with Asset Storage" A) MySQL Asset Storage Probleme Identifizierte Probleme: - Monolithische Asset-Tabelle * Alle Asset-Typen in einer einzigen Tabelle * Wird zum Performance-Engpass bei wachsender Anzahl * Millionen von Einträgen in einer Tabelle - Wartungsschwierigkeiten * Datenbank-Optimierung extrem zeitaufwendig * Reparatur-Operationen können Stunden/Tage dauern * Indexierung wird bei großen Tabellen sehr langsam * Backup und Restore problematisch - Empfohlene Lösung * Aufteilung nach Asset-Typen * Separate Tabellen für: Texturen, Scripts, Sounds, Animationen, Notecards * Verbesserte Query-Performance durch kleinere Tabellen * Einfachere Wartung und Optimierung - Auswirkungen * Langsamer Asset-Abruf bei großen Grids * Datenbankabfragen blockieren andere Operationen * Gesamtperformance des Grids leidet B) FSAssets Storage Probleme Identifizierte Probleme: - Dateisystem-Fragmentierung * Millionen kleine Dateien * Stark beeinträchtigte Dateisystem-Performance * Inode-Erschöpfung auf Linux-Systemen - Verzeichnis-Limitierungen * Dateisysteme degradieren mit vielen Einträgen * Ext4 empfohlen max 10.000-50.000 Dateien pro Directory * NTFS ähnliche Probleme - I/O-Overhead * Jeder Asset-Zugriff = separate Datei-Operation * Open/Close Overhead für jede Datei * Kein effizientes Caching möglich - Wartungs-Alptraum * Dateisystem-Checks dauern extrem lange * Defragmentierung praktisch unmöglich * Routine-Wartung wird zum Problem - Backup-Herausforderungen * Backup von Millionen Dateien sehr langsam * Inkrementelle Backups problematisch * Restore dauert sehr lange - SQLite-ähnliche Probleme * Ähnliche Skalierungsprobleme wie SQLite * Datei-pro-Asset Ansatz nicht produktionsreif * Nur für kleine Test-Setups geeignet C) Auswirkung auf OpenSimulator-Verbreitung Barrieren für Adoption: - Neue Benutzer erleben schlechte Performance - Standard-Konfigurationen nicht produktionsreif - Grid-Betreiber kämpfen mit Skalierung - Hosting-Provider haben Performance-Probleme - Negative Wahrnehmung von Stabilität - Verhindert breitere Akzeptanz D) Empfohlene Workarounds Für kleine/mittlere Grids: - MySQL mit regelmäßiger Optimierung - Datenbankwartung planen - Monitoring implementieren Für größere Grids: - Asset-Typ-Partitionierung implementieren - Alternative Storage-Backends evaluieren - Regelmäßiges Monitoring Allgemein: - Asset-Tabellengröße überwachen - Dateisystem-Statistiken prüfen - Asset-Cleanup-Richtlinien - Verwaiste Assets regelmäßig entfernen 3.2 TECHNISCHE BEGRÜNDUNG -------------------------- Die Dokumentation dieser Probleme ist wichtig, weil: 1. Realistische Erwartungen für neue Benutzer 2. Grid-Betreiber können proaktiv planen 3. Entwickler verstehen die Probleme besser 4. Community kann Lösungen entwickeln 5. Transparenz über bekannte Limitierungen ================================================================================ 7. DEUTSCHE ÜBERSETZUNGEN ================================================================================ PROJEKT: Lokalisierung der Wiki-Dokumentation SPRACHE: Deutsch STATUS: Abgeschlossen 4.1 ÜBERSETZTE DOKUMENTE ------------------------- 1. new-addon-wiki-de.txt - Vollständige deutsche Übersetzung von new-addon-wiki.txt - Alle technischen Begriffe korrekt übersetzt - Code-Beispiele unverändert (Englisch) - Wikimedia-Formatierung beibehalten - Technische Genauigkeit gewährleistet 2. new_Installing_3rd_party_addins-wiki-de.txt - Vollständige deutsche Übersetzung - Installations-Anweisungen angepasst - Deutsche Fehlermeldungen hinzugefügt - Kulturelle Anpassungen wo nötig 3. new_New_Region_Modules-wiki-de.txt - Vollständige deutsche Übersetzung - Komplexe technische Konzepte klar erklärt - Code-Kommentare übersetzt - Deutsche LSL-Erklärungen 4. 0.9.3.1-wiki-de.txt - Deutsche Version der Release Notes - Asset Storage Probleme auf Deutsch dokumentiert - Alle neuen Features übersetzt 4.2 ÜBERSETZUNGSQUALITÄT ------------------------- Richtlinien: - Technische Begriffe bleiben Englisch wo üblich (z.B. "HUD", "Script") - API-Namen unverändert (z.B. "IRegionModuleBase") - Code-Beispiele bleiben Englisch - Konzepte werden klar auf Deutsch erklärt - Fachbegriffe konsistent verwendet Qualitätssicherung: - Technische Korrektheit überprüft - Verständlichkeit für deutschsprachige Community - Konsistente Terminologie - Alle Links funktionsfähig ================================================================================ 8. DEVELOPER MEETING DOKUMENTATION ================================================================================ PROJEKT: Zusammenfassung des OpenSim Developer Meetings DATEI: chat-zusammenfassung-de.txt STATUS: Abgeschlossen 5.1 DOKUMENTIERTE INHALTE -------------------------- Hauptthemen: 1. Primitems Datenbank-Optimierung (Vincent Sylvester) 2. OSCC 2025 Konferenz-Bericht 3. OpenSimulator Nutzungsstatistiken 4. Technische Diskussionen über Performance 5. YouTube & Transkriptions-Themen 6. Ausblick & nächste Schritte Technische Details: - Vincent's Optimierung reduziert Schreibvorgänge um 70% - SSD-Lebensdauer Problem (800TB in 270 Tagen geschrieben) - Alte vs. neue Primitems-Datenbank-Zugriffe - Diskussion über Read vs. Write Performance - Architektonische Probleme im Core Community-Informationen: - OSCC 2025 Veranstaltungs-Highlights - Hypergrid Tour Berichte - YouTube Video-Veröffentlichungen - Kommende Events - Community-Engagement 5.2 DOKUMENTATIONSFORMAT ------------------------- Struktur: - Teilnehmerliste - Hauptthemen nummeriert - Technische Details mit Unterpunkten - Diskussionspunkte dokumentiert - Wichtige Erkenntnisse hervorgehoben - Links zu Ressourcen Stil: - Professionell aber zugänglich - Technisch präzise - Gut strukturiert - Leicht durchsuchbar - Deutsche Sprache ================================================================================ 9. TECHNISCHE ERKENNTNISSE ================================================================================ 6.1 OPENSIM ADDON-ENTWICKLUNG ------------------------------ Gelernte Lektionen: - Prebuild.xml System kann tückisch sein - NuGet-Referenzen müssen in prebuild.xml UND .csproj sein - MySql.Data erfordert explizite Referenz in prebuild-*.xml - runprebuild.bat MUSS nach prebuild.xml Änderungen laufen - .NET 8.0 erfordert moderne SDK-style Projekte Best Practices entdeckt: - Immer vollständige Solution kompilieren - Referenzen in prebuild-*.xml prüfen - Nini.Config für INI-Parsing verwenden - MySql.Data.MySqlClient für Datenbank - Fehlerbehandlung in allen Datenbankoperationen - Logging für Debugging wichtig Häufige Fehler vermieden: - Fehlende Referenzen in prebuild.xml - Vergessen runprebuild.bat zu laufen - Datenbankverbindungen nicht schließen - Keine Fehlerbehandlung bei INI-Parsing - Keine Validierung von Eingabedaten 6.2 WIKI-DOKUMENTATION ----------------------- Dokumentations-Prinzipien: - Versionen immer explizit nennen (0.9.3.x) - Tote Links entfernen (CodePlex) - Moderne Beispiele verwenden (.NET 8.0) - Code muss getestet sein - Screenshots aktualisieren - Troubleshooting erweitern Verbesserungen: - Von Version 0.7.x auf 0.9.3.x - Mono zu .NET 8.0 Migration dokumentiert - Alte Diva.AddinExample entfernt - GitHub Links hinzugefügt - SDK-style Projekte erklärt 6.3 OPENSIM ARCHITEKTUR-VERSTÄNDNIS ------------------------------------ Gelernt über: - Region Module System (IRegionModuleBase, etc.) - Mono.Addins Framework - Prebuild System für Projektgenerierung - Console Command System - HTTP Server Integration - Datenbank-Schema (UserAccounts, regions) - Robust.ini Struktur Asset Storage Probleme verstanden: - MySQL monolithische Tabelle = Bottleneck - FSAssets Dateisystem-Fragmentierung - SQLite Skalierungsprobleme - Backup-Herausforderungen - Wartungs-Schwierigkeiten - Performance-Degradation Performance-Optimierungen: - Primitems Read-Compare-Write statt Delete-Insert - Vermeidung unnötiger "Changed" Flags - Reduzierung von Disk I/O - SSD Lebensdauer verlängern - Backup-Routine Optimierung 6.4 .NET 8.0 MIGRATION ----------------------- Wichtige Erkenntnisse: - .NET 8.0 erfordert neue Runtime-Installation - SDK-style .csproj empfohlen - NuGet Packages müssen kompatibel sein - Mono-Kompatibilität noch wichtig - Linux libgdiplus erforderlich - VC++ Runtime auf Windows nötig Kompatibilität: - Ältere Viewer müssen weiter funktionieren - Mono.Addins funktioniert mit .NET 8.0 - MySql.Data.MySqlClient kompatibel - Nini Config Library funktioniert ================================================================================ 10. ZUKÜNFTIGE ARBEITEN ================================================================================ 7.1 GEPLANTE ERWEITERUNGEN --------------------------- OpenSim-Addon-Example: - Weitere API-Endpunkte hinzufügen * /api/regions (Liste aller Regionen) * /api/users (Liste aller Benutzer) * /api/assets/stats (Asset-Statistiken) - WebSocket Support für Live-Updates - Authentifizierung für API - Rate Limiting implementieren - Swagger/OpenAPI Dokumentation Wiki-Dokumentation: - Tutorial-Serie für Addon-Entwicklung - Video-Tutorials erstellen - Mehr Code-Beispiele - Community-Contributions dokumentieren - FAQ-Sektion erweitern 7.2 FORSCHUNGSTHEMEN -------------------- Asset Storage: - Alternative Storage Backends evaluieren - Asset-Typ-Partitionierung implementieren - Caching-Strategien entwickeln - Cloud-Storage-Integration (S3, etc.) - Deduplizierung von Assets Performance: - Weitere Primitems-Optimierungen - Texture-Caching verbessern - Region-Crossing Optimierung - Script-Performance analysieren - Netzwerk-Protokoll-Optimierung 7.3 COMMUNITY-BEITRÄGE ---------------------- Geplante Veröffentlichungen: - OpenSim-Addon-Example auf GitHub - Wiki-Updates ins offizielle Wiki einreichen - Deutsche Community-Ressourcen aufbauen - Tutorial-Videos produzieren - Blog-Posts über Erkenntnisse Zusammenarbeit: - Mit Core-Entwicklern für Asset-Storage-Verbesserungen - Mit OSCC für deutsche Community-Events - Mit Grid-Betreibern für Best Practices - Mit Currency-Server Entwicklern für Accounting-Features - Mit Web-Portal Community für Feature-Requests 7.4 OFFENE FRAGEN ----------------- Technisch: - Wie kann Asset-Tabellen-Splitting implementiert werden? - Welches ist das beste alternative Storage-Backend? - Wie kann FSAssets verbessert werden? - Was sind die besten Caching-Strategien? - Wie kann man Hot-Reload für Addons implementieren? Dokumentation: - Welche weiteren Themen sind unterrepräsentiert? - Wie kann man deutsche Community besser erreichen? - Welche Video-Tutorials sind am hilfreichsten? - Wie organisiert man Community-Übersetzungen? Community: - Wie motiviert man mehr Addon-Entwickler? - Wie verbessert man Onboarding für neue Entwickler? - Wie koordiniert man internationale Zusammenarbeit? - Wie organisiert man deutsche OSCC-Events? ================================================================================ ZUSAMMENFASSUNG ================================================================================ Diese Experimente haben gezeigt: 1. OpenSim Addons sind mächtig und erweiterbar - Realistische Funktionalität kann hinzugefügt werden - Datenbankzugriff ist möglich und praktisch - API-Endpunkte lassen sich leicht implementieren - Console-Integration ist straightforward 2. Dokumentation ist veraltet aber aktualisierbar - Viele Wikis noch auf 0.7.x/0.8.x Level - .NET 8.0 Migration nicht überall dokumentiert - Deutsche Übersetzungen fehlen weitgehend - Code-Beispiele oft veraltet 3. Asset Storage ist ein bekanntes Problem - MySQL monolithische Tabelle = Performance-Killer - FSAssets nicht produktionsreif für große Grids - Community ist sich der Probleme bewusst - Lösungen sind komplex aber möglich 4. Community ist aktiv und hilfsbereit - OSCC 2025 war großer Erfolg - Developer Meetings regelmäßig - Viele Entwickler arbeiten an Verbesserungen - Internationale Community wächst 5. .NET 8.0 ist die Zukunft - Migration läuft erfolgreich - Performance-Verbesserungen sichtbar - Moderne Features verfügbar - Mono-Support bleibt aber wichtig Die Arbeit an OpenSimulator ist lohnend und macht Fortschritte. Die Community ist offen für Beiträge und neue Ideen. Mit besserer Dokumentation und gelösten Performance-Problemen kann OpenSimulator weiter wachsen. ================================================================================ REFERENZEN & RESSOURCEN ================================================================================ Repositories: - OpenSimulator: https://github.com/opensim/opensim - Mono.Addins: https://github.com/mono/mono-addins - OpenSim Currency Server: https://github.com/ManfredAabye/opensimcurrencyserver-dotnet Dokumentation: - OpenSim Wiki: http://opensimulator.org/wiki/ - OSCC Website: conference.opensimulator.org - Hypergrid Business: hypergridbusiness.com Videos: - OSCC 2025: https://www.youtube.com/@AvaConOrg/videos - OpenSim Git History: https://bolderbay.net/stream/vod/gource.html Tools: - .NET 8.0 SDK: https://dotnet.microsoft.com/download/dotnet/8.0 - MySql.Data: NuGet Package - Nini Config: http://nini.sourceforge.net/ Community: - OpenSim Developer Meetings: Wöchentlich - OSCC Events: Jährlich - Discord/IRC: Verfügbar für Support RE: OpenSimulator vom Manni - Dorena Verne - 16.12.2025 Was für eine umfangreiche, geniale Arbeit, Manni.
RE: OpenSimulator vom Manni - Manfred Aabye - 13.05.2026 Was ich zurzeit mache: OpenSim Distributed Asset Storage Framework Deutsch Die Arbeitsverzeichnisse AssetServiceS3 und DataS3 sind voruebergehende Bezeichnungen fuer die Entwicklung eines neuen, generischen Asset-Storage-Frameworks auf Basis von S3-kompatiblen Speichern. Ziel ist es, den bestehenden AssetService schrittweise von SQL-BLOB-Speicherung auf ein flexibles, verteiltes Speichersystem umzustellen - ohne Anbieterbindung. TODO-Work_Plan.de.md (Deutsch) English AssetServiceS3 and DataS3 are temporary working directories for developing a new generic asset-storage framework based on S3-compatible backends. The goal is to migrate the existing AssetService step by step from SQL BLOB storage to a flexible distributed storage system - without vendor lock-in. TODO-Work_Plan.en.md (English) Francais AssetServiceS3 et DataS3 sont des repertoires de travail temporaires pour developper un nouveau framework de stockage d'assets generique base sur des stockages compatibles S3. L'objectif est de faire evoluer progressivement l'AssetService existant d'un stockage SQL BLOB vers un systeme de stockage distribue flexible - sans verrouillage fournisseur. TODO-Work_Plan.fr.md (Français) Espanol AssetServiceS3 y DataS3 son directorios de trabajo temporales para desarrollar un nuevo framework de almacenamiento de assets generico basado en almacenamientos compatibles con S3. El objetivo es migrar gradualmente el AssetService existente desde SQL BLOB hacia un sistema de almacenamiento distribuido flexible - sin bloqueo de proveedor. TODO-Work_Plan.es.md (Español) |