Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heyallnorahere/basic-voxel-engine
A Minecraft-like voxel engine, written in C++.
https://github.com/heyallnorahere/basic-voxel-engine
cmake cpp cpp17 imgui opengl opengl46 voxel-engine voxel-game voxel-terrain vulkan vulkan-game-engine
Last synced: 26 days ago
JSON representation
A Minecraft-like voxel engine, written in C++.
- Host: GitHub
- URL: https://github.com/heyallnorahere/basic-voxel-engine
- Owner: heyallnorahere
- License: apache-2.0
- Created: 2021-08-07T05:46:56.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-17T02:20:31.000Z (about 3 years ago)
- Last Synced: 2024-01-29T02:26:02.121Z (11 months ago)
- Topics: cmake, cpp, cpp17, imgui, opengl, opengl46, voxel-engine, voxel-game, voxel-terrain, vulkan, vulkan-game-engine
- Language: C++
- Homepage:
- Size: 1.62 MB
- Stars: 7
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# basic-voxel-engine [![Build status](https://img.shields.io/github/workflow/status/yodasoda1219/basic-voxel-engine/build)](https://github.com/yodasoda1219/basic-voxel-engine/actions/workflows/build.yml) [![Total alerts](https://img.shields.io/lgtm/alerts/g/yodasoda1219/basic-voxel-engine)](https://lgtm.com/projects/g/yodasoda1219/basic-voxel-engine/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/yodasoda1219/basic-voxel-engine)](https://lgtm.com/projects/g/yodasoda1219/basic-voxel-engine/context:cpp)
A Minecraft-like voxel engine, written in C++. To use the library on its own without the application, include this repository as a submodule in your project, add it to your build via CMake's `add_subdirectory()`, and link against the `basic-voxel-engine` target.
## Project Structure
- `src`: core C++ BVE code and assets
- `BasicVoxelEngine`: core C# scripting library
- `BasicVoxelEngine.Content`: C# BVE content (blocks, etc.)
- `vendor`: submodule dependencies## Dependencies
Submodule dependencies can be synced by running `git submodule update --init --recursive`. The following projects, however, need to be installed manually:
- [mono](https://www.mono-project.com/download/stable)\*
- [Vulkan](#installing-vulkan)
- [Python 3](https://www.python.org/downloads/)\* On Arch Linux, the `mono` package is outdated. Install `mono-git` from the AUR and `mono-msbuild` from the Community repository instead.
## Installing Vulkan
On Windows, MacOS X, and Ubuntu, run [this Python script](scripts/setup_vulkan.py) to install Vulkan. Otherwise, install Vulkan from [here](https://vulkan.lunarg.com/sdk/home).
## Building
This project uses [CMake](https://cmake.org). To configure, run:
```bash
cd path/to/repo/basic-voxel-engine
cmake . -B build $(python3 scripts/cmake_options.py)
```
To change the graphics API in use, tack on a definition for `BVE_GRAPHICS_API` with the value being your preferred graphics API. Please do note that OpenGL is generally considered deprecated, and because of this, textures don't exactly work. If you absolutely need to use OpenGL, open an issue and I will work on it.