I think the most annoying bug in Minetest is broken entity translucency. Although it was finally addressed as of last month, it suffered from a number of setbacks over the course of 6 years. Perhaps it could be characterized as the "Most Cursed Bug of Minetest".
#1. The Backstory
Entity translucency was originally added to the engine in June of 2018 during development of the 5.0 branch. However, in a curious twist of fate, the feature was broken only a few months later. By December of 2018, a decision was made to hard-code the alpha channel cutoff for transparency to 0.5 in order to support the OpenGL ES driver in Irrlicht. That one seemingly innocuous change had the unintended side-effect of making translucent entities completely invisible when their opacity was less than 50%.
Fix more transparency issues with ogles2 driver #8005
In May 2020, I asked on the forums whether there was a known bug with entity translucency, because I couldn't figure out how to get
use_texture_alpha to work under Minetest 5.3. Of course, by this time it had already been two version cycles since the feature was first broken, but I had no idea whether or not it had ever worked correctly.
use_texture_alpha for entities? - Minetest Forums
At first I assumed it might be a regression. After all, a related bug had been reported in April of 2020 in which the newly added shaders in Minetest 5.2 had broken entity translucency. (Sigh) Perhaps you getting the impression by now that this feature was just doomed to never work correctly?
Entity use_texture_alpha broken after 6958071 (Basic model shading) #9637
Given that the underlying issue was still not resolved, I filed a bug report on GitHub in June of 2020. Thankfully, someone (far more knowledgeable about OpenGL and shaders) proposed
a very simple solution. I crossed my fingers that a quick turnaround might be in order, since the fix entailed only a few lines of code.
#2. The Timeline
Despite my earnest expectations for a speedy resolution, entity translucency remained broken for 4 YEARS. Not only that, but it was still being documented as working across six "stable" versions, despite not actually working.
- Minetest 5.0 -- feature merged and working
- Minetest 5.0 -- feature broken
- Minetest 5.1 -- feature still broken
- Minetest 5.2 -- feature broken again (by new shaders)
- Minetest 5.3 -- feature "fixed" to previous broken state, yet documented as working
- Minetest 5.4 -- feature still broken, yet documented as working
- Minetest 5.5 -- feature still broken, yet documented as working
- Minetest 5.6 -- feature still broken, yet documented as working
- Minetest 5.7 -- feature still broken, yet documented as working
- Minetest 5.8 -- feature still broken, yet documented as working
Fast forward to January 2024. Someone on IRC asked whether there was a known bug with entity translucency. Nobody responded, so the person opened a new issue on GitHub. My original issue (which described the exact same bug) remained open and oustanding.
Alpha-blending entities disappear completely when enable_shaders=false and alpha <= 127 #14204
Meanwhile, this new issue garnered immediate attention. Not only was it given the High Priority label, but a PR was submitted by a core dev within just 4 days. The total turnaround time after review and approval was less than one week. So, that's six years of entity translucency being broken due to a minor oversight, and the entire "fix" was but a mere 11 lines of code.
ContentCAO: Fix threshold of alpha channel textures #14213
To add to the perpetual "fate" of this feature, it then took an additional five weeks for anyone to even discover that this new issue was in fact a "duplicate" of my original issue, so it wasn't actually closed until mid-February.
#3. The Roadmap
According to the official
Minetest Roadmap on GitHub:
Notice that for rendering and graphics improvements, the priority is supposed to be fixing issues -- only then are fancier features like shadows, lighting, etc. to be worked on. Yet that's not what happened. Instead all sorts of cool and fun graphical effects were being incorporated into the engine while entity translucency (a basic capability of any modern 3D game engine) remained broken.
- Godrays & Volumetric Lighting -- merged Dec 2023
- Modder Control of Fog Distance -- merged Jun 2023
- Bloom & Dynamic Exposure -- merged Sep 2022
- Dynamic Shadows -- merged Jan 2022
- Animated Particlespawners -- merged Jul 2022
Interestingly enough, this roadmap was officially adopted and published only five months after I had reported that translucent entities were broken. So there was clearly justification and incentive not only to resolve that longstanding bug, but to prioritize it before these other rendering and graphic improvements.