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-11-11 19:25:03 +00:00
|
|
|
- [Windows](#windows)
|
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-11-03 22:04:43 +00:00
|
|
|
* PicoQUIC
|
2021-01-29 17:00:46 +00:00
|
|
|
* FasNoise2
|
2020-07-06 19:18:29 +00:00
|
|
|
* Love and insomnia
|
|
|
|
|
|
|
|
|
|
|
|
<!-- GETTING STARTED -->
|
2020-10-07 10:39:12 +00:00
|
|
|
## Run it
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2021-01-29 17:00:46 +00:00
|
|
|
Get a release compatible with your system window library 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-11-03 22:04:43 +00:00
|
|
|
* OpenSSL 1.1+
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-10-07 10:39:12 +00:00
|
|
|
### Usage
|
|
|
|
|
|
|
|
```sh
|
|
|
|
./univerxel
|
|
|
|
```
|
|
|
|
|
|
|
|
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-11-03 22:04:43 +00:00
|
|
|
* OpenGL, Vulkan and OpenSSL headers
|
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)
|
2021-01-29 17:00:46 +00:00
|
|
|
* Doxygen, graphviz: generate documentation
|
2020-07-06 19:18:29 +00:00
|
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
|
|
1. Clone the project repo
|
|
|
|
```sh
|
2020-10-25 14:50:12 +00:00
|
|
|
git lfs clone --recursive https://framagit.org/univerxel/univerxel.git
|
2020-07-06 19:18:29 +00:00
|
|
|
```
|
|
|
|
2. Create build folder and move
|
|
|
|
```sh
|
|
|
|
mkdir build && cd build
|
|
|
|
```
|
2020-12-02 19:21:40 +00:00
|
|
|
3. Setup CMake
|
2020-07-06 19:18:29 +00:00
|
|
|
```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
|
|
|
|
--- | --- | ---
|
|
|
|
CMAKE_BUILD_TYPE | Level of optimization | `Release`
|
|
|
|
PROFILING | Tracy profiling | `0`
|
|
|
|
LOG_DEBUG | Debug logs | `0`
|
|
|
|
LOG_TRACE | Trace logs | `0`
|
2021-01-20 16:13:15 +00:00
|
|
|
IPO | Link time optimisation | `1`
|
2021-01-29 17:00:46 +00:00
|
|
|
LD_GOLD | Use gold linker | `1`
|
|
|
|
CCACHE | Use code cache | `1`
|
2020-11-10 17:17:21 +00:00
|
|
|
NATIVE | Optimize for native CPU | `0`
|
2021-01-20 16:13:15 +00:00
|
|
|
RENDER_VK | Include Vulkan renderer | `1`
|
2020-10-07 10:39:12 +00:00
|
|
|
|
2020-12-02 19:21:40 +00:00
|
|
|
1. Compile
|
2020-07-06 19:18:29 +00:00
|
|
|
```sh
|
2020-12-02 19:21:40 +00:00
|
|
|
cmake --build . --parallel --target <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
|
2021-01-29 17:00:46 +00:00
|
|
|
PACK=<name> ./compile.sh # Build texture pack dds
|
2020-10-07 10:39:12 +00:00
|
|
|
```
|
2020-07-06 19:18:29 +00:00
|
|
|
|
2020-11-11 19:25:03 +00:00
|
|
|
### Windows
|
|
|
|
|
|
|
|
1. Setup Visual Studio 2017+ with C++
|
|
|
|
2. Clone picotls and picoquic in a separate directory
|
|
|
|
3. Set `%OPENSSL64DIR%` and check `WindowsPort.md` and `Readme.md` note from respective library
|
|
|
|
4. Compile then with MsBuild
|
|
|
|
5. Copy picoquic.lib, picotls-openssl.lib and picotls-fusion.lib to build/libs
|
|
|
|
6. Build univerxel with cmake `-A x64` and MsBuild
|
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-12-02 19:21:40 +00:00
|
|
|
[Public repository](https://framagit.org/univerxel/univerxel)
|