summaryrefslogtreecommitdiff
path: root/README.md
blob: 6bacdea6c08b024675f498314efa022bf7a32c41 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
BOWSHOCK

# CHANGELOG

Read: "CHANGELOG.txt"

# COMPILATION

Bowshock uses CMake as its build system. The standard option CMAKE_BUILD_TYPE
may be set to either "Release" or "Debug", depending on the build type.

The main program is written in C++20, and a conforming compiler is therefore
required. OpenGL 3.2 is used for rendering, and the shaders are therefore
written in GLSL 1.50.

Before compilation, an appropriate GLAD loader must be downloaded from a web
instance. I use the one on dav1d.de, with the following settings:

<https://glad.dav1d.de/#language=c&specification=gl&api=gl%3D3.2&api=gles1%3Dnone&api=gles2%3Dnone&api=glsc2%3Dnone&profile=core&loader=on>

The script "extractGlad.sh" will extract "glad.zip" (or any other archive - if
specified) to "glad". It also copies a CMake lists file to the directory, and
CMake will automatically include this and build GLAD.

Before running - however - the data directory must be installed. This can be
done via the installation script "install.sh":

./install.sh data [data directory]

# DEVELOPMENT

To initialise the environment, I use the following commands:

rm -fr build && \
rm -fr bindir && \
rm -fr datdir && \
./extractGlad.sh && \
cmake -Bbuild -DBOW_DATA_DIRECTORY="${PWD}/datdir" -DCMAKE_BUILD_TYPE=Debug . && \
./install.sh data "${PWD}/datdir"

... and from there just use the following to build the project:

clear && \
./validateShaders.py && \
cmake --build build && \
build/bowshock/bowshock --skip

## SHADER VALIDATION

The shaders at bowshock/shader may be validated using the Python script
"validateShaders.py". If the shaders contain errors, and these are not fixed
before installation, the program will fail to compile them during run-time.

# INSTALLATION

The script "install.sh" will install the executable, the assets, the shaders...
to the specified directories:

./install.sh [build directory] [binary directory] [data directory]

# MIRRORS

mandelbrot.dk (main): <https://mandelbrot.dk/bowshock>
GitLab:               <https://gitlab.com/bjoernager/bowshock.git>
GitHub:               <https://github.com/bjoernager/bowshock.git>


# CREDITS

Read: "CREDITS.txt"