Champions of Luneraria - Unity Game Engine Project (Co-op Action Tower Defense)
Der M4-Umfang ist als Protokoll 4 portiert, serverautoritativ. Der Host besitzt LuneMatch und rechnet jeden Kampf; Clients senden nur Absichten und zeigen den Kampf aus Host-Momentaufnahmen. - LuneSession (Core/Net): Rollen offline/Host/Gast, sechs Sitze, Lobby, Hallo mit Protokollprüfung und Namenskürzung, Beitritt und Wieder- einstieg über den Anzeigenamen, private Planung mit Spoof-Schutz, Bereit ist verbindlich, Bots planen einmal je Runde, Disconnect gibt den Platz an einen Bot (nie Kernverlust), Übernahme verwirft den unbestätigten Bot-Entwurf, Revanche hält die Plätze, Hostverlust meldet und führt ins Menü zurück. - Kampfsynchronisation: Beginn mit Einheitenätzen und Gebäude-HP, alle 0,05 s neue Einheiten und ein Frame (13 Werte je Einheit), späte Frames über die Serial verworfen, Gast interpoliert (frame_alpha). - Transport: LuneLoopback (In-Prozess) für die Tests, LuneTcp + LuneWire (Cursor-Codec) für Echtverbindungen statt ENet; ein Socket je Gast. - Oberfläche: LuneMainMenu (Offline/Hosten/Beitreten, Bund, Lane, Name, Adresse, Port) als Startbildschirm, LuneNetPlay als Schale wie lune_main.gd. LuneGame leitet Befehle, Rückgängig und Bereit im Netzspiel über die Sitzung; Tempo und Pause bestimmt der Host. - Tests: NetSuite 43/43 (Port von test_lune_net.gd), NetRoundsSuite 12/12 (Port von net_rounds.py: 5 Runden, Prüfsummen gleich, Gast rechnet 0 Schritte, Drop und Wiedereinstieg auf denselben Sitz), LuneWireTests Round-trip. EditMode 29/29, PlayMode 13/13, Kerntests 457/457. Fingerabdrücke der Bot-Partien unverändert. - Dokumentation: U4-NETWORK (Abnahme, Grenzen), PORT-QA (U4), PORT-STATUS (U4 fertig, U5 nächster Schritt), KNOWN-BEHAVIOR-DIFFERENCES. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| Assets | ||
| docs/port | ||
| Packages | ||
| ProjectSettings | ||
| tools | ||
| .gitignore | ||
| README.md | ||
Champions of Luneraria · Unity
Drei-Lane-Autobattler 3 gegen 3 (Mischung aus Dota 2 und Legion TD 2), portiert von Godot nach Unity.
- Engine: Unity 6.3 LTS (6000.3.20f1), URP.
- Zielplattformen: Fedora 44, Windows 11. macOS ist die Entwicklungsplattform.
- Referenz:
../saumwacht-godot, Zweigluneraria/g3(1b540f2).
Aufbau
Assets/Luneraria/Core/: Regelkern ohne Unity-Abhängigkeit (Luneraria.Core).Assets/Luneraria/View/: Host-Schleife (fester Takt), Ansichten, Kamera (Luneraria.View);Scenes/G1_Map.unityist die spielbare Karte.Assets/Luneraria/Art/: FBX aus der Blender-Pipeline (tools/blender/);World/Bake/: gebackene G1-Welt aus dem Godot-Generator.Assets/Luneraria/Editor/: Importregeln, Asset-Prüfung, Welt- und Szenenbau, Player-Build.Assets/Luneraria/Tests/Core/: Prüfsuiten mit Golden-Referenzen aus Godot, Diagnose (Float-Probe, Schritt-Trace, Benchmark); laufen im Unity Test Runner und mit dem .NET SDK.tools/: .NET-Projekte (Ausgabe nachtools/out/), Godot-Referenzwerkzeuge, Portwerkzeuge.docs/port/: Stand, Entscheidungen und QA je Meilenstein (PORT-STATUS.md).
Befehle
Kerntests mit dem .NET SDK (Protokoll nach $LUNE_TEST_REPORT, Standard tools/out/):
sh tools/run_core_tests.sh
Dieselben Tests im Unity Test Runner:
/Applications/Unity/Hub/Editor/6000.3.20f1/Unity.app/Contents/MacOS/Unity -batchmode -projectPath "$PWD" -runTests -testPlatform EditMode -testResults "$PWD/tools/out/editmode-results.xml" -logFile -
Szene neu bauen (nach geänderter Welt, Materialien oder Assets):
/Applications/Unity/Hub/Editor/6000.3.20f1/Unity.app/Contents/MacOS/Unity -batchmode -projectPath "$PWD" -executeMethod Luneraria.EditorTools.LuneWorldBuilder.BuildScene -logFile -
Spielen: Assets/Luneraria/Scenes/G1_Map.unity im Editor öffnen und Play drücken (Bot-Partie, Kamera mit WASD, Mausrad, Q/E, R, O).
Leistung (.NET bzw. Editor über -executeMethod Luneraria.Core.Tests.CoreBatch.Benchmark):
dotnet run -c Release --project tools/dotnet/Luneraria.Core.Bench