Introduction
Luanti (formerly Minetest) 5.10.0 has been released just three months after 5.9.0 in accordance with the new release schedule. Just in time to be used in the 2024 Luanti Game Jam, too!
Highlights include a content browser redesign, support for the modern glTF model format, gettext translation support, new visual effects, an API for per-player objects, usability improvements, and more.
You can download Luanti from our website. As always, the full changelog can be found here.
Table of Contents
- Content Browser Redesign
- glTF Support
- gettext Translations
- Visual Effects
- Per-player Objects
- More Highlights
- Conclusion
Content Browser Redesign
Luanti’s built-in content browser was redesigned to be more user-friendly and appealing, presenting content (mods, games, and texture packs) in a grid.
You can now also view the details for a package, similar to the ContentDB web interface:
glTF Support
Until now, Luanti developers had to choose between two antiquated file formats for animated 3D models (.b3d
and .x
)
which have poor support in modern software and are difficult to work with.
Luanti now supports the modern glTF file format, which allows for seamless exports and imports with modeling software such as Blender or Blockbench. It also allows developers to easily drop in freely-licensed glTF assets from the internet.
Clients need to be version 5.10.0 or above to see glTF models, and support is still a bit rough around the edges, but feature parity with existing model file formats has already been achieved and better support is planned for the future.
gettext Translations
Luanti finally supports the standard gettext .po
and .mo
translation file
formats! These formats are much easier to manage via external tools such as Weblate, and also provide more options for
translators (such as correct plural forms). The custom .tr
translation file format is still supported, but we highly
recommend migrating to gettext (see Translations API)
if you don’t plan to support client versions older than 5.10.0.
Visual Effects
Even more eye candy has arrived for players to enjoy! Among the list of options are simple liquid reflections and waves, translucent foliage, node specular highlights, softer clouds, and tinted shadows. This post’s cover image features these effects.
Per-player Objects
Developers can now control which player(s) an object is sent and shown to with
object:set_observers()
. For example, the
Capture The Flag server uses this for nametags which
can only be seen by teammates. It could also be used to implement in-world interfaces or displays that only the desired
player can see.
This implementation is entirely server-side, so only the server needs to be 5.10.0 to support this feature. Clients do not need to upgrade to support this change.
More Highlights
- Communicate across threads: The new IPC API allows Luanti server Lua environments to freely share data between all environments (server, async, and mapgen) via a key-value store, making async and mapgen environments more powerful and easier to use.
- Bulk LBMs let you run loading block modifiers on all the matching node positions in a mapblock at once with
the
bulk_action
property. get_player_control()
now exposes joystick direction (as X and Y axes). This may be especially useful for vehicles or arcade-inspired games.- Mobile users will notice a grid menu in place of the button bar, as well as improved GUI scaling.
- Server & content list search now requires all keywords to match.
- Smooth scrolling can be toggled with a new setting.
Conclusion
Check out the full changelog for other minor features and bugfixes. Development has resumed on 5.11.0, with work being done on improving moving object performance, custom touchscreen layouts, a new UI API, and more. Feel free to get involved!
Cover image by Gefüllte Taubenbrust.