top of page

Simple Miner

Simple Miner is a Minecraft-inspired three-dimensional procedural world generation system supporting infinite world scalability, noise-based terrain generation, and biome systems. It is the final project made with the personal C++ game engine.

Biomes

Biomes are determined through a multi-layered Perlin noise system incorporating parameters such as temperature, altitude, moisture, and erosion. Each biome exhibits distinct surface block compositions and vegetation distributions. For example, desert biomes feature sand-based terrain with sparse cactus placements, while jungle biomes are characterized by dense grass surfaces and abundant jungle tree coverage.

Infinite World

The world is partitioned into equal-sized horizontal chunks. As the player moves, chunks beyond the render distance are unloaded while new chunks within render distance are loaded and populated. Chunk loading operations execute on a separate thread to ensure smooth gameplay performance and prevent frame rate degradation.

Saves

Players can excavate and place basic block types within the world. Upon modification, affected chunks are flagged and persisted locally for subsequent play sessions. The save system employs run-length encoding to optimize storage efficiency, recording tile sequences as block type and repeat count pairs. For example, a sequence is represented as "stone 10, gold 1, stone 12," consolidating adjacent tiles of identical type into single entries with occurrence counts.

Weather and Light Propagation

A day-night cycle system dynamically modulates sky light coloration throughout gameplay. Sky light propagation is implemented using a negative heat map algorithm to distribute illumination across the world. Additionally, fog effects are rendered at the render distance boundary, providing visual smoothing during chunk loading and unloading transitions.

Gameplay Feature

A distinctive feature implemented for this project is an integrated fluid and weather simulation system. Fluids propagate through random horizontal displacement and gravitational descent through air. Thermal exchange occurs between adjacent blocks; when block temperatures reach specified thresholds, phase transitions are triggered. Water undergoes freezing into ice or snow depending on spatial context (grounded or airborne), or evaporation into vapor. Evaporation increases chunk humidity; when humidity exceeds a threshold, precipitation is triggered. Humidity gradually diffuses from cooler to warmer chunks, creating dynamic climate variation across the world.

屏幕截图 2025-12-16 140637.png
bottom of page