Releases: RelativityMC/C2ME-fabric
0.2.0+alpha.9.12
This release serves as a hotfix for any 1.19.3 versions of C2ME. As this contains out of cycle changes staged for the next alpha release it is not recommended you build this unless you're running 1.19.3.
This build contains a critical hotfix for users of Quilt. IF YOU ARE USING 1.19.3 AND QUILT UPDATE IMMEADENTLY TO PREVENT A KNOW ISSUE OF INPROPER GENERATION OF NEW CHUNKS. We are not aware of any effects on existing chunks from this issue.
0.2.0+alpha.9
C2ME 0.2.0+alpha.9 for Minecraft 1.19.2 is released
This small release improves overall stability, fixes some bugs and adds some features.
Changelog:
- Updates to 1.19.2
- Fixes some default configuration generation issues
- Try to catch off-thread access to world random to provide more information for
java.lang.IllegalStateException: Accessing LegacyRandomSource from multiple threads
- More aggressive chunk unloading to help mitigate memory issues
- Fixes some crashes related to ticket level updates
- Enables
ioSystem.replaceImpl
by default on non-Windows systems - Allows overriding default parallelism calculation
Full Changelog: 0.2.0+alpha.8...0.2.0+alpha.9
0.2.0+alpha.8
C2ME 0.2.0+alpha.8 for Minecraft 1.19 is released
This release improves overall performance and stability and fixes some bugs.
Changelog:
- Updates to 1.19
- Makes C2ME modular
- Optimizes sync loads a bit with priority system
- Implements chunkload cancellation mechanism
- Makes teleporting lag less
- Improves server shutdown times
- .. and more
- Improves the handling of async chunkload requests on WorldGen threads to fix some rare deadlock issues
- Some micro-optimizations for math used by world generation
- Improves mobcaps consistency by filtering out mobs in no-tick chunks when calculating mobcaps
- Makes the new IO system implementation priority-aware
(the new IO system can be enabled manually withioSystem.replaceImpl
in config) - Client: The default max view distance is now determined by the JVM type and the memory allocated to Minecraft.
Notes:
- The calculation of default parallelism has been changed to be more reasonable.
This means that some features may get re-enabled again by default if you are on a relatively lower-end devices
Full Changelog: 0.2.0+alpha.7...0.2.0+alpha.8
EDIT: 0.2.0+alpha.8.2 patch for 1.19 has been released:
- Enables
ioSystem.replaceImpl
by default - Fixes thread count calculation for threaded worldgen
0.2.0+alpha.7
C2ME 0.2.0+alpha.7 for Minecraft 1.18.2 is released
This release improves overall performance and stability and fixes some bugs.
Changelog:
- Optimizes entity filtering in no-tick chunks to reduce lag when tons of entities in no-tick chunks
- Disables perlin noise vectorization with Vector API due to performance issues in JDK17
- Optimizes perlin noise with 25% speedup over vanilla
- Optimizes aquifer without changing vanilla behavior
- Rewrites chunk IO system focused on overall throughput
(can be enabled manually withioSystem.replaceImpl
in config) - Adds parallel scheduling to further reduce server thread load
(can be enabled manually withasyncScheduling.enabled
in config) - Re-enabled noise caching in The End dimension when lithium is present
- Allows changing auto-save behavior
Now defaults to saving chunks after ticking with periodical saving
You can still use the original vanilla behavior or revert to pre-1.18 behaviors in config - Fixes high cpu usage on scheduler thread when idle
- Fixes large lag in singleplayer creating world screen.
- Fixes compatibility issues with lithium 0.7.8 and later
- Fixes some crashes with certain datapacks and mods
Notes:
- The calculation of default parallelism has been changed to reduce stuttering in singleplayer worlds.
This means that some features may get disabled if you are on a relatively lower-end devices.
You can always re-enable them manually in config.
Full Changelog: 0.2.0+alpha.6...0.2.0+alpha.7
0.2.0+alpha.6
C2ME 0.2.0+alpha.6 for Minecraft 1.18.1 is released
This release improves overall performance and stability and fixes some bugs.
Changelog:
- General worldgen optimizations and allocation reductions
- Adds experimental async scheduling (turned off by default)
- Raise default max render distance to 128
- Some fixes related to no-tick view distance
- Don't send chunks twice with no-tick (configurable)
- Turns on
reducedLockRadius
by default - Adds priority system for worldgen
- Now breaks optifabric
- Adds limit for chunk data cache in IO workers to prevent using too much heap memory
- Allow disabling mid-tick chunk tasks
- Safety and stability improvements
- Attempt to fix bad config values or return them to default by @duplexsystem in #94
- Hide
useGlobalBiomeCache
from config
Full Changelog: 0.2.0+alpha.5...0.2.0+alpha.6
EDIT: Looks like something is wrong with the lithium compatibility. Please add EDIT: Fixed in 0.2.0+alpha.6.1mixin.world.player_chunk_tick=false
to lithium config to workaround this issue.
0.2.0+alpha.5
This release improves performance significantly and fixes several issues in alpha4.
Changelog:
- Fixes a memleak caused by vanilla not correctly running scheduling with lock or keeping scheduling single-threaded when paired with fabric-api.
- Fixes bobby incompatibility with default config.
- Fixes a config issue where
vanillaWorldGenOptimizations
is getting overwitten bygeneralOptimizations
every time the server launches, causing brokenvanillaWorldGenOptimizations
section. - Fixes incompatibility with FabricAntiXray.
- Allows changing no-tick view distance ingame:
For 1.17.1, this will allow the render distance slider to correctly modify no-tick view distance.
For 1.18 snapshots, this will:- replace the render distance and
view-distance
in server properties to c2me no-tick impl - replace the simulation distance slider and
simulation-distance
in server.properties to actual ticking distance - modify vanilla behavior where it will stop ticking everything outside of ticking chunks instead of only stop ticking entities
- be significantly faster than mojang's implementation
- replace the render distance and
- Makes
allowThreadedFeatures
to be enabled by default. - Optimizes chunk scheduling to reduce allocation rates significantly.
- Drops metrics.
- Optimizes perlin noise by vectorizing it using Java 16 Vector API (enable with jvm flag
--add-modules jdk.incubator.vector
)
Currently it will throw a warning when it cannot find the vector api module.
Note that the warning is only for troubleshooting issues when the optimization cannot be loaded properly and completely harmless to your server.
Notes:
- A full list of tested compatible mods can be found in README.md (2 added in this release)
Please report all incompatibilities to github issues. - No-tick view distance impl is enabled by default on 1.18 in this release.
reduceLockRadius
is still turned off by default. It is planned to be enabled by default with 1/10 sampling in0.2.0+alpha.6
useGlobalBiomeCache
is still turned off by default. It is planned to be enabled by default in future versions in 1.17.useGlobalBiomeCache
is experimental in 1.18 snapshots.
0.2.0+alpha.4
This releases adds some new features and fixes a lot of issues in alpha3.
Changelog:
- Fixes compatibility with most of the content mods and works with AOF4 0.0.9 with
allowThreadedFeatures
andreducedLockRadius
AOF4 compatibility isn't in the best state at the moment, so please test it and open an issue if you found something not working. - Fixes a rare bug where naturally generated spawners are pig spawners and naturally generates chests are invisible except bounding boxes.
- Adds no-tick view distance, allowing render distance to be higher than 32.
- Improves scheduling to lower chunk loading and generation latency.
- Makes reduced lock radius more stable.
Notes:
- A full list of tested compatible mods can be found in README.md
Please report all incompatibilities to github issues. allowThreadedFeatures
switch is still turned off by default. It is planned to be enabled by default in0.2.0+alpha.5
- No-tick view distance needs to be manually enabled in the config file
Looking for 1.18 builds? Here it is.
These builds don't have releases so use with caution.
0.2.0+alpha.3
Changelog:
- Fixes all of threading issues in vanilla worldgen and worldgen-related code
(please open an issue if i missed something)
This also let C2ME vanilla worldgen behaviors match vanilla. (in theory, which need testing)
This also fixes some rare crashes that happens on startup. - Finally fixed compatibility issue with BetterEnd on production environment.
- The test system now tests every biome and structure that can be naturally generated in
the world to ensure test coverage.
Looking for 1.18 builds? Here it is.
These builds don't have releases so use with caution.
0.2.0+alpha.2
Changelog:
- Updated to 1.17.1
- Resolves compatibility and performance issues with Terra and BetterEnd
- Improves global biome cache performance
- Tweaks default parallelism settings
Looking for 1.18 builds? Here it is.
0.2.0+alpha.1
Changelog:
- Updated to 1.17.1-pre1 (compatible with 1.17)
- A lot of improvements related to performance, thread safety and chunk scheduling
- New global biome cache to reduce threading overhead (experimental)