Go to file
Joshua Yanovski 32b2c99109 Horizon mapping and "layered" map generation.
Horizon mapping is a method of shadow mapping specific to height maps.
It can handle any angle between 0 and 90 degrees from the ground, as
long as know the horizontal direction in advance, by remembering only a
single angle (the "horizon angle" of the shadow map).  More is explained
in common/src/msg/server.rs.  We also remember the approximate height of
the largest occluder, to try to be able to generate soft shadows and
create a vertical position where the shadows can't go higher.

Additionally, map generation has been reworked.  Instead of computing
everything from explicit samples, we pass in sampling functions that
return exactly what the map generator needs.  This allows us to cleanly
separate the way we sample things like altitudes and colors from the map
generation process.  We exploit this to generate maps *partially* on the
server (with colors and rivers, but not shading).  We can then send the
partially completed map to the client, which can combine it with shadow
information to generate the final map.  This is useful for two reasons:
first, it makes sure the client can apply shadow information by itself,
and second, it lets us pass the unshaded map for use with level of
detail functionality.

For similar reasons, river generation is split
out into its own layer, but for now we opt to still generate rivers on
the server (since the river wire format is more complicated to compress
and may require some extra work to make sure we have enough precision to
draw rivers well enough for LoD).

Finally, the mostly ad-hoc lighting we were performing has been (mostly)
replaced with explicit Phong reflection shading (including specular
highlights).  Regularizing this seems useful and helps clarify the
"meaning" of the various light intensities, and helps us keep a more
physically plausible basis.  However, its interaction with soft shadows
is still imperfect, and it's not yet clear to me what we need to do to
turn this into something useful for LoD.
2020-04-02 02:46:36 +02:00
.cargo use gold linker instead of cc which is rust default for linux, which increases Compilcation by about 30% 2019-11-21 20:18:10 +01:00
.github/workflows Angelonfira/test action macosx build 2020-02-14 00:19:06 +00:00
.gitlab add: CODEOWNERS file 2020-03-06 19:10:27 +01:00
assets Add audio and chat message feedback when the player attempts to collect something while thier inventory is full. 2020-03-11 10:30:59 +00:00
chat-cli Add uid to Player component 2020-03-08 22:58:38 +01:00
client Horizon mapping and "layered" map generation. 2020-04-02 02:46:36 +02:00
common Horizon mapping and "layered" map generation. 2020-04-02 02:46:36 +02:00
server Horizon mapping and "layered" map generation. 2020-04-02 02:46:36 +02:00
server-cli auto-generated docker image for server-cli based on kaniko like i researched for torvus and correct release branch detection: 2020-02-26 17:08:46 +01:00
voxygen Check for the mousedown state before trying to collect an item via secondary mouse click. 2020-03-11 15:39:46 +09:00
world Horizon mapping and "layered" map generation. 2020-04-02 02:46:36 +02:00
.gitattributes Add a default world map. 2020-01-23 18:18:15 +01:00
.gitignore Map saving, soil production, speedup attempts. 2020-01-23 18:18:10 +01:00
.gitlab-ci.yml Made the CI fail if Cargo.lock isn't up-to-date 2020-03-10 23:32:33 +01:00
.rustfmt.toml Workaround for rustfmt bug that affects waylands source generation in clean builds 2020-02-03 18:34:52 +00:00
Cargo.lock Horizon mapping and "layered" map generation. 2020-04-02 02:46:36 +02:00
Cargo.toml Fix all warnings. 2020-01-23 18:18:16 +01:00
CHANGELOG.md Add audio and chat message feedback when the player attempts to collect something while thier inventory is full. 2020-03-11 10:30:59 +00:00
CONTRIBUTING.md Add CONTRIBUTING 2019-05-17 01:34:07 +00:00
default.nix Revert "Added to systems directory" 2019-10-04 23:53:10 +00:00
LICENSE Fix license repo name 2019-04-22 20:32:40 +02:00
README.md Update readme with signup link. 2020-03-08 22:57:02 +01:00
rust-toolchain update toolchain to 2020-02-09 22:58:01 +01:00
shell.nix Revert "Added to systems directory" 2019-10-04 23:53:10 +00:00

Veloren logo on a screenshot

pipeline status coverage report license discord lines of code

Welcome To Veloren!

Veloren is a multiplayer voxel RPG written in Rust. Veloren takes inspiration from games such as Cube World, Minecraft and Dwarf Fortress. The game is currently under heavy development, but is playable.

Development

Currently the communication of contributors happens mainly on our official Discord server. You can join it to keep up with the development, talk to us or contribute something yourself. Anyone who shows genuine effort to help is welcome in our team. You don't have to know how to program to contribute!

Sign Up - Here you can create an online account for Veloren. This will be needed to play on auth-enabled servers, including the official server.

The Book - A collection of all important information relating to Veloren. It includes information on how to compile Veloren and how to contribute.

Future Plans - Go here for information about Veloren's development roadmap and what we're currently working on.

Official social media and websites

Get Veloren

Currently we provide 64-bit builds for Linux and Windows which can be downloaded on the official website: https://www.veloren.net

Note: Mac and 32-bit systems are supported but you need to compile the game for them yourself.

Due to rapid developement stable versions become outdated fast and might be incompatible with the public server.

If you want to compile Veloren yourself, take a look at the How to Compile Guide in the book.

Packaging status

Fedora

COPR repo: sudo dnf copr enable atim/veloren -y && sudo dnf install veloren -y

Arch

AUR Airshipper: yay -Syu airshipper-git

AUR latest binary release: yay -Syu veloren-bin

AUR latest release: yay -Syu veloren

AUR latest master: yay -Syu veloren-git

F.A.Q.

Q: How is this game licensed?

A: It's free to play, modify and distribute. Forever. Since it is a community project, we decided to license it under the GNU GPL 3.0 license which means it will always stay free and open source.

Q: What platforms are supported?

A: Veloren can run on Windows, Linux and Mac OS on all architectures (although x86_64 is our main focus). It's probably possible to compile Veloren on/for BSD, Fuchsia and others as well.

Q: Do you accept donations?

A: To keep Veloren a passion project free from financial incentives we will only accept donations to cover server hosting expenses. There is no way to donate yet.

Credit

Many thanks to everyone that has contributed to Veloren's development, provided ideas, crafted art, composed music, hunted bugs, created tools and supported the project.

Sponsorship

We are extremely proud to be sponsored by Digital Ocean.

Their support allows us to build and reliably power our shared backend services.