Keep Android Open | Contact Regulators to stop Google's lockdown of Android
Material Rule Compiler is an experimental worldgen optimization mod, that works to improve surface builder times by compiling material rules into static functions.
Does the mod change world generation? The mod maintains vanilla parity, including with any datapacks. Do keep in mind, Vanilla non-determinism.
Can I use custom worldgen mods with this? Yes, the mod will fallback to normal execution where it encounters modded content. Though, it is possible to have mod incompatibilites. I do test against major worldgen mods like terratonic etc.
Note Fast Noise is needed for optimal speed
Material Rule Compiler is part of Reverie Projects, check out our other mods as well.
How does this mod work?
Material rule compiler compiles material rules into classfiles using asm library, optimized for every unique set of biomes. It also reduces allocations for random splitters in material rules and predicts biomes for material rules.
How fast is it?
About 30-40% decrease in surface builder execution times.
Socials
Credits
- Ishland for suggesting method handle api
- Taumc members for discussing compat and surface rules
- DJ for testing and benchmarking
Reverie Projects
Consider joining the Reverie Projects for sneak peeks and updates on development! By joining, you can:
- Get installation help and technical support for alot of awesome projects
- Get the latest updates about development
- Talk with and collaborate with our team
- And just hang out with the rest of our community!
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 |
- backport 1.1.2
- backport 1.1.2
- its properly working now
- fix crashes and other issues (w/ lithostitched)
- fix bandlands rule
- backport 1.1.1
- perf: optimize includedBiomes enumeration
- backport 1.0.0
- backport 1.1.0
- revert depth based cutoff compile (fixes rare crashes)
# Performance
- only compile after a material rule is requested certain no. of times
- pack biome collection to avoid non existent biomes in surface builder
- add config entries for new optimizations
- backport 1.0.0
- add max depth config entry
- rename cache size config entry
- speed up mod by limiting the depth of generated programs
- reduce time spent inside sync blocks
- speedup key gen a bit
- First release candidate
- Speed up class generation
- compile all static conditions into a single class one time instead of generating every time
- fix water condition
- reduce cache key size by 4x
- rework class gen to be faster (to generate and run)
- known issue: probably high memory usage w/ lithostitched rules
- rework class generation to be faster (to generate and run)
- known issues: lithostitched datapacks may cause ooms
- fix crash in production
- fix crash in production
- bump mc ver
- use flattened material rule to speed up compilation/reduce memory usage
- use flatten material rule to speedup class gen/ properly cache compiled rules
- switch to asm bytecode gen instead of using method handles
- minor opt to biome predicates
- generate classes at runtime using asm
- minor opt biome predicates (a bit of rework/cleanup)
- bump mc ver
- bump mc ver
- migrate biome opt to zmatcomp
- migrate biome opt into material rule compiler
- bump mc ver