Files
Wackelpeter/README.md
T

2.4 KiB

Wackelpeter

Browser-Port des 2012er jMonkeyEngine-Spiels "Wackelpeter" (Blobtest).

Übersicht

3D Arena-Survival-Spiel: Der Blob "Wackelpeter" kämpft mit Schwert und Feuerball-Stab gegen Wellen von Monstern. Bei 10% Kill-Chance droppt ein heilendes Kreuz. Cel-Shading-Look, Wellen werden alle 10 Sekunden stärker.

Monster: Spinnen (ab Welle 1), Geister (ab 3), springende Frösche (ab 4), Schleime (ab 5, teilen sich), Fledermäuse (ab 5), Pilz-Türme (ab 6), Krabben (ab 7), Bienenschwärme (ab 7) und alle 5 Wellen ein Boss-Golem.

Restaurierung

Das Original lag nur kompiliert vor (Blobtest.exe + JME3-Libs). Der Source wurde per CFR-Decompiler wiederhergestellt (siehe decompiled/), die Modelle aus dem JME3-Binärformat .j3o extrahiert und nach glTF/GLB konvertiert.

Konvertierungs-Pipeline

  1. j3o_converter/ — Java-Programm (JME3 via Maven) lädt .j3o-Dateien und exportiert Mesh, Skeleton, Animationen und Materialien als JSON. Ausführung via Podman:
    podman run --rm -v $(pwd)/j3o_converter:/work:Z \
      -v $(pwd)/extracted:/extracted:Z \
      -v $(pwd)/web/public/models:/output:Z \
      -w /work docker.io/library/gradle:8-jdk17 bash -c '
        gradle --no-daemon installDist &&
        java -cp "build/classes/java/main:build/install/j3o-converter/lib/*" \
          J3OConverter /extracted/Models/spider/spider.mesh.j3o /output/spider.json'
    
  2. j3o_json2gltf.py — konvertiert das JSON zu glTF 2.0 (.glb) mit Skeleton und Animationen (Keyframes werden mit der Bind-Pose kombiniert, da JME3-Tracks relativ zur Bind-Pose sind).
  3. ogre2gltf.py — Alternative für Modelle mit Ogre .mesh.xml/.skeleton.xml.
  4. j3o_parser.py — experimenteller Python-Parser für das .j3o-Format (durch die Java-Lösung ersetzt).

Web-Version

cd web
npm install
npm run dev
  • Three.js + TypeScript + Vite
  • Steuerung: WASD bewegen, Space springen, Maus zielen, Linksklick Schwert, Rechtsklick Feuerball (per Skill), Q Kettenblitz (per Skill), E Teleport (per Skill), H Hitboxen (Debug)
  • Roguelike-Skillsystem: Kills geben XP, bei Level-Up pausiert das Spiel und bietet 3 Skill-Karten (neue Skills oder Upgrades). Seed (Startmenü) steuert die Angebote, "Nochmal spielen" behält den Seed bei.

Verzeichnisse

  • Original/ — Original-Build (Blobtest.exe, JME3-Libs)
  • extracted/ — Aus dem Original extrahierte Assets
  • decompiled/ — Decompilierter Java-Source
  • web/ — Browser-Version