commit 2ca90dcf65e2aa12511a45ee1f76c5628edfb5f4 Author: Christian Schindler Date: Sat Aug 15 08:31:31 2026 +0200 docs: establish private implementation plan diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..65a435a --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# Gradle and Java +.gradle/ +**/build/ +*.class +*.log + +# Local Hytale runtime and proprietary game data +.hytale/ +dev-runtime/ +local.properties +gradle-local.properties +**/HytaleServer.jar +**/Assets.zip +*.jar + +# Secrets and local MCP configuration +.env +.env.* +!.env.example +*.token +*.secret +secrets/ +devtools/blockbench-mcp/.local/ + +# IDE and operating-system files +.idea/ +.vscode/ +*.iml +.DS_Store + +# Generated reports and temporary exports +reports/ +tmp/ +out/ + diff --git a/docs/IMPLEMENTATION_PLAN.md b/docs/IMPLEMENTATION_PLAN.md new file mode 100644 index 0000000..9a2b5ba --- /dev/null +++ b/docs/IMPLEMENTATION_PLAN.md @@ -0,0 +1,55 @@ +# ProjectCapture – Implementierungsplan + +## Ziel + +ProjectCapture ist eine private, nicht kommerzielle Hytale-Creature-Catching-Fanmod. Das Projekt wird als neues lokales Repository unter `~/HytaleMods/ProjectCapture` entwickelt und berührt weder bestehende Projekte noch Hytales Launcher-, Spiel- oder Live-Weltdaten. + +Die technische Basis ist Hytale Stable 0.5.9, Java 25 und Gradle 9.6.1. Das Java-Plugin ist serverautoritativ und liefert ein eingebettetes Asset-Pack aus. Die erste spielbare Content-Scheibe enthält Bulbasaur, Ivysaur, Venusaur, Charmander, Charmeleon, Charizard, Squirtle, Wartortle, Blastoise, Pikachu, Raichu und Ditto. Ein späterer privater Ausbau umfasst #001–#150; Mew ist nicht Teil dieses Ziels. + +## Architektur + +- `engine`: Hytale-unabhängige Fang-, Kampf-, Level-, Evolutions-, Zucht-, Genetik-, Handels- und Duelllogik. +- `hytale-adapter`: Plugin-Lifecycle, Events, ECS, NPCs, Persistenz, UI, Kamera und Weltintegration. +- `content-private`: private Spezies-, Attacken-, Spawn-, Rezept- und Asset-Daten. +- `content-tools`: Schema-, Content-, Asset- und Veröffentlichungsvalidatoren. + +Die offizielle Abhängigkeit `com.hypixel.hytale:Server:0.5.9` wird exakt gepinnt. Server-JARs, `Assets.zip`, extrahierte Hytale-Basisassets und Geheimnisse werden nie eingecheckt. Hytale-API-Aufrufe bleiben im Adapter, damit spätere API-Versionen austauschbar sind. + +Versionierte, stabile IDs werden für `SpeciesDefinition`, `MoveDefinition`, `CreatureInstance`, `Genome`, `HabitatState`, `TradeTransaction` und `DuelSession` verwendet. Persistierte Daten tragen eine `schemaVersion` und erhalten explizite Migrationen. + +## Gameplay + +- Wildspawns nach Biom, Tageszeit und Seltenheit. +- Kein Starter; die erste Freischaltung ist ein Rezept für craftbare Fanggeräte. +- Level 1–100, Erfahrung, Evolutionen und serverseitig persistierte Instanzen. +- Sechser-Party, erweiterbare Lagerung und genau ein sichtbarer Begleiter. +- Offene Co-op-Kämpfe: Spieler und Kreatur kämpfen gemeinsam; automatischer Basisangriff plus drei befehligte Fähigkeiten. +- Baubares Zuchthabitat; Fortschritt nur während aktiver Serverzeit; Abstammung und schrittweise Genanalyse. +- Modulare Hybriden mit bis zu vier aktiven Spezieslinien und stabilen Modell-Sockets. +- Atomarer Handel von Kreaturen, Eiern und Items. +- Freiwillige Duelle mit natürlichen Leveln, deaktivierten Spielerwaffen und begrenzter Kampfzone. + +## Asset-Pipeline + +Blockbench 5.0.7 wird mit dem offiziellen Hytale-Models-Plugin 0.9.1 verwendet. Als Automatisierungsbasis dient ein gepinnter, gehärteter Fork von `jasonjgardner/blockbench-mcp-plugin` v1.6.1. Der Server bindet nur an `127.0.0.1`, verlangt ein lokales Token, beschränkt Schreibpfade auf dieses Projekt und bietet weder `risky_eval` noch Klicksimulation, beliebige UI-Actions oder fremde URL-Importe an. + +Der Fork ergänzt sichere Werkzeuge für Hytale-Projekterstellung, Quads, Attachments, PNG- und `.bbmodel`-Speicherung, `.blockymodel`/`.blockyanim`-Export und offizielle Validierung. Ein neutrales Testwesen muss vor der Content-Produktion den vollständigen Roundtrip bestehen. Danach werden pro Kreatur Asset-Rezept, `.bbmodel`, PNG, `.blockymodel`, `.blockyanim`, Vorschauen und Validierungsbericht gespeichert. ImageGen dient ausschließlich eigenen Konzepten, UI- und Texturvorlagen; Sounds werden original/prozedural erzeugt. + +## Umsetzungsgates + +1. **Werkzeug-Gate:** Loopback, Authentifizierung, Werkzeug-Allowlist und Pfadschutz sind nachgewiesen. +2. **Asset-Gate:** Das neutrale Testwesen wird deterministisch erzeugt, exportiert, erneut importiert und unverändert validiert. +3. **Foundation-Gate:** Plugin und eingebettetes Asset-Pack laden auf 0.5.9; Persistenz übersteht Neustarts. +4. **Vertical-Slice-Gate:** Spawn, Fang, Begleiter, Level, Kampf, Evolution und Wiederherstellung funktionieren für eine Kreatur. +5. **System-Gate:** Zucht, Gene, Hybriden, Handel und PvP bestehen Abbruch-, Konkurrenz- und Neustarttests. +6. **Content-Gate:** Alle zwölf Spezies bestehen Schema-, Asset-, Spawn-, Animations- und In-game-Tests. +7. **Ausbau-Gate:** Erst danach erfolgt der private Ausbau auf #001–#150. +8. **Publication-Gate:** Eine Veröffentlichung ist technisch blockiert, bis sämtliche Dritt-IP vollständig entfernt und durch eigene Inhalte ersetzt wurde. + +## Verbindliche Grenzen + +- Privat, nicht kommerziell und ohne Git-Remote. +- Keine Dekompilierung und keine Übernahme fremder Mod-, Hytale- oder Pokémon-Assets. +- Keine Veröffentlichung, Releases oder Distributionspakete mit Pokémon-IP. +- Laufzeittests erfordern eine getrennte lokale Hytale-0.5.9-Entwicklungsumgebung und überschreiben keine Live-Daten. + diff --git a/docs/PRIVATE_FANMOD_POLICY.md b/docs/PRIVATE_FANMOD_POLICY.md new file mode 100644 index 0000000..37f432f --- /dev/null +++ b/docs/PRIVATE_FANMOD_POLICY.md @@ -0,0 +1,37 @@ +# Private Fanmod Policy + +## Status + +ProjectCapture ist ausschließlich ein **privates, nicht kommerzielles Entwicklungsprojekt**. Das Repository besitzt absichtlich keinen Remote und darf in seinem privaten Content-Zustand weder veröffentlicht, verteilt, monetarisiert noch als Download bereitgestellt werden. + +## Gesperrte Veröffentlichungen + +Builds für lokale Entwicklung und lokale Hytale-Tests sind erlaubt. Folgende Aktionen bleiben gesperrt, solange `content-private` oder daraus abgeleitete Artefakte enthalten sind: + +- Veröffentlichung eines Git-Repositorys oder Quellarchivs; +- Upload eines Plugin-JARs, Asset-Packs oder Mod-Browser-Pakets; +- öffentliche Releases, Testdownloads oder Serververteilung; +- Monetarisierung, Spendengegenleistungen, Verkäufe oder Paid Random Items; +- Verwendung als offiziell wirkendes Hytale- oder Pokémon-Produkt. + +## Publication-Gate + +Eine spätere Veröffentlichung ist ein eigenständiges Projektgate. Sie ist nur zulässig, wenn eine vollständige IP-Ablösung dokumentiert und technisch validiert wurde. Zu ersetzen sind mindestens: + +- alle Pokémon- und Nintendo/TPC-bezogenen Namen und Begriffe; +- Silhouetten, Designs, Modelle, Texturen und Animationen; +- Sounds, Rufe, Musik und Audio-Motive; +- Attackennamen, Effekte, Beschreibungen und Balancing-Daten; +- Logos, Symbole, UI-Anleihen, Fanggeräte und Markenauftritt; +- Pokédex-/Speziesdaten, Werte, Evolutionsketten und sonstige abgeleitete Daten. + +Das Gate erfordert anschließend ausschließlich eigene Kreaturen, eigene Lore, eigene Mechanikbezeichnungen und eigene oder ordnungsgemäß lizenzierte Assets. Der Validator in `content-tools` muss ohne Ausnahmen bestehen, bevor eine Publish- oder Release-Aufgabe aktiviert werden darf. + +## Technische Durchsetzung + +- Es wird kein Git-Remote konfiguriert. +- Release- und Publish-Aufgaben sind standardmäßig deaktiviert. +- Private Inhalte tragen maschinenlesbare `privateFanContent`-Markierungen. +- Paketierung für Distribution verlangt eine explizite, geprüfte `publication-cleared`-Manifestdatei. +- Die Freigabedatei wird erst nach einer separaten rechtlichen und inhaltlichen Prüfung erstellt; sie ist nicht Teil des privaten MVP. +