]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - README.md
Add oceans and toggle keys for flight & collision
[dragonblocks_alpha.git] / README.md
1 # Dragonblocks Alpha
2
3 A multiplayer voxelgame for POSIX systems.
4
5 Head to <https://www.elidragon.com/dragonblocks_alpha/> for snapshot and release builds.
6
7 ## Invocation
8
9 ```bash
10 ./DragonblocksServer <port>
11 ./Dragonblocks <address> <port>
12 ```
13
14 or alternatively:
15
16 ```bash
17 ./singleplayer.sh
18 ```
19
20 ## Controls
21
22 Use W, A, S and D to move forward / left / backward / right and Space to jump.
23
24 ## Dependencies
25
26 The client depends on GLFW3, OpenGL, GLEW and Freetype.
27
28 ```bash
29 sudo apt install libgl1-mesa-dri libglfw3 libglew2.1 libfreetype6
30 ```
31
32 The server depends on SQLite3.
33
34 ```bash
35 sudo apt install libsqlite3-0
36 ```
37
38 both the client and the server depend on ZLib.
39
40 ```bash
41 sudo apt install zlib1g
42 ```
43
44 ## Current Features
45 - Multiplayer
46 - Map generation with mountains and blended biomes that determine grass color
47 - Physics
48 - FPS Camera
49 - Mipmapping, Antialiasing, Shaders
50 - HUD
51 - Saving the map to a SQLite3 database
52 - Multithreading for map generation, mesh generation and network
53 - Handlers for SIGINT und SIGTERM (just Ctrl+C to shut down the server)
54
55 ## Usage
56
57 ### Server
58 The server currently stores all the world files (currently only map.sqlite) in the current working directory, and it will stay like that.
59 If you want to have multiple worlds, just run the DragonblocksServer process from different directories.
60 It's up to you how you organize the world folders, which is an advantage since the program really just "does one thing well"
61 without having to search your system for share directories or maintaining a world list (like Minetest does).
62
63 ### Client / Singleplayer
64 The Dragonblocks client itself does not and will not have a Main menu. It goes against the already mentioned UNIX philosophy to have a binary
65 that does multiple things at once. For now, there is a singleplayer script that launches a server and a client, and in the future a launcher
66 will be added that is used to do all the stuff that users nowadays don't want to do themselves, like showing you a list of worlds and launching the
67 server in the correct directory, as well as updating the game and managing game versions for you. It's gonna do the ugly `~/.program_name`, but you
68 wont't have to use it if you don't want to.
69
70 ### Modding
71 Dragonblocks Alpha does not and will most likely never have a modding API. If anything, a Lua plugin API will be added.
72 It would be possible to have a native modding API for a C project (as demonstrated by [dungeon_game](https://github.com/EliasFleckenstein03/dungeon_game)),
73 but it would remove simplicity and, most importantly, remove optimisation possibilities.
74 The way you are meant to mod dragonblocks is by simply forking it on github and modifiying the game directly. To use multiple mods together, just git merge them.
75 If there are conflicts, the mods would likely not be compatible anyway.
76
77 ## Project Goals
78 The name "Dragonblocks _Alpha_" does not have anything to do with the game being in early development (which it is tho), it's just the game's name.
79
80 ### What Dragonblocks Alpha aims to achieve
81 - A voxelgame inspired by Minecraft and Veloren, with the techical side being inspired by Minetest
82 - Exciting and feature-rich gameplay with the focus on exploring and adventuring, while still being multi-optional and not too bloated
83 - A simple structure and invocation syntax
84 - Using modern OpenGL to combine performance with graphics quality on high-end computers
85 - Portability between PCs running POSIX systems (various Linux Distributions, BSD, MacOS, Plan 9)
86
87 ### What Dragonblocks Alpha does not aim to achieve
88 - Portability to Windows or Phones / Consoles
89 - Good performance on low-end PCs
90 - A fixed story or lore
91 - Cloning Minecraft behavior
92 - Replacement for Minecraft and / or Minetest
93 - An engine