Thank you for your interest in contributing! Make sure to read the Introduction section and if you want the section For Developers. Otherwise feel free to jump around as you need.
There are various ways to contribute to Veloren's development, no matter if you got a degree or taught yourself. Shall it be code, assets, creatures, bug fixes, the book donation or the wiki itself!
Embrace the wiki
We are glad that you want to participate in the collaborative process of cataloging and recording everything about the game.
Extend the book
You can find the source for this book at our GitLab, feel free to make changes, correct errors and add more content.
There are different ways to contribute translations, but the most straightforward way is using git and Rust.
You found a bug and want to report it. Here is how!
The voxel art
We use MagicaVoxel to create Veloren's assets and some sprites for smaller object that don't render well in voxel
The music and SFX
You love working on the ambiance, creating some sound that immerse us to its universe ? Welcome!
See what progress needs to be made an figure out what you'd like to work on!
The DevOps methodologies used in the project.
The language of gods. There is few tutorials for learning Rust. We all started somewhere. ;)
Hosting a server
You may want to add a new Veloren server. We will guide you!
Work in progress
ArtChanny has the most up to date tutorials so they are strongly recommended. How does MagicaVoxel work with Veloren? Usually, 1 voxel in MagicaVoxel is 1 voxel in Veloren. However, this does not apply to all Veloren assets. We have something called sprites, made to represent smaller objects that wouldn’t look good in a 1 for 1 voxel conversion. That’s why they use a 1 for 11 blocks conversion, that’s to say that 1 block in Veloren will be 11 blocks in MagicaVoxel.
Recommended videos to learn more about MagicaVoxel:
Hotkeys and shortcuts:
For big projects:
The best way to contribute audio is to first visit the Discord , ask for a contributor role in the #new-contributors channel, and start a conversation in the #audio channel.
All sound files should be in .ogg format, exported at Variable Bit Rate level 5. The quick and easy way to do this is to export as a .wav, open it in Audacity, and export it again as a .ogg at compression level "5".
There are different ways to contribute translations, but the most straightforward way is using git and Rust. You do not need to compile the game, although debug builds have useful features like hot-reloading for translations, that allow you to translate the game while running it. Tooling to check the status of your translations doesn't require compiling the full game, but it still requires the Rust toolchain. Read this guide on basic tooling (git lfs is important), working with git (git is not most user friendly thing, ask if you don't understand something), compile instructions, and contribution instructions (most important).
Alternatively, you can just work on directly on assets shipped by Airshipper. Beware that updating your game will purge all your work, so think about using the VELOREN_ASSETS_OVERRIDE environment variable.
You can learn Rust while contributing! There are a lot of resources to learn Rust, the Rust book is great https://doc.rust-lang.org/book/. You can also check out our book for how to set up the environment https://book.veloren.net/contributors/index.html.
And also if you have any question about Rust or programming in general you are free to ask in #learning
- The first step is to download and compile the game from source.
- Then find an issue in the issue tracker, or create an issue for something small that you would like to change, add or remove.
- Create a branch.
- Make the changes.
- Test your changes work as intended in game, and that no bugs have been unintentionally added.
- Create a merge request with your changes.
- Post your merge request in the development channel.
- Someone will review your changes, and they might propose some more changes.
- Once everything is good, the changes can be merged into the official builds when appropriate.
- If you have some changes that might be controversial, be sure to discuss the design before hand and get consensus from the core development team, to avoid risking having your changes rejected.
- You can still always experiment on your own branch/fork, just the changes might not be merged into the official builds. Also ask for GitLab and the Discord contributor (developer) role, to gain access to more channels and to CI.
Conference about game development in Rust:
This is useful for anybody with some basic knowledge of OpenGL or DirectX wanting to start working on Voxygen, the 3D frontend: http://gfx-rs.github.io/2016/09/14/programming-model.html