Skip to content

Instantly share code, notes, and snippets.

@estyseesghosts
Last active July 14, 2021 22:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save estyseesghosts/4c18d795411b3d5c03cce87c999da781 to your computer and use it in GitHub Desktop.
Save estyseesghosts/4c18d795411b3d5c03cce87c999da781 to your computer and use it in GitHub Desktop.
Making your favourite LWJGL game run better on low-end hardware

Optimizing Minecraft 1.16

Got bored and decided to make this d:

Minecraft is a pretty badly optimized game, especially on lower end or older machines. Thank God it has an active modding community (:

These steps are for 1.16.5, if you play an older version they may or may not work for you, YMMV

Device I made and tested this on is a Surface Go 2 with an m3-8100Y (Fanless dual core) and 8GB RAM.

Before: 0 fps lmao

After: 100 fps

1 - Mods

Adding mods that improve the games performance

Step 1 - Install Fabric Loader from here and let it create a new profile in your Minecraft launcher

  • These mods will NOT work with Forge. Don't get confused and complain when you add these mods to a Forge profile and it doesn't work.

Step 2 - Take that new profile and give it it's own folder like so

Step 3 - Launch the game with that profile once, so that it generates all the files and folders and what not, but close the game after because it doesn't need to stay open

Step 4 (The fun part!) - Install these mods!

Mandatory Mods - these are needed to actually optimize the game! Make sure to install all of them!

Fabric API - Doesn't do much on it's own but is a dependency for multiple mods on this list

Sodium - Rendering engine replacement, known for boosting performance a lot and having way better gains than Optifine (though it is lacking in features, which is where...)

Sodium Extra - Mod that adds onto Sodium and lets you fine-tune certain aspects of the game like particles and animations

Lithium - An optimization mod

Starlight - A lighting engine replacement that improves performance over the vanilla engine, and notable other lighting engine mods like Phosphor

Hydrogen - Reduces RAM usage

Cull Leaves - Works like Smart Leaves in Optifine, basically stops the inside of leaf blocks from rendering and improves FPS

Dynamic FPS - Hard-locks your game at 1 FPS when the game isn't focused, reduces system resources if you leave the game in the background to AFK

Better Beds - Changes how beds are rendered, increases FPS

LazyDFU and Smooth Boot - These mods reduce the games start up time drastically

Optifine Equivalent Mods - Since you can't use Optifine with this setup, here are some mods that bring over its best features

If you want the full list of mods that add what Optifine adds to the game, check out this list

LambdaBetterGrass - Better Grass

LambDynamicLights - Dynamic Lighting

Ok Zoomer - Zoom

Dark Loading Screen - Self explanatory

Other Mods - Not needed at all but they're nice

Mod Menu - Doesn't improve performance but helps you manage mods and their configs

Fade In Chunks - Doesn't help performance per-se but it makes the game feel smoother by replacing the jarring, non existent chunk loading animation with a nice fade-in

2 - Java Tweaks

Minecraft ships, by default, with a pretty anemic version of Java. Using newer versions and a different GC may help increase performance, YMMV.

Step 1 - Install the Azul Zulu JRE for your OS (The version I found works best is Java 15) here

  • Keep in mind, for versions older than and including 1.12.2 Java 15 will probably cause a crash. For these versions, I'd recommend using the Java 8 JDK from Azul instead

Step 2 - Change the JVM Minecraft uses by editing your instance (Can't explain this one too well so here's a video)

Step 3 (Optional) - Change the Garbage Collector Java uses by changing your JVM arguments. Edit your instance, completely clear your JVM arguments and paste the following: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC

  • This WILL cause a crash if you aren't using Java 15!
  • This may improve performance for some, may worsen it for others. Just guess and check and see what works for you.
@OakBricks-old
Copy link

OakBricks-old commented Jul 14, 2021

you can also use enhanced block entities + indium

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment