f009789c427eb7155d7120f6b02ee6ead6ce67a4
Visuals:
- PCFSoftShadowMap (2048²), directional light follows player with a tight
shadow frustum (SHADOW_AREA) for high texel density; opak blocks cast+receive,
water receives.
- Baked vertex ambient occlusion ("smooth lighting"): per-vertex solid-neighbor
lookup (0fps algorithm) written into a color attribute, with flip-triangulation
to avoid brightness seams across quad diagonals.
- EffectComposer: RenderPass -> UnrealBloomPass (subtle) -> OutputPass with
ACES filmic tone-mapping + sRGB. HalfFloat render target (anti-banding) + MSAA.
Controls:
- Sprint moved from Ctrl to Shift (Ctrl is problematic in browsers). Shift in
fly mode still means "descend" (no conflict, sprint only applies when walking).
config.js:
- New central js/config.js for all tweakable values (world, performance,
renderer/tone-mapping, sky & fog, camera, lighting, shadows, bloom, AO,
player physics, mouse sensitivity, reach) with SHADOWS_ENABLED / BLOOM_ENABLED
feature toggles. Structural engine constants stay in constants.js.
- SEA_LEVEL / WORLD_SEED moved constants.js -> config.js (consumers rewired).
Co-Authored-By: Claude <noreply@anthropic.com>
Minecraft Clone
Ein browserbasierter Voxel-Sandbox-Clone mit Three.js und prozeduraler Weltgenerierung. Ohne Build-Step – läuft direkt im Browser über CDN-Module.
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-cloneund 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
Steuerung
| Taste | Aktion |
|---|---|
WASD |
Laufen |
Maus |
Umsehen |
Leertaste |
Springen / im Wasser aufsteigen |
Shift |
im Fly nach unten |
Strg |
Sprinten |
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/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.
Description
Procedural Minecraft clone — Three.js voxel engine
6.6 MiB
0 Stars
1 Watchers
0 Forks
Languages
JavaScript
87.8%
CSS
10.6%
HTML
1.6%