Contributions to Luanti
About
Luanti is a game engine for voxel games. It is free software and distributed free of charge.
My involvement
Luanti is developed by a large community of volunteers, and I am part of it. I have created a lot of things for Luanti and I’m also very active in the forums.
My core involvement in Luanti is not Luanti itself, but by creating a large number of mods and a few games. Some of my projects are forks.
Games
I made or maintain a few games for Luanti. This includes Repixture, Glitch, Hades Revisited, Lazarr! and Eyeballs. I’ve also started MineClone 2 (later renamed to “VoxeLibre”), but I’ve handed over the development to other people.
See the Games page for details.
Mods
I maintain a lot of mods for Luanti. Some of these are my own creations, some are forks, and some of them I have picked up for maintenance. Here are the most noteworthy ones:
Own creations
This section is for mods I have created on my own, or mostly on my own.
Flying Carpet
Fly through the world quickly with a flying carpet.
Easy Vending Machines
Vending machines to buy and sell items on multiplayer servers.
Technically, this mod is actually a fork but it is now so far removed from the original that I count this as an own creation.
Help modpack
The Help modpack is a sophisticated in-game help system consisting of 5 mods. It allows games to add extensive in-game documentation. It’s being used in VoxeLibre.
HUD Bars
Replaces the default “statbars” (icons that show your health, breath, etc.) with progress-bar-like indicators. This mod is being used in a lot of servers.
I also created a few extra mods to support armor and hunger mechanics.
Schematics Editor
A tool to create schematic files which store a part of the Luanti world in a *.mts
file. This tool has been very important for the development of my Luanti games, including MineClone 2 (later called “VoxeLibre”), Repixture and Glitch.
Perlin Explorer
A mod for developers. It is a tool to preview the generation of 2D and 3D Perlin noise using custom parameters. Perlin noise is used in Luanti to create the shape of the terrain, among other teams. I wrote this tool to make it easier to preview the result of world generation. I have also used this tool to build two levels for Glitch.
L-System Tree Utility
A mod for developers and nerds. With this you can spawn structures based on L-systems. This mod doesn’t implement L-systems itself but merely exposes a feature from Luanti. I haven’t used this tool productively yet.
Forked mods
The mods in this section are forks, i.e. derivative works of existing mods from other people. Although not originally by me, I still have put significant work into these.
Rail Corridors
Generates simple rail corridors, mineshafts and loot underground.
Pyramids
Generates pyramids with treasures in the desert.
In my version of this mod, the pyramid interior is random so the pyramids are more unique.
X-Decor-libre
A decoration mod with a couple of gameplay additions such as a workbench, enchanting, cooking and even a functional Chess game.
Originally it was started by Luanti user kilbith (also known as “jp”) with the name “X-Decor” who wrote the initial code and created the initial artwork for the mod. Later, I have forked this mod only to replace a few non-free files to create a fully free software version. But later I have started to work a lot on bugfixes as there were plenty of bugs. I do not add any new decorations for compatibility reasons.
Most notably, I have completely reworked Chess because it was very broken.
Maintained mods
To support the development of others, I have decided to become the maintainer of two existing mods known from the A.E.S. server, mostly for polishing and bugfixes.
Tntrun
Tntrun is a minigame where players spawn on a layer of falling TNT and the last player standing wins.
I’ve added particle and sound effects and tools for level editing.
TNTTag
TNTTag is a minigame in which players “tag” each other with TNT to make them explode when the timer hits 0.
I’ve added explosion particles and sound effects.
More Luanti mods
Other mods I created or maintain include:
- Very small decoration mods such as cups or dice
- Calendar
- Extended tooltips
- Tiny mods that make one simple HUD or gameplay change
- Ancient mods I no longer care about
See my ContentDB profile page and the Luanti Wiki user page for a more complete list.
Core development
I have contributed various improvements and bugfixes to Luanti. Hundreds of changes have been accepted so far and they are all over the place. Here’s a list of highlights:
- Completely reworked the Development Test game: To be more stable and include many more testing items and stuff. Previously, a lot of tests were simply missing and it was quite a mess. With the new Development Test, we found load of previously unknown bugs in Luanti.
- Pathfinder bugfixes: The A* pathfinder, often used by creatures to find a way to their target, was completely broken and needed a full rewrite.
- Made builtin translatable: Builtin is a key component of Luanti that included many texts that were untranslatable before.
- Drawtype improvements: These are more options for how blocks look in the game.
- Fix awkward tool uses bug: Tools had an awkward bug in which the number of times they can be used before breaking was off by between 1 to 32767 times. The bugfix was surprisingly complicated, due to how tool wear works internally
- Allow to modify and disable fall damage per-player
- Decoupled the liquid graphics from liquid behavior
- Add support for relative numbers in chat commands by prepending the tilde character (e.g.
/teleport ~0 ~5 ~0
teleports you 5 block upwards) - Added simplified method to rotate blocks in 4 directions (internally:
4dir
andcolor4dir
) - Added more ways to override player physics
Documentation
I have spent a lot of time working on the Luanti Wiki and Luanti Developer Wiki. I also occasionally added minor improvements to the official Lua API documentation.
Translations
I actively maintain the German translation of Luanti and Minetest Game as well as my own projects (games and mods). I occasionally contribute translations to other mods in the Luanti community.
Development tools
Luanti Translation Tools
I maintain Luanti Translation Tools, a set of scripts to create, update, verify and convert the *.tr
files. These files are used for translations of mods and games in Luanti. I’m using these tools all the time when dealing with my Luanti games and mods; they’ve saved so much time. With the checker tool I have uncovered numerous bugs in translation files of several mods.
The updater tool is a fork from update_translations but I’ve added many features and bugfixes to make it more useful. As of October 2023, this tool has been officially included in Luanti.
LiBPoV
In Luanti, biomes are areas that differ in types of surface and underground blocks (dirt, stone, sand, etc.) as well as vegetation and other extras. Biomes include areas like forests, deserts, jungles, arctic lands, grasslands, savannas, tundras, taigas, etc.
But it’s always a challenge for developers because we have to define for each biome a heat and humidity value but looking only at number, it’s easy to lose track and get things imbalanced, like biomes may have bad borders (like a desert bordering directly to a cold tundra), or being too large or too small.
That’s where LiBPoV (the Luanti Biome Point Visualizer) comes into play. I created this tool which makes it easy to visualize the heat and humidity points by putting them on a Voronoi diagram, making it much easier to design good biomes.
My favourite servers
I like these Luanti servers the most:
- Inside the Box: Solve over mind-bending 200 puzzles. It’s very high-quality, strongly recommend!
- JT2: Classic survival. I’ve been on this server for a very long time
- Catlandia: A heavily modified Minetest Game
- A.E.S.: Minigames