These weeks in Veloren 246

24 minute read17 April 2025Feb 24 -> Mar 15

Authored by horblegorble

En Gard β€” by EatherBone

Hold onto your hats for this leg of our journey through time, as we experience the highs and lows of airship travel, race for mushrooms, and step into the mirror-verse.

- horblegorble, TWiV Contributor

Contributor work

Thanks to everyone who contributed to veloren these last weeks: @isse, @Supa, @Tarhun, @Gemu, @UncomfySilence, @unii, @juliancoffee, @souffle, @JimmyDdotEXE, @xMAC94x, @imbris, @floppy, @DaforLynx, @FERIIXU, @horblegorble, @alerty264, @pat36, @GeekyGami, @hnrq, @Crabo, @fnetx, @NeuralModder, and @MStarK3002.

Thanks to the weblate translators who contributed these last weeks: alxr1795, Axag, Benny, Carrotism, celestineprower, Daxik2x, Diamons, Dinariossa, DiXiao, EatherBone, Endoril, evgenkot, fnetX, Furrior, jls, LagerJack, lucius_pilgrim, marcelodemonn, MaxSoniX, ministergoose, muhaaliss, nekoedges, Paw, pivoezhka, Positron832, RuGod, Schmarotzer, tdehtyar, Virtex, and andVladisSlave.

Merged work

Eyes on the flightpath

It has been brought to the attention of Airloren management that some of our captains have, at times, been somewhat distractable from their piloting duties. We understand that reports have been made of impulsive steering, anger management issues, and an outsized fear of fireballs. While these claims are likely to be exaggerations of hesitant flyers, this is a good time to remind our passengers of Airloren's total commitment to flight safety. To ensure that any extent of un-captainly conduct remains grounded, we engaged the services of behaviour expert @isse to resolve these matters. Our patrons can rest assured that Airloren remains the safest cross-map transit system in all of Veloren. Any rumours of crashed airships have no documented connection to the Airloren fleet.

πŸ”Š Two very different (alleged) flights

When lofty freedoms met untethered guidance β€” by (left to right) @Supa, @Froggy, @horblegorble, @Supa

Alongside her consulting services to Airloren, @isse also delivered some updates to the moral and monetary navigation systems of other NPCs:

  • Saving a downed NPC will improve their sentiment towards you, but they won't tell other NPCs about it (perhaps out of embarrassment or bruised honour).
  • New pricing formulae for traveller hiring, where adventurer level goes from zero (greenhorn) to three (experienced):
    • day = 60 * 2 ^ (adventurer level)
    • week = 300 * 2 ^ (adventurer level)

Gitlab: !4760

Sky-bound sprites

Those long airship cruises are now a lot easier on the eyes and bum, with comfy new sprites from @Supa. For the utility-minded amongst you, there's also a helm and rope for all your aeronautical needs.

Do you dare to find out what lies under public transport seating?

If the captain is getting weary, be ready to tie them to the wheel

Lantern lighting to get hooked on

Gitlab: !4762 + !4812

Deck the hulls

Pre-dawn light is only just beginning to colour the shapes of the town below. Your scrunched eyes make out the form of some busy-body scurrying about the street as they make an overly enthused start to their day. Perhaps they find a special joy in filling the void of these early morning hours. You do not.

But, there are some thing that promise chase of a different joy - a Frost Gigas sighting just outside a city some leagues away. Only a couple of weeks ago this would have meant an even earlier rise, and a relentless pace through all manner of terrain to arrive with some degree of timeliness. So, while cold, your feet are thankful they only have to stand at the docking port of an airship tower. Their gratitude does not hold up against a chilling fog that rolls in, and you shuffle back to the meagre shelter of some stacked crates, peeking over to watch for your ship's arrival.

At very long last it comes into view and settles in to dock. You jog a little on the spot to shake off the morning thaw, and head over to jump onto the wing. You begin with the awkward clamber and claw up to the rear deck, followed by a stub of the toe as you try to find a seat in the poor lighting. At least now you can rest and maybe catch a nap, in the comfort of a narrow wooden chair that tilts ever so slightly to the leftβ€”wait, isn't this the one you were losing cards in at the tavern last week?

Halfway into the flight, the captain yells out a sighting of a cult-ish looking person down below, who was probably-definitely the one that killed their uncle's sister's niece's dog. Your chair goes from slight tilt to forward lurch as the ship pitches down into a nosedive. You do not reach the Frost Gigas fight.

Well friends, you can breathe a sigh of relief as this harrowing tale retires into memory with the completed renovations of the entire airship fleet. Their updated design is sporting all kinds of nifty features:

  • Direct wing-to-hull boarding, prototyped by @Tarhun and refined by @Gemu
  • Rear viewing platform to take in all the scenery, courtesy of @Gemu
  • Warm and cozy seats and lights, jointly installed by @Tarhun, @Supa, @isse, and @Gemu
  • Brand new decking to give that bit of character, laid down by @Gemu

To maximise passenger comfort, @Tarhun also made some bespoke cruising speed adjustments to match your most pleasant gliding experiences.

Step by step, the sun sets on the old

A spokesperson for Airloren denied rumours that the remodelling of its fleet is part of any re-branding efforts, and is unrelated to recent media reports of captain misconduct.

Gitlab: !4775 + !4794

Metallic makeovers

Forging new fashions, the one-man armoury that is @Gemu has pumped the bellows to bring in a complete refresh of the metal lineage of armours. The trend-setting orichalcum set also gets some shiny new embroidery in its cape. So get your head in the game, with helmets now available across the board. And don't worry, this gear can tank the barrage of admiring looks you're sure to get.

Heavy and dull, but it can take a punch.

Sturdy and unyielding, across ages of war.

The metal alloy plates provide better protection and comfort.

Ornamental and impenetrable, the metal will never dull.

Forged to preserve life, at the cost of another.

An ancient alloy. Myths remain of heroes who wore this metal.

Lugging around all these voxels was more than an all-the-grocery-bags-at-once scenario. Shipping and handling was sorted out by @UncomfySilence, with @unii providing stat redistributions and @juliancoffee advising on localisation.

Gitlab: !4765 + !4786

Mirror, mirror, in the code

A sprite is just implemented as a special kind of block, right? Well, some of them have been yearning to live outside the box. In a case of breaking up to break free, woodland town furnishings went under the knife of surgeon @Supa to prepare for a more composable future. You may have seen the corner cases of this operation while the stitches were assembled to bring them back together. Here are @isse's reflections on developing the mirrored modularity for that recovery:

In preparation for more tile-able sprites I added an attribute for sprites to be able to mirror them.

At first I had an issue with the sprites turning inside out when mirrored.

But got it working with some clever shader code.

An excerpt of <span class='mention'>@isse</span>'s shader code, with an image below of the 'clever girl' meme from the movie 'Jurassic Park'

Clever girl

If you played the game this last month you might've noticed that chairs were rotated wrong, beds and tables were just one corner... That's because we updated most of the town sprites to be tile-able, but hadn't updated the code yet. Which was the next thing I started working on, expanding our system to generate composed sprites from when I added the lanterns earlier. I added some methods for placing both one, and two dimensional tile-able sprites. Examples of one dimensional are benches, wardrobes and bookshelves. And two dimensional are tables and beds.

I got some interesting beds while coding this.

But got it working eventually. So try our new beds with a "roommate"!

Gitlab: !4758 + !4768

Bed and Bookfest

Books and bodies can rest easy with new furniture models from @unii. In light of the sprite mirroring changes, they have all been sliced and diced into tiled pieces. See if you can spot the seams.

Hard, soft, wood, stone. Could start counting choices to fall asleep

Bookshelves: where they go to sleep between being read

Gitlab: !4764

Instrumentally, my dear Watson

New sounds of triumph have been filling the chambers of demoted bosses, and joining in the concerts and parades of victory back in town. Meet the latest additions to your boastful ensemble:

  • Starlight Conch: a honking great idea from @floppy, with @Gemu's model touch ups
  • Viola Pizzicato: hand plucked by @DaforLynx, modelled by @floppy and recoloured for a blood-red vibe by @Supa
  • Timbrel of Chaos: what began as a tambourine by @floppy, @Gemu transformed into the Mindflayer's instrument of pain
  • Rhythmo: keys, lights, and banger boops by @floppy - do you reckon it could run DOOM?

πŸ”Š Beat-ing bosses

Gitlab: !4772 + !4816

Paving the way

@isse had always heard plenty of advice about watching where you step, but nothing on what to do when you don't like what you see. So she took her own ideas to the town planning hall for a much prettier outcome. Plazas and paths play by the new rules in all towns, though mesa/cliff ones are skipped in these photos for brevity.

Some will miss the impromptu mud baths on a rainy day

Much easier to sweep away the latest sandstorm

If the earth is good enough for building, it's good enough for walking

Gitlab: !4749

Change what you can control

Though Veloren has been developed with keyboard and mouse front of mind for the most part, we hold no grudge against our gamepad compatriots. @JimmyDdotEXE opens that door a little further by making their controls much easier to navigate.

No illusions of control here

Gitlab: !4436

You asked, they answered

Cracking into the archives, @xMAC94x went digging for questions asked of the Tutorial bot on the official server in days gone by. These forgotten lessons have been passed on to a new generation of 'proper' NPCs. See if you can catch them in a chatty mood.

Wisdoms of the crowd

Gitlab: !4771

Going places

Ever catch the travel bug, but the thought of all that planning just makes you feel sick? Don't worry, @souffle has got a solution for your impulsive fancies:

There now exists a /goto_rand command available to admins to teleport to a random position.

Mind the terrain

Gitlab: !4698

Getting the message

Say no to character screen FOMO, with a message queue implemented by @imbris that will catch those previously fugitive chat entries.

Finishing each other's haiku

This was created as one part of the arsenal deployed in a manhunt for an elusive /tell notification that was never quite sure who wanted to talk to who. A search party of additional logging eventually tracked down the filtering accomplices, who gave up the notification to be humanely 'removed' from the codebase. Whispers of fear have become audible in the open issue list as marshal @imbris counts up yet another successful pursuit.

Gitlab: !4777

Keeping the flames in check

Any experienced Veloren player will know that the dramatic effect power (secret stat) of a shockwave is all in the timing, so @Supa was surprised to see that two of the heavy hitters in the Dwarven Mines were jumping the gun. After taking them back through drama class lessons, they were quick to catch on (but not too quick now).

Before (left) and after (right) for Flamekeeper (top) and Forgemaster (bottom)

Gitlab: !4805

Zoomies, chill out

@FERIIXU arrived with their first MR✨ to fix an issue raised in mid-January by @imbris. While either on-screen buttons or the + and - keys do the job of mini-map zooming, the latter would show up with much more enthusiasm to the job.

Well behaved click buttons, and their (previously) cheeky keyboard cousins

The behaviours of both methods are now aligned with the more well-behaved approach, along with clamping guard rails. Improved logging and some comments for future developers also leave behind some tasty breadcrumbs.

Gitlab: !4761

More changes:

  • orientation and movement modifiers added to each stage of melee abilities, for future balancing - @srpapinha - !4753
  • readability improvements were (carefully) made to physics code - @xMAC94x - !4763
  • sword's bloody gash ability no longer gives energy regen - @unii - !4745
  • soldier crabs scuttled out from under the sahagin dungeon floor - @horblegorble - !4729
  • fixed game crash caused by slicing multi-byte characters in non-English languages - @alerty264 - !4755 ✨
  • broken matrix user count badge removed from readme - @JimmyDdotEXE - !4623
  • typo fix in economy testing code - @pat36 + @xMAC94x - !4766 ✨
  • lints can now be configured across the entire cargo workspace - @imbris - !4769
  • credits and licensing added for @GeekyGami's music tracks - !4767
  • removed old toggle_keybinding_mode from voxygen - @hnrq - !4773 ✨
  • large horn added to NPC trading stocks - @Crabo - !4754
  • improvements for new inventory methods - @imbris - !4757
  • fixed "Uid was not mapped to any entity" client error; included airships in rtsim ID map - @imbris - !4776
  • added find_unused binary to check for unusable loot tables, loadouts, items, or recipes - @isse - !4779
  • applied most compatibility lints in preparation for moving to rust 2024 edition - @imbris - !4770
  • fixed up syntax changes that could have caused server crash, with new tests added - @isse - !4785
  • various improvements to the sever event system - @imbris - !4782
  • de-aliased a conflict in NPC translations - @fnetx - !4788
  • fix for Cargo.lock - @NeuralModder - !4800
  • fixed hot reloading warnings caused by rust 2024 edition changes - @isse - !4791
  • added check for git LFS pointers in CI job to resolve recurring issue - @MStarK3002 + @imbris - !4797
  • window size update limited to window resize event - @isse - !4810
  • well-fed bear config moved: common.entity.wild.peaceful.bear -> common.entity.spot.bear - @souffle - !4809
  • wolves got faster and tougher - @Supa - !4804
  • new message-of-the-day variations for singleplayer worlds - @horblegorble - !4815

Ongoing unmerged work

Fresh shoots on the bow skill tree

Spring is beginning to arrive for the bow as its skill tree starts to leaf out in full colour. The new season brings on-the-fly arrow modifications and a variety of formations to draw from. You can look back at where the discussion started, then checkout the Gitlab bow branch to see what @Sam has honed in on. We look forward to the final fletching.

Bow and tell with neighbourhood 'volunteers'

Notching up a mood board

This is the 4th of the weapon skill tree reworks, and the first of the ranged weapons.

Discussions

Translation migration

Winds of a different kind of season change have been blowing across the Discord plains as of late. Getting ahead of the weather, the translation working group has moved its operations over to Veloren's Zulip server, specifically the #wg-translation channel. If you're new in town, feel free to drop into this #New contributors thread first. And for folks hesitant to try out Zulip, the #new-contributors channel of our discord is still a good runway for your translation take-off.

Airship evolutions

A new RFC has docked at our Gitlab, ready to load up on your well-considered feedback. @Tarhun lays out the charts for all things airships:

  • Docking infrastructure and local destination maps
  • Destination and route distributions, to meet the needs of a public transportation network
  • Finding the right fleet numbers, including multiple ships on extra long routes
  • Resolving matters of turbulence and friction to make it safe to move about in-flight

Notable offsets relative to the captain

As mentioned in an earlier section, progress has already been made on matters of boarding and airspeed. You can also join in the discussion on Discord, which has so far covered air resistance and player vs airship interpolation.

Locking on to what matters

@GeekyGami prompted a discussion on having lock-on mechanics, which brought in @Sam to spell out some of the core 'tenets' of combat in Veloren. Here's the short and sweet:

  • Preparation is key: scouting the layout, enemies, and hazards of an area, then picking the right gear and strategy to go with
  • Players are not special from other humanoid NPCs: capabilities, strengths, and weakness are shared by all
  • The power gap between early-game and 'end-game' characters is not very large
  • Most combat choices have some inherent trade-offs: a benefit has a downside, or takes from a fixed budget

Community showcase

Concept art

First-hand accounts of various explorations in voxel space. A mix of things intended for use in-game, and more experimental ideations.

Not a child-friendly sand pit β€” by @Gemu

A high-res iron chakram β€” by @SrKStarK

Arboreal artistry β€” by @Gemu

Of brew and bottle β€” by @unii

Carpet Challenge

Calling all rugged adventures! Sheath your sword, grab a cuppa, and take a seat at the voxel loom - @Supa has an artistic call to arms for you to meet. Flex your skills of symmetry by weaving together colours for a tiling carpet design. You can download this .vox file as a reference, but don't feel it has to constrain your aesthetic ambitions. Here is the display room so far:

Target practice for a sleepy head β€” by @Sam113

New crosshair designs perhaps? β€” by @Joe_Cool

Fractal form over function β€” by @Jachobi ✨

Having some fun

Doom and gloom β€” by @souffle

The latest in legoom fashions β€” by @unii

Intellectual property infringement, or baby Danari in a mech suit? β€” by @Dan113

Events

Pre-planned events hosted on the official server (server.veloren.net). You can keep an eye out for future announcements on the discord channel.

Shroom Cup 2

Mush! Mush! β€” by @Hrom

Spores of racing fever were in the air as the day warmed up for the 2nd Shroom Cup. A downhill slope from Primore took drivers through treacherous mesa terrain before levelling out to a stretch of undulating dunes to reach the finish line at the Bridge of Blodelic. Competitive spirits were fired up with passengers free to use any weapon against opposing vehicles (or terrain). To keep things from getting into too much truffle, the races were officiated by @Gemu as the overhead umpire, who was piloting the aptly named 'Flying Dutchman'.

Morning shadows kept shifting the starting line β€” @horblegorble

In the heat of the moment β€” by @Gemu

View from the referee's sky cam β€” by @Gemu

Now that's pile driving β€” by @Gemu

The much calmer, post-racing lineup β€” by @Gemu

To let off pre-sprint steam, some drivers took turns behind the wheel of a 'safety' cart, putting its all-terrain features to the test across desert dunes and mesa cliffs. A few brave riders clung on behind in the 'very-much-not-safety' trailer. The many twists and twangs of the tether eventually came to a rest at the foot of what seemed to be a regular old savannah tree. But history will remember it well as the birthplace of Veloren's space program. Some have raised doubts about the capabilities of a supercharged trailer-trampoline to achieve orbital velocity, while proponents claim that further cheese and player testing will prove out the technology.

Bounce for the stars! β€” @horblegorble

Screenshots

Before the shroom cup, Primore's peaceful panorama β€” by @Iskava

No time to chill out β€” by @Gemu

Almost a whole tree β€” @horblegorble

On the wing to Waoubi β€” by @EatherBone

Looking in on tavern tales β€” @horblegorble

The night lines of Venton β€” by @souffle

Some honest branding β€” @horblegorble

Fall before the throne β€” by @Alley_Oop

Sun-rise living β€” by @Supa

This developer blog is based on information collected in #blog-content, where game contributors are always invited to communicate their updates or simply post a link to a different channel.

A very well fed @Crabo. Stay hungry for the next one :)