Please do comment if something is wrong or lacking, also keep it to majors unless the minor has a breaking change which mod devs who are maybe coming back to the modding scene from an older version should know about
List of versions and how they affect modders best I can tell:
1.6->1.7:
- resources became way better
- ig block models were defined in code in 1.6
- as well as texture atlases needing to be manually stitched instead of being a collection of 16x textures that the game stitches at runtime
1.7->1.7.2:
- string ids are now favored over numeric ids
1.7.2->1.8:
- commands
- particles are no longer handled as entities
1.8->1.9:
- balancing changes
1.9->1.10:
- idk
1.10->1.11:
- aren’t those the same version /s
1.11->1.12:
- I also don’t honestly know
1.12->1.13:
- the flattening (no more metadata, way more is possible)
- worldgen changes, start of massive rendering changes
- lots of other internal changes
- mods functionally must be completely rewritten
1.13->1.14:
- unsure, but POI came along which is useful for some mods
1.14->1.15:
- blaze3d takes over rendering in most areas of the game
- entity renderers and tile entity renderers are much easier to work with
- Any mod which does rendering needs to be slightly redone.
1.15->1.16,
- lots of worldgen changes
- post processing shaders are a part of vanilla
- refactors to how guis render (matrix stack instead of render system for translations/rotations/etc)
1.16->1.16.2:
- worldgen changes
- json biomes and dimensions(?)
- ResourceKeys
1.16->1.17:
- vertex and fragment shaders
- these are quite useful for optimization mods as well as just in general for over the top mods
- They also mean that the game no longer has to make a temporary variable for sake of matrix transformations, thus slightly optimizing the game’s memory footprint
- java 16
- world height limit is no longer hardcoded
- for worldgen, instances of ChunkAccess have a
getMaxBuildHeight
andgetMinBuildHeight
method, which should be used when iterating through the y axis for compatiblity with mods like CubicChunks and also to account for worldgen datapacks
(the following is provided by corgi taco)
- Feature placement method now uses a context instead of multiple arguments
- the same is true with Carvers
- World is now in "Protochunks"
- SurfaceBuilders now have a minSurfaceHeight parameter
- Noise Step/Status of Chunk Generation now returns a CompletableFuture
- indicates movement to multi threading of chunk generation
- WorldGenRegion is now aware of it's status
- WorldGenRegions are given a task range (I'd assume vertical height which it's meant to generate?)
- ChunkGenerator$getBaseStoneSource
- I'd assume returns the block which surface builders should replace and the world generator should generate
- ChunkGenerator$createAquifer
- not 100% sure about this, but I'd assume this is so that Aquifers can be generated acrossed multiple chunks without breaking due to chunk boundries
The flattening as well for 1.13, am on mobile so I can’t actually edit it