Where Forest Meets Village — a 2D OpenGL environmental simulation
Zero Point renders a split world: a dense forest in the upper-left, a quiet village in the lower-right, and a diagonal river between them. The world transitions between day and night, changing lighting, color palette, and active wildlife.
| Zone | Elements |
|---|---|
| Sky | Sun/moon, drifting clouds, stars, birds |
| Forest (upper-left) | Trees, layered grass, deer (night), fireflies (night) |
| Village (lower-right) | Houses, windmill, clothesline, fence, cat (day) |
| River (diagonal) | Bresenham banks, animated flow streaks |
| Key | Action |
|---|---|
Space |
Toggle day/night |
Esc / q / Q |
Quit |
Auto cycle: day/night toggles about every 10 seconds.
- Day/night rendering with different tones and active entities
- Smooth animation loop (~16 ms timer) for clouds, birds, windmill, cat, deer, and fireflies
- Classic graphics algorithms:
- Bresenham line drawing (river banks)
- DDA line drawing (fence)
- Midpoint circle (sun/moon)
- 2D transformation use cases: translation, rotation, and scaling
- CMake 3.10+
- C++20 compiler
- OpenGL
- GLUT/FreeGLUT
Install dependencies (Debian/Ubuntu example):
sudo apt install build-essential cmake freeglut3-devBuild and run:
cmake -B build
cmake --build build
./build/ZeroPointInstall dependencies (Homebrew example):
brew install cmake freeglutThen build and run with the same commands above.
Use Visual Studio (or another CMake-capable toolchain) with OpenGL + GLUT available in your environment, then:
cmake -B build
cmake --build build --config ReleaseRun the produced ZeroPoint executable from the build output directory.
