Pandora’s Blocks

With floating islands, wispy plants, otherworldly trees, and breathtaking skies, Mini Minecraft is an interactive 3D world exploration and alteration program in the style of the popular computer game Minecraft, created from scratch in C++ in collaboration between three students over the course of five weeks. We took style and aesthetic inspiration from Avatar’s Pandora.

I was responsible for implementing the following:

  • Efficient Terrain Rendering
    • Implemented chunks to process VBO data
  • Procedural Cave Systems
    • Uses 3D Perlin noise function
  • Procedurally-Placed Assets (trees, flowers)
    • Small coded objects that spawn procedurally as chunks are drawn
    • Cave Environments: procedurally-placed cave plants and cave vines (vary in height, location, etc)
    • Plants: biome-specific i.e. blue plants in spiky mountains, lily flowers in islands biome
    • Hard-coded trees that grow on grass, hard-coded palm trees that grow on sand
  • Raycast Sky
    • Palettes for times of day that interpolate based on look vector.
    • Color also gradiates depending on proximity to horizon.
    • Day/Night Cycle, including sun and moon that move across sky and time of day color blending
  • Player Fluid Physics
    • Water/lava will not collide with player. Instead, new physics rules allow the player to swim.
    • Fluid Overlay
      • Post-processing effect that tinges the player’s camera when submerged.
  • L-Systems (trees, logs)
    • Uses Turtle and L-System class to parse axioms and draw rules
    • Implemented Bresenham’s line algorithm to create blocks out of L-system decided coordinates
  • Custom Textures and Objects
    • Responsible for drawing and uploading all non-Minecraft-specific textures.
    • Also created new objects, including plants and blocks.

Source Code

Below is our final project video.

More stills from the project!