Files
minecraft-clone/README.md
T
minecraft-cloneandClaude a748724dfb fix: dark pixels in water texture + update README
Wasser-Tile hatte 2 dunkle Pixel: ein LEAVES-2x2-Block (Seed 333, Offset 15)
blutete 1px ueber die Tile-Grenze in die erste Wasser-Spalte. Fix: Dekor-
Offsets (LEAVES 2x2, STONE-Adern 2x1) auf TILE_PX-size begrenzen, so dass
keine Bloecke mehr ins Nachbar-Tile bluten. Verifiziert: 0 blutende Bloecke.

README: Steuerung aktualisiert (Shift = Sprint/Runter statt Ctrl) sowie
neue Grafik-Features (Schatten, baked AO, Post-Processing) und config.js
ergaenzt.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-21 01:11:31 +02:00

77 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Minecraft Clone
Ein browserbasierter Voxel-Sandbox-Clone mit **Three.js** und prozeduraler Weltgenerierung.
Ohne Build-Step – läuft direkt im Browser über CDN-Module.
![Screenshot](screenshot.png)
## Starten
Einfach `index.html` über einen lokalen Webserver öffnen (ES-Module brauchen `http://`, kein `file://`):
```bash
cd minecraft-clone
python3 -m http.server 8080
# Browser: http://localhost:8080
```
> Das Projekt liegt unter `…/stacks/web/html/minecraft-clone` und wird i. d. R. schon
> vom Web-Stack ausgeliefert.
## Features
- **Weltgenerierung**
- FBM-Terrain (fraktaler Noise)
- **Biome**: Plains, Wald, Wüste (über Temperatur-/Feuchtigkeit-Noise)
- **Höhlen** über 3D-Noise
- **Wasser** auf Meereshöhe
- **Bäume** (Stamm + Blattkrone), chunk-übergreifend
- **Blöcke**: Grass, Dirt, Stein, Sand, Holz, Blätter, Wasser, Bedrock
- **Abbauen** (Linke Maustaste) und **Setzen** (Rechte Maustaste) per DDA-Voxel-Raycast
- **Streaming**: Chunks werden um den Spieler dynamisch geladen/entfernt
- First-Person-Steuerung mit Gravitation, Kollision, Springen, **Fly-Modus** & Schwimmen
- **Grafik**: dynamische Schatten (PCF Soft), baked Vertex-Ambient-Occlusion
(Smooth Lighting) und Post-Processing (Bloom + ACES Tone-Mapping / sRGB)
## Anpassen
Alle Einstellungen – Render-Distanz, Grafik-Effects (Schatten/Bloom/AO), Beleuchtung,
Spieler-Physik, Welt-Seed, Meereshöhe, Maus-Sensitivität u. a. – liegen zentral in
[`js/config.js`](js/config.js). Werte ändern, Seite neu laden, fertig.
## Steuerung
| Taste | Aktion |
|---|---|
| `WASD` | Laufen |
| `Maus` | Umsehen |
| `Leertaste` | Springen / im Wasser aufsteigen |
| `Shift` | Sprinten / im Flug nach unten |
| `Linke Maustaste` | Block abbauen |
| `Rechte Maustaste` | Block setzen |
| `1`–`6` | Block in der Hotbar wählen |
| `F` | Flug-Modus ein/aus |
| `Esc` | Maus freigeben / Pause |
## Architektur
| Datei | Verantwortlichkeit |
|---|---|
| `index.html` / `style.css` | Markup, UI (Overlay, Hotbar, Crosshair, HUD), Importmap |
| `js/constants.js` | Block-/Biome-/Atlas-Konstanten, Tile-Mapping |
| `js/config.js` | Zentrale Einstellungen (Grafik, Performance, Spieler, Welt) |
| `js/rng.js` | Seeded PRNG (mulberry32) + Hashes |
| `js/noise.js` | Noise-Funktionen (Terrain, Biome, Höhlen) + FBM |
| `js/textures.js` | Prozeduraler 16×16-Texturatlas |
| `js/worldgen.js` | Terrain, Biome, Höhlen, Wasser, Bäume |
| `js/mesher.js` | Face-Culling-Meshing → opake + transparente Geometrie |
| `js/world.js` | Chunk-Storage, Block-Zugriff, Streaming, Mesh-Verwaltung |
| `js/player.js` | Bewegung, Gravitation, AABB-Kollision, Fly/Schwimmen |
| `js/raycast.js` | DDA-Voxel-Raycast (Amanatides & Woo) |
| `js/input.js` | Tastatur-/Maus-Input + Pointer-Lock |
| `js/main.js` | Scene/Renderer/Licht, Game-Loop, Interaktion, HUD |
## bewusst weggelassen (Out of Scope)
Crafting, Gegner/NPCs, Erze.