A Minecraft clone built with Java, LWJGL, and OpenGL.
- 3D voxel-based world with procedural terrain generation
- Multiple block types with unique procedural textures
- Realistic world generation with bedrock, ore distribution, water levels, and trees
- Texture atlas system with block-specific textures (grass has different top/side textures)
- First-person camera controls with mouse look
- Block breaking and placement with material selection
- Chunk-based world rendering for performance
- Realistic physics with gravity and collision detection
- WASD movement + Space for jumping
- Player spawns on terrain surface automatically
- Java 17 or higher
- Graphics drivers with OpenGL 3.3 support
./gradlew build./gradlew run- WASD: Movement (forward/left/backward/right)
- Space: Jump (only when on ground)
- Mouse: Look around
- Arrow Keys: Alternative camera rotation (↑↓ = look up/down, ←→ = look left/right)
- Left Click: Break blocks
- Right Click: Place selected block
- Number Keys 1-9: Select block type to place
- 1: Stone, 2: Dirt, 3: Grass, 4: Oak Log, 5: Oak Planks
- 6: Cobblestone, 7: Sand, 8: Water, 9: Glass
- Escape: Exit game
- Built with LWJGL (Lightweight Java Game Library)
- Uses OpenGL 3.3 Core Profile for rendering
- JOML for mathematics operations
- Gradle with Kotlin DSL for build configuration
- Chunk-based world with greedy meshing for performance
MineVibe.java: Main application and game loopWorld.java: World management and chunk loadingChunk.java: Individual chunk data and generationChunkRenderer.java: Chunk mesh generation and renderingPlayer.java: Player physics, collision detection, and movementCamera.java: First-person camera implementationInputHandler.java: Keyboard and mouse input processingShader.java: OpenGL shader managementBlock.java: Block type definitionsTexture.java: Texture loading and management