32b2c99109
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. |
||
---|---|---|
.cargo | ||
.github/workflows | ||
.gitlab | ||
assets | ||
chat-cli | ||
client | ||
common | ||
server | ||
server-cli | ||
voxygen | ||
world | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
default.nix | ||
LICENSE | ||
README.md | ||
rust-toolchain | ||
shell.nix |
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!
Useful Links
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.