Skip to content

A procedurally created voxel world with modern C and OpenGL 3/4

License

Notifications You must be signed in to change notification settings

Xeais/ProcVoxWorld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProcVoxWorld

A huge procedurally generated voxel world with coherent graphics

ProcVoxWorld from a bird's eye view Many different biomes, again, from a bird's eye view These are some nice trees.

Screencast

Presentation of ProcVoxWorld by a YouTube-Screencast

Some Features

  • Almost infinite multithreaded world generation
  • Six different biomes, each with a unique heightmap
  • Player physics (on land plus in water)
  • Voxels (alternatively: blocks) can be deleted and placed freely.
  • SQLite-database to store map and player information.
  • Depth of field (smooth/non-smooth)
  • Motion blur
  • Day-night cycle (including dusk)
  • A configuration file (INI) to change various parameters without recompiling.

Controls

  • WASD = Move player forth/back and left/right.
  • Tab = Toggle fly mode.
  • Shift = Run mode or fly up
  • Ctrl = Sneak or fly down
  • Hold key Up/Down = Increase/decrease fly camera speed.
  • Space bar = Jump or emerge
  • C = Camera zoom
  • P = Toggle debug picture in picture view for shadow maps.
  • Left mouse button = Delete block.
  • Right mouse button = Place block.
  • Mouse scroll wheel = Change build block.
  • Esc = Release the cursor.

Supported Platforms

The release versions run with ...

  • Windows 10/11: 👍 plus ...
  • POSIX-compliant operating systems:
    • most Linux distributions: 👐 and ...
    • macOS: 👐.

👍 = tested, okay | 👐 = not tested, but most likely
👉 https://stackoverflow.com/a/31865755/

Line-up of Dependencies

Dependency Version Source
GLFW 3.3.6 vcpkg (I compiled the library myself.)
glad 0.1.35 Webservice
cglm 0.8.4 GitHub-Release (see above, GLFW)
TinyCThread 1.2 GitHub
ini 0.1.1 GitHub
stb_image 2.27 GitHub
SQLite 3.37.0 Vcpkg
FastNoise Lite 1.0.3 GitHub-Release

Explanatory notes:

  • Rule: If the dependency offers one or more releases, go for the latest one unless it is several years behind the main branch.
  • This file and the directory structure for the dependencies (based on the example of vcpkg) were created on January 21, 2022.

Requirements

  • Windows 10 (Version 21H1) – only tested with that version
  • Requires an up-to-date Windows 10 SDK; version 10.0.20348.0 does the job. Windows 11 with its SDK (from version 10.0.22000) should also be functional as development platform.
  • If you set up your own development environment, you should also be able to work with ProcVoxWorld under Linux or macOS.

  • All dependencies are already included.
  • No include pathes / other pathes have to be adjusted because macros are used in the Visual Studio solution (.sln) file. While it's certainly possible to get it working with another IDE (see: third spot right above), with Visual Studio 2019 and up (Community is completely sufficient) it will be the easiest, as the project was obviously created with it.

About

A procedurally created voxel world with modern C and OpenGL 3/4

Resources

License

Stars

Watchers

Forks

Languages