Перейти к содержимому
Mineforgian

Faster Random

[NOTE: This mod is now only intended for use with pre-existing Faster Random worlds]

5.6M загрузок536 подписчиковApache-2.0fabricneoforgequilt

Обновлён 23 июля 2024 г. · опубликован 29 июня 2023 г.

  • Faster Random vs. Other Generators

Faster Random has been archived as of 2025-12-27, and has not been publicly updated in over a year.

This is because I've both heard of and gotten far too many conflicting results about this mod's performance, and feel as though this mod should not be relied on as a result. Any performance gain you notice could potentially just be a placebo effect (especially since your JVM may force the mod to disable itself!), or may outweight the impacts to vanilla parity on your world.

This arises from the fact that the generator is dependent on specific conditions arising to noticably beat Minecraft's generators, and I don't think random functions occupy enough CPU time to make any increase apparent. I really don't have any idea of if this makes a big server run meaningfully faster or not at this point, and my system may be too bottlenecked to know.

Consider this to be only reccomended for use with worlds that previously were generated with Faster Random, to keep parity. This will be the only form of support provided. The potential for 'some' gain isn't really worth losing vanilla parity.

TL:DR: On paper, Faster Random is faster in theory, but this is situational, and something that I haven't been able to reliably test.

Additional Findings

Oddly enough, my old findings of L64X128MixRandom being 2x slower than base, vanilla XoroShiro128++ on repeat constructions are not showing up anymore. I'm not sure if JDK's improved on this behaviour over time, but it is still situational (at the level of the player's actions, at least) even without the prior consideration.

Again, this finding is nowhere near enough to convince me that this mod is actually doing anything.

2024 Mod Description

Faster Random

Faster Random is a rewrite of Minecraft's random systems to use the new LXM generators introduced in Java 17, instead of the slower CheckedRandom (and related generators) within Minecraft. Most JVM's should support the generator by default, but check your logs for any warnings!

This also patches the MC-239059 "bug"(which doesn't have much of an effect on the game, but is still a bug.)

Faster Random's generators take more time to construct on most systems (I only have my Linux AMD system to go off of), but are much faster to generate numbers. Since minecraft re-uses many generators (meaning the construction penalty is avoided), the performance gain can vary largely.

Performance can be tested via the testmod, which runs a benchmark against each method when run.

Currently, Faster Random targets the slower random generators, which creates a performance boost with world structure placement/generation, and feature + carver placement and generation, alongside a lot of client-side things like dropped items. Currently Faster Random does not do anything to the faster generators yet. (Until I'm sure it'll improve performance noticably and not cause more harm than good)

Should you use this mod?

It's likely that Faster Random will only improve worldgen performance up to a certain extent, as you'll quickly hit a RAM and I/O bottleneck from the increased amount of chunks stored in RAM/being written to disk. This isn't a bad thing, this just means that you're generating chunks faster than the rest of your system can store them. Depending on your system, your mileage may vary greatly.

As a result, this mod provides the most performance in situations where the server thread(s) are CPU bottlenecked (singleplayer runs on an internal server), but have access to a decent amount of fast memory and storage (DDR4 RAM, and a SATA III or better HDD).

For world generation, Faster Random is almost 1:1, but some cave shapes will generate differently to Vanilla. Everything else is 1:1. It's likely that these differences will be unnoticiable, but shouldn't be used for parity-sensitive things like speedrunning. Optifine's math optimizations do far more damaging changes to worldgen than Faster Random.

Faster Random does not need to be on both the client and server. Faster Random can provide a small performance boost client-side, as quite a few things are still random there.

System Requirements (3.0.0+)

(Note: You may be unknowingly using a headless JDK for Minecraft, which breaks Faster Random due to a variety of strange reasons. Please check if you have downloaded the correct JDK/Package if Faster Random is crashing.)

If you're using the normal Minecraft Launcher, this mod should work fine with the bundled JVM, and you're free to ignore these instructions if no warning shows up in your logs.

Usage with other mods

Faster Random should work well with a large variety of mods, especially after 4.0.0. Faster Random will also actively support most major worldgen mods and Distant Horizons.

Faster Random also can perform better alongside other terrain optimization mods such as Noisium and C2ME, thanks to them making better leverage of Minecraft's random systems with multithreading. Ideally, you should use Noisium + Faster Random, and throw as much ram (10GB+) as you can spare at Minecraft when using Distant Horizons (C2ME has a performance hit with DH). Faster Random can leverage Noisium for a reduction in CPU usage from world generation.

Forge?

Francium is an unofficial forge variant for 1.16 and 1.18, which mostly does what Faster Random does, albeit without the worldgen optimizations. For 1.20.1 and these worldgen changes, Sinytra Connector should be able to run the mod with a "stable enough" experience. For 1.20.1+, you can try using the NeoForge port.

Faster Random's Icon is licensed under CC-BY-SA. Code is licensed under Apache 2.0.

Like this mod? Feel free to support development by contributing code, creating bug reports, and letting others know about it (it helps a lot)!

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
5.1.0Релиз1.20.5, 1.20.6, 1.21, 1.21.1fabric, quilt23 июля 2024 г..jar (20 КБ)
5.0.1Релиз1.20.4, 1.20.5, 1.20.6, 1.21fabric, quilt12 июля 2024 г..jar (17 КБ)
5.0.0Релиз1.20.4, 1.20.5, 1.20.6, 1.21fabric, quilt12 июля 2024 г..jar (17 КБ)
4.1.0Релиз1.20.4, 1.20.5, 1.20.6, 1.21fabric, quilt5 мая 2024 г..jar (16 КБ)
4.0.1Релиз1.20.3, 1.20.4, 1.20.5, 1.20.6fabric, quilt27 апреля 2024 г..jar (169 КБ)
4.0.0Релиз1.20.2, 1.20.3, 1.20.4, 1.20.5fabric, quilt22 апреля 2024 г..jar (169 КБ)
3.0.4Релиз1.20.2, 1.20.3, 1.20.4, 1.20.5-pre1fabric, quilt14 апреля 2024 г..jar (169 КБ)
3.0.3-neoforgeАльфа1.20.1, 1.20.2, 1.20.3, 1.20.4neoforge7 апреля 2024 г..jar (7 КБ)
3.0.3Релиз1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt26 марта 2024 г..jar (170 КБ)
3.0.2Релиз1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt16 марта 2024 г..jar (184 КБ)
3.0.1Релиз1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt11 февраля 2024 г..jar (179 КБ)
3.0.0Релиз1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt10 февраля 2024 г..jar (179 КБ)
2.0.0Альфа1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt7 января 2024 г..jar (32 КБ)
1.6.0Релиз1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt14 декабря 2023 г..jar (41 КБ)
1.5.0Релиз1.20.1, 1.20.2, 1.20.3, 1.20.4fabric, quilt5 декабря 2023 г..jar (148 КБ)

Показаны последние 15 из 20 версий. Все версии — на Modrinth.

Ченджлог

5.1.0Релиз1.20.6, 1.21, 1.21.1 · 23 июля 2024 г.

Faster Random 5.1.0

Yet another update to Faster Random! This update overhauls the JVM check, thanks to some work from Steveplays.

Now, Faster Random will just disable itself (with a logged warning) if the JVM is detected to not support the random generators required. This prevents crashes if your modpack has Faster Random, and is run using a very old/headless JDK.

Changelog

Merged Pull Request #56

5.0.1Релиз1.20.5, 1.20.6, 1.21 · 12 июля 2024 г.

A quick fix to Faster Random 5.0.0, which is a MAJOR release (read the description).

The JDK requirements were a bit too high considering 1.20.6 and below can run too (which don't need JDK 21). This caused some issues for some people on older JDKs, and has been fixed with this release.

5.0.0Релиз1.20.5, 1.20.6, 1.21 · 12 июля 2024 г.

Yet another MAJOR update to faster random!

  • Slime chunks will now generate exactly as they would have in vanilla minecraft. Of course, this will break your non-swamp slime farms in Faster Random 4.1.0 and below if you're unlucky. Stay on that version if you don't want this change.

  • Merged Pull Request #53, which on the user end changes the error pop-up.

Of course, if anything seems off, please make an issue on the issue tracker to help out!

4.1.0Релиз1.20.5, 1.20.6, 1.21 · 5 мая 2024 г.

Major structural changes as a result of #41. Not much is user-facing (aside from a few small changes to the JVM pop-up.) There shouldn't be any noticeable changes between 4.0.x and 4.1.0.

As a result, Faster Random now:

Has a smaller file size (due to removing MixinExtras)

Implements CheckedRandom's splitters fully.

LocalRandom has gone back to using ThreadLocalRandom

Faster Random no longer announces it's presence due to the main entrypoint being deleted.

4.0.1Релиз1.20.4, 1.20.5, 1.20.6 · 27 апреля 2024 г.

Rewrote the preLaunch entrypoint to display a warning pop-up for when a JVM refuses to load the random generator used by Faster Random, hopefully confusing people less when they use an outdated JVM and crash.

4.0.0Релиз1.20.3, 1.20.4, 1.20.5 · 22 апреля 2024 г.

A Major change to Faster Random. There will be *some* visual discrepancies between 3.0.4 and 4.0.0, possibly leaving some features such as trees generated in weird ways at borders between 4.0.0 and 3.0.4 chunks.

  • Various naming changes
  • The BetterX workaround has been removed for a proper fix, causing mods like Better Nether and Better End to run better.
  • Fix behaviour with nextLong(), causing feature generation to be 1:1 with Vanilla.
  • Hopefully stop Quilt from complaining by using an older version.
3.0.4Релиз1.20.3, 1.20.4, 1.20.5-pre1 · 14 апреля 2024 г.
  • Updated mod icon to match the new icon

  • Support 1.20.5.

  • Optimized nextSplitter a tiny bit by using the same seed instead of generating a new seed (terrain generation between 3.0.3/3.0.4 is unaffected).

3.0.3-neoforgeАльфа1.20.2, 1.20.3, 1.20.4 · 7 апреля 2024 г.

A version of Faster Random 3.0.3 that works on NeoForge. Regular Forge will crash with this mod.

It's likely that I will not work on this further, as this is just a result of me messing around with NeoForge out of curiosity.

This is not a multiloader mod file.

Полная история изменений — на Modrinth.

Комментарии

Загружаем…