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

2.8 KiB
Raw Blame History

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

Starten

Einfach index.html über einen lokalen Webserver öffnen (ES-Module brauchen http://, kein file://):

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. 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.