World is a C++ library and collection of tools used to create a whole, unlimited virtual world using only procedural generation techniques. With a given configuration, the library can generate a large amount of assets (meshes, textures, shaders...) and integrate them all together in a single scene. Then, you can render it with your favorite tool- even in real time!
Please check the World Intro if you want to know more about the library.
- Procedural Content Generation including terrains, trees, grass, rocks...
- Real-time generation, enabling unlimited free exploration
- Automatic level of details management
- A flexible C++ API to craft exactly the world that you want.
The repository also includes:
- VkWorld: Module that uses Vulkan to generate textures using shaders
- World3D: Real-time demo using Irrlicht engine
- Peace: World package for Unity. Embeds a real-time demo too (this is where the screenshot comes from)
There are also a bunch of embryonic packages that are not worth mentioning yet, but might be developped further (Pyworld, blender integration, WorldGUI)
You can download an archive containing the version of the library that is suited to your operating system here. World was compiled for Linux 64 bit and Windows 64 bit. If you are on Windows and you do not use MSVC, you may consider building the library from sources.
The archive contains the required binary files and headers to run World along your project. If you only use World, no dependency is required. Vkworld requires Vulkan to be installed. On Linux with an Intel CPU, you can install Vulkan easily with your favorite package manager:
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-utils
If you can not do that please visit the official page and follow the instructions there. These are really good instructions, I guess.
You can download Peace (World Plugin for Unity) here.
See more about the plugin in the documentation.
You can download a demo of World here.
Pick the version that corresponds to you system. After downloading, unzip the archive
and run WorldDemo.exe
.
Controls are:
- Arrows to move
- Mouse wheel to change speed
- Esc to pause and display overlay with information
- Alt-f4 to quit
See #Build section below.
The World project is built using CMake. All the required dependency to build the core library are included in the repository. Clone it somewhere on your computer, then run the following commands, where WORLD_SOURCE_DIRECTORY is the path to the cloned repository.
mkdir build
cd build
cmake [WORLD_SOURCE_DIRECTORY]
Run:
make
Open the generated .sln
file containing the solution for the whole project.
Then, click on Build > Build Solution
and it will compile all the binaries.
By default, every existing projects in the repository will be built if their required
dependencies are installed. When you run cmake
, it tries to find the dependencies,
and display a message indicating whether it found the dependency or not. If World
does not find the dependency for some reason, you can hint cmake
with the path
where you have it installed:
cmake -DCMAKE_PREFIX_PATH="[PATH_TO_DEPENDENCY_1];[PATH_TO_DEPENDENCY_2]" [... other arguments]
Here is a table of the dependencies for each project:
Project | Required dependencies |
---|---|
World3D | Irrlicht |
VkWorld | Vulkan |
World3D with Vulkan support | Irrlicht, Vulkan |
Peace native libraries | No dependency |
Peace native libraries with Vulkan support | Vulkan |
To install them, you can go on these sites: