Go to file
haslersn 1796c09ca1 common: Rework volume API
See the doc comments in `common/src/vol.rs` for more information on
the API itself.

The changes include:

* Consistent `Err`/`Error` naming.
  * Types are named `...Error`.
  * `enum` variants are named `...Err`.
* Rename `VolMap{2d, 3d}` -> `VolGrid{2d, 3d}`. This is in preparation
  to an upcoming change where a “map” in the game related sense will
  be added.
* Add volume iterators. There are two types of them:
  * _Position_ iterators obtained from the trait `IntoPosIterator`
    using the method
    `fn pos_iter(self, lower_bound: Vec3<i32>, upper_bound: Vec3<i32>) -> ...`
    which returns an iterator over `Vec3<i32>`.
  * _Volume_ iterators obtained from the trait `IntoVolIterator`
    using the method
    `fn vol_iter(self, lower_bound: Vec3<i32>, upper_bound: Vec3<i32>) -> ...`
    which returns an iterator over `(Vec3<i32>, &Self::Vox)`.
  Those traits will usually be implemented by references to volume
  types (i.e. `impl IntoVolIterator<'a> for &'a T` where `T` is some
  type which usually implements several volume traits, such as `Chunk`).
  * _Position_ iterators iterate over the positions valid for that
    volume.
  * _Volume_ iterators do the same but return not only the position
    but also the voxel at that position, in each iteration.
* Introduce trait `RectSizedVol` for the use case which we have with
  `Chonk`: A `Chonk` is sized only in x and y direction.
* Introduce traits `RasterableVol`, `RectRasterableVol`
  * `RasterableVol` represents a volume that is compile-time sized and has
    its lower bound at `(0, 0, 0)`. The name `RasterableVol` was chosen
    because such a volume can be used with `VolGrid3d`.
  * `RectRasterableVol` represents a volume that is compile-time sized at
    least in x and y direction and has its lower bound at `(0, 0, z)`.
    There's no requirement on he lower bound or size in z direction.
    The name `RectRasterableVol` was chosen because such a volume can be
    used with `VolGrid2d`.
2019-09-06 15:43:31 +02:00
assets Merge branch 'desttinghim/sound-effects' into 'master' 2019-09-06 11:19:32 +00:00
chat-cli Disabled unsafe using lint level. 2019-08-19 14:39:23 +02:00
client common: Rework volume API 2019-09-06 15:43:31 +02:00
common common: Rework volume API 2019-09-06 15:43:31 +02:00
server common: Rework volume API 2019-09-06 15:43:31 +02:00
server-cli Added modular building generation 2019-08-31 11:44:52 +01:00
voxygen common: Rework volume API 2019-09-06 15:43:31 +02:00
world common: Rework volume API 2019-09-06 15:43:31 +02:00
.gitattributes Added LFS config, removed modules 2019-05-03 13:18:14 -04:00
.gitignore gitignore: Add .envrc (direnv config file) 2019-08-14 14:58:41 +02:00
.gitlab-ci.yml Remove all warnings 2019-09-04 19:03:49 -04:00
Cargo.lock Use latest version of Rodio instead of custom branch 2019-09-05 03:04:53 -06:00
Cargo.toml Improved performance and compilation speed for debug builds 2019-05-12 18:43:55 +01:00
CONTRIBUTING.md Add CONTRIBUTING 2019-05-17 01:34:07 +00:00
LICENSE Fix license repo name 2019-04-22 20:32:40 +02:00
README.md Clarify supported platforms in README 2019-06-29 11:45:10 +02:00
rust-toolchain Fix CI problems 2019-07-06 18:03:29 +00:00

Veloren logo on a screenshot

pipeline status coverage report license discord

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!

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

You can download up-to-date builds for Windows and Linux from Gitlab CI pipelines (refer to the Download chapter in the book for more information). As of 0.2, due to rapid developement stable versions are outdated and incompatible with the public server.

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

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.