2020-07-06 19:18:29 +00:00
|
|
|
# Univerxel <!-- omit in toc -->
|
|
|
|
|
2020-09-22 20:37:09 +00:00
|
|
|
Work in progress galaxy down to atom (mostly centimeter) online voxel game
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
## Table of Contents <!-- omit in toc -->
|
|
|
|
|
|
|
|
- [About The Project](#about-the-project)
|
|
|
|
- [Built With](#built-with)
|
2020-10-07 10:39:12 +00:00
|
|
|
- [Run it](#run-it)
|
2020-07-06 19:18:29 +00:00
|
|
|
- [Prerequisites](#prerequisites)
|
2020-10-07 10:39:12 +00:00
|
|
|
- [Usage](#usage)
|
|
|
|
- [Build](#build)
|
|
|
|
- [Prerequisites](#prerequisites-1)
|
2020-07-18 12:54:07 +00:00
|
|
|
- [Optionally](#optionally)
|
2020-07-06 19:18:29 +00:00
|
|
|
- [Installation](#installation)
|
2020-10-07 10:39:12 +00:00
|
|
|
- [Additionally](#additionally)
|
2020-07-06 19:18:29 +00:00
|
|
|
- [RoadMap](#roadmap)
|
|
|
|
- [License](#license)
|
|
|
|
- [Contact](#contact)
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ABOUT THE PROJECT -->
|
|
|
|
## About The Project
|
|
|
|
|
2020-09-10 15:42:10 +00:00
|
|
|
Experimental project using OpenGL and Vulkan.
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
### Built With
|
|
|
|
|
|
|
|
* C++
|
|
|
|
* OpenGL
|
2020-09-10 15:42:10 +00:00
|
|
|
* Vulkan
|
2020-07-06 19:18:29 +00:00
|
|
|
* ImGui
|
2020-09-22 20:37:09 +00:00
|
|
|
* ENet
|
2020-07-06 19:18:29 +00:00
|
|
|
* FasNoiseSIMD
|
|
|
|
* Love and insomnia
|
|
|
|
|
|
|
|
|
|
|
|
<!-- GETTING STARTED -->
|
2020-10-07 10:39:12 +00:00
|
|
|
## Run it
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
Get a release compatible with your system window library and processor capabilities, or [build](#build) it
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
2020-09-10 15:42:10 +00:00
|
|
|
* OpenGL or Vulkan driver
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
### Usage
|
|
|
|
|
|
|
|
```sh
|
|
|
|
./univerxel
|
|
|
|
```
|
|
|
|
|
|
|
|
Edit `config.toml`
|
|
|
|
<!-- MAYBE: config description -->
|
|
|
|
|
|
|
|
Profit !
|
|
|
|
|
|
|
|
## Build
|
|
|
|
|
|
|
|
To get a local copy up and running, follow these simple steps.
|
|
|
|
|
|
|
|
### Prerequisites
|
2020-09-10 15:42:10 +00:00
|
|
|
|
|
|
|
* C++17
|
|
|
|
* CMake 3.11
|
2020-09-24 12:11:04 +00:00
|
|
|
* System window headers *(xorg-dev)*
|
2020-09-10 15:42:10 +00:00
|
|
|
|
2020-07-18 12:54:07 +00:00
|
|
|
#### Optionally
|
|
|
|
|
|
|
|
* Python: utility scripts
|
2020-10-07 10:39:12 +00:00
|
|
|
* [Tracy](https://github.com/wolfpld/tracy) v0.7: profiling
|
|
|
|
* [glslc](https://github.com/KhronosGroup/glslang): build vk shaders
|
2020-10-07 20:53:41 +00:00
|
|
|
* Imagemagick: build textures (convert jpg to png)
|
|
|
|
* [Compressonator](https://github.com/GPUOpen-Tools/compressonator): build textures (compress dds)
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
|
|
1. Clone the project repo
|
|
|
|
```sh
|
2020-09-10 15:42:10 +00:00
|
|
|
git lfs clone --recursive https://git.wadza.fr/me/univerxel.git
|
2020-07-06 19:18:29 +00:00
|
|
|
```
|
|
|
|
2. Create build folder and move
|
|
|
|
```sh
|
|
|
|
mkdir build && cd build
|
|
|
|
```
|
|
|
|
3. Build CMake
|
|
|
|
```sh
|
2020-10-07 10:39:12 +00:00
|
|
|
cmake <options> ..
|
2020-07-06 19:18:29 +00:00
|
|
|
```
|
2020-10-07 10:39:12 +00:00
|
|
|
|
|
|
|
CMake options: `-DKEY=VAL`
|
2020-10-25 10:22:32 +00:00
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
Key | Usage | Default
|
|
|
|
--- | --- | ---
|
|
|
|
SIMD_LEVEL | SIMD processor acceleration (sse2, sse4.1, avx2, avx512f) | `avx2`
|
|
|
|
USE_FMA | Fast math | `1`
|
|
|
|
CMAKE_BUILD_TYPE | Level of optimization | `Release`
|
|
|
|
PROFILING | Tracy profiling | `0`
|
|
|
|
LOG_DEBUG | Debug logs | `0`
|
|
|
|
LOG_TRACE | Trace logs | `0`
|
|
|
|
|
|
|
|
1. Build Make
|
2020-07-06 19:18:29 +00:00
|
|
|
```sh
|
2020-10-07 10:39:12 +00:00
|
|
|
make -j<process count> <target>
|
2020-07-06 19:18:29 +00:00
|
|
|
```
|
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
Target | Description
|
|
|
|
--- | ---
|
|
|
|
univerxel | All in one
|
|
|
|
univerxel-server | Standalone server
|
|
|
|
univerxel-client | Light client
|
|
|
|
docs | Doxygen documentation
|
|
|
|
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
#### Additionally
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
5. Recompile Vulkan shaders
|
2020-07-06 19:18:29 +00:00
|
|
|
```sh
|
2020-10-07 10:39:12 +00:00
|
|
|
cd resource/shaders-src
|
|
|
|
./compile.sh # Use glslc
|
|
|
|
GLSL="glslValidator -V" ./compile.sh # Other glslang compiler
|
2020-07-06 19:18:29 +00:00
|
|
|
```
|
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
6. Rebuild textures
|
|
|
|
```sh
|
|
|
|
cd resource/textures-src
|
2020-10-07 20:53:41 +00:00
|
|
|
./compile.sh # Build all texture dds
|
|
|
|
./merge.py <args> # Combine grey images to RGB
|
2020-10-07 10:39:12 +00:00
|
|
|
```
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ROADMAP -->
|
|
|
|
## RoadMap
|
|
|
|
|
|
|
|
See [Features](TODO.md)
|
|
|
|
|
|
|
|
<!-- LICENSE -->
|
|
|
|
## License
|
|
|
|
|
2020-07-25 16:45:03 +00:00
|
|
|
Distributed under the MIT License. See [LICENSE](LICENSE) for more information.
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- CONTACT -->
|
|
|
|
## Contact
|
|
|
|
|
2020-10-25 10:22:32 +00:00
|
|
|
Shu - [/me](https://git.wadza.fr/me) - me@wadza.fr
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-10-25 10:22:32 +00:00
|
|
|
Public releases: [https://framagit.org/univerxel/univerxel](https://framagit.org/univerxel/univerxel)
|
|
|
|
Working repo: [https://git.wadza.fr/me/univerxel](https://git.wadza.fr/me/univerxel)
|