This Week In Veloren 115

5 minute read12 April 2021

Authored by AngelOnFira

This week, lots of work has been done on combat audio. We also take a deep dive into Veloren's financials, as well as a newly-provisioned dedicated server.

- AngelOnFira, TWiV Editor

Contributor Work

Thanks to this week's contributors, @xMAC94x, @Ceikry, @XVar, @juliancoffee, @Sam, @VincentFoulon80, @Sharp, @Pfau, @aweinstock, @DaforLynx, @law4x, @hqurve, @imbris, @BuildTools, @Snowram, @mdx97, @davidruizagustin2002, @ccm7676, @UMR1352, @zesterer, @Desttinghim, @romulans, @James, and @kimamb!

This month's Rust Gamedev blog is out, be sure to check it out!

@Sam overhauled loot tables to allow them to recursively reference other loot tables in addition to items. @Destinghim added travelers back into the game and made them follow paths. @Ceikry added a setting for resetting inputs when chat is opened. They also added ctrl-click and shift-click info to item tooltips when trading, and updated the book slightly. @Ceikry also improved trading sanity by making sure the server denies active trades in the case that a player logs out during a trade.

@Ultimafounding has some plans for some new music in the next few weeks. There is also a lot of other audio content coming in from @Flashbang, @DaforLynx, @Aeronic, @badbbad, and @alfy. Songs have also been revamped for distribution over biomes.

@Pfau has been working on some new map mode button visuals. @aweinstock made villagers, guards, and merchants able to drink potions and eat food.

@juliancoffee fixed a bug in localization tests which caused them to incorrectly find lines of keys in .ron files. Now if tests are showing that there are some untranslated fields, they are really untranslated and not just a false positive.

Combat Audio by @aweinstock

I extended the music system to support combat music. Previously, there was an activity field for the soundtracks that could be either Explore or Combat, but nothing was making use of the Combat state. With my changes, the field is now music_state, and can be either Activity(x) or Transition(x, y), where x and y are in {Explore, Combat(Low), Combat(High)}.

The system tracks how many nearby hostile enemies there are, and heuristically determines whether the player is in combat, and if so, how intense the combat is, to select a track to play (and the corresponding transition snippet for that track). Currently, the only combat music is @DaforLynx's "Barred Paths", which plays in dungeons, but the system is general enough to support another biome, site, and time-of-day dependent combat music.

Veloren financials by @AngelOnFira

Recently, another big push was made towards provisioning our own dedicated server for Veloren's general use. Currently, we have a cloud server at Hetzner that we use to host the game server, as well as a server in Digital Ocean to host our auth, Airshipper CDN, and some other items.

The idea of this dedicated server is that it will allow us to lay the foundations for future federated server clusters all around the world. As the project grows, more players will want to play on the servers, and geo-located hardware will be necessary. Further, the number of services that Veloren makes use of will also go up. Here is a list of some items:

- Website
- Wiki
- Book
- Auth
- Airshipper CDN
- Veloren test server
- CI
- Grafana
- Prometheus
- Main game server
- Discourse

Now not all of these items need to be hosted by us, and many are distributed, like CI. But historically these have all been hosted on donated compute from the contributors. Lots of this can be re-deployed onto a dedicated server.

After doing an audit of how our financials are looking month to month, I created a spreadsheet that should encompass everything. This process helped clear up a few discrepancies:

  • The amount we're paying for bandwidth from Digital Ocean will increase further if we keep using their CDN.
  • A mistake was made in several previous Digital Ocean invoices, which has been since resolved.
  • Many of our services are distributed over many different servers that aren't necessarily controlled by the Veloren core team.
  • We had no tracking of our monthly revenue, compared to how much we spend in operation costs.

You can check out the spreadsheet here. I also created a more formal proposal and reasoning document for the dedicated server. You can see that document here. Hopefully, this financial progress can help lead us to have a better handle while we move forward on further server provisioning.

A small fire at night