// PROJECT INFO
// ???
// WORKED ON
// USED
Mini Minecraft
VOXEL GAME ENGINE
NOV 2025
Custom 3D voxel game engine written in C++ and OpenGL. Final project for CIS 4600 (Interactive Computer Graphics) at Penn.

Features I was responsible for:
  • Efficient block rendering and terrain chunking
  • Fast vertex color ambient occlusion
  • Dynamic sky with a day/night cycle, horizon line, and animated stars
  • Realtime shadows
  • Distance fog
  • World curvature shader at high altitude
  • Ambient light color contribution to block faces, based on the time of day
To talk a little more about that last feature: this is an implementation where each block face samples the sky color in the direction of its normal. This sample is then weighted by the time of day, for a stronger warm light at sunset, and is also used to modify our AO color, to create a cheap approximation of occluded areas being lit by blue sky light rather than direct sunlight.
In addition, each block type has an assigned roughness value, so we can control the strength of the ambient color term based on a block's material. For example, ice blocks pick up much more ambient sky color than surrounding stone. This also gives our water a subtle gradient depending on the view angle, and helps to keep it from looking too uniform across the surfaces of large bodies of water.

This system is relatively simple, but, combined with some art direction, it gives us a convincing ambient sky lighting effect and helps our terrain to blend visually with the scene. You can play around with our sky shader here or see the passes of our terrain shader below:
// MINI MINECRAFT
TERRAIN CHUNKING*BLOCK FACE CULLING*AMBIENT OCCLUSION*DYNAMIC SKY*REALTIME SHADOWS*AMBIENT SKY LIGHT
C++*OPENGL*GLSL
~~~CHARLIE WANG*SARAH JAMAL
NNYN