first commit
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
|||||||
|
# Third-party source (has its own repo)
|
||||||
|
jmonkeyengine/
|
||||||
|
|
||||||
|
# Node
|
||||||
|
web/node_modules/
|
||||||
|
web/dist/
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Original binaries (kept locally only)
|
||||||
|
Original/
|
||||||
|
|
||||||
|
# Extracted raw assets (converted versions live in web/public)
|
||||||
|
extracted/
|
||||||
|
|
||||||
|
# Temporary
|
||||||
|
/tmp/
|
||||||
|
*.log
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# 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 Spinnen. Bei 10% Kill-Chance droppt ein
|
||||||
|
heilendes Kreuz. Cel-Shading-Look, Wellen werden alle 10 Sekunden stärker.
|
||||||
|
|
||||||
|
## 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 Feuerball, Rechtsklick Schwert, M3 Hände tauschen,
|
||||||
|
E Teleport, H Hitboxen (Debug)
|
||||||
|
|
||||||
|
## Verzeichnisse
|
||||||
|
|
||||||
|
- `Original/` — Original-Build (Blobtest.exe, JME3-Libs)
|
||||||
|
- `extracted/` — Aus dem Original extrahierte Assets
|
||||||
|
- `decompiled/` — Decompilierter Java-Source
|
||||||
|
- `web/` — Browser-Version
|
||||||
Reference in New Issue
Block a user