1
0
Fork 0
Univerxel/README.md

162 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

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`
IPO | Link time optimisation | `1`
2021-01-29 17:00:46 +00:00
LD_GOLD | Use gold linker | `1`
CCACHE | Use code cache | `1`
NATIVE | Optimize for native CPU | `0`
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)