Skip to content

Richy-Z/ThreatenGL

Repository files navigation

CodeFactor Modrinth Downloads

🤬 ThreatenGL

Welcome to ThreatenGL!

ThreatenGL is a Minecraft mod that takes a stand against the outdated OpenGL version 3.2, threatening Minecraft to use the more modern version 4.6. This mod aims to explore the effects of this change.

Minecraft: "please... anything but that!" 😰

ThreatenGL: "opengl version 4.6, or else!" 😡🔪

ThreatenGL Banner

🤨 What's the deal?

ThreatenGL is about testing the effects of changing the OpenGL version, and potentially enhancing your experience. By threatening Minecraft to switch to OpenGL 4.6, this mod aims to investigate how OpenGL version changes affect the functioning of your GPU. Users have reported smoother gameplay and better frame rates, especially on newer devices.

For a more detailed description of what this does, please visit the GitHub repository. (Mod developers, please read this to understand the mod in-depth!)

⚙️ How does it work?

ThreatenGL works its magic by tinkering with Minecraft's internals. By injecting some code into the game's graphics setup process, it convinces Minecraft to opt for OpenGL 4.6 instead of the old 3.2. This simple tweak has the potential to make a difference in how the game performs, as some GPU manufacturers like to use different, specific profiles for different OpenGL versions in their drivers. (I have no idea why they do that, but I'm guessing its for compatibility)

📥 Installing the Mod

Installing this mod is as simple as putting it inside the mods directory of Minecraft.

Since 1.3.2-beta.1, ThreatenGL no longer requires any more additional libraries!

Installing versions before 1.3.2-beta.1 (Not recommended) Please note that 1.3.1-beta.1 is completely broken on all platforms, do NOT use that version.

If you really want to install an earlier version for some reason, there will be some dependencies:

Fabric and NeoForge have always worked without any additional dependencies.

🔒 Will this mod work for me?

This mod will NOT do anything if your hardware does not support OpenGL 4.6.

On macOS, this mod will force OpenGL 4.1 instead of 4.6 as Apple deprecated OpenGL in favour of Metal starting with macOS Mojave (10.14) and has not updated it since.

The OpenGL 4.6 specification was released on July 31st, 2017. Generally, this mod should work if:

  • you have an Nvidia Graphics Card from 2012 and upwards (Nvidia Kepler and above are supported)
  • you have an AMD Graphics Card from 2012 and upwards (AMD GCN and above are supported)
  • you have any Graphics Card which currently actively receives driver updates
  • you have any Graphics Card which used to receive driver updates up until or after the release date of the OpenGL 4.6 specification

Incompatibility with other mods

The table below lists mods that were reported as incompatible with ThreatenGL, and whether you should keep the said mod over ThreatenGL or not.

In case it is not clear, a signifies that you should remove the other mod and keep ThreatenGL. A is vice versa.

Mod Name Keep, over ThreatenGL? Reason(s)
Early Loading Screen (and similar mods) Early Loading Screen and ThreatenGL are incompatible because they both attempt to mess around with the initialising OpenGL window. In this case, I advise keeping Early Loading Screen because (for me, at least) it fills the boring void between clicking "Play" in your Minecraft launcher and actually seeing the Minecraft window pop up.

❗Notes

This mod has undergone extensive testing to ensure that it is stable and won't explode your device. There are no issues so far, however, it is important to note that this is an experiment, as we are threatening Minecraft to use an OpenGL version that it is clearly not meant to run. Mojang has their reasons for still using OpenGL 3.2, even in Minecraft 1.21 in 2024, but I don't really agree with them (mainly because I'm unaffected by the lack of backwards compatibility with newer OpenGL versions)

That being said, please report any issues with your logs, the mods and resource packs you are using, etc attached to the issue, and I will take a look at it. There may not be much that I can do though because this mod is very simple, it only changes the OpenGL version and absolutely nothing else. Plus, I develop plugins for Minecraft servers and not mods for Minecraft clients so my knowledge is partially limited, although I am willing to learn. :)

ℹ️ Other Information & For those interested in the source code

This mod uses Semantic Versioning 2.0.0 to differentiate between different mod iterations.

Before modifying the source code and trying to compile, please edit the gradle.properties file and modify the following line:

From:

org.gradle.jvmargs=-Xmx8G

To:

org.gradle.jvmargs=-Xmx2G

This will reduce the amount of memory (RAM) given to Gradle, and is a highly recommended step for development if your device has less than 12GB of memory.

Happy tinkering! 🔨