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
getMaxBuildHeightandgetMinBuildHeightmethod, 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
From Silk; 1.7.10 -> no more manual IDs for blocks and items
Is apparently 1.7->1.7.2 it seems