Skip to content

Instantly share code, notes, and snippets.

@GiantLuigi4
Last active June 13, 2021 23:42
Show Gist options
  • Save GiantLuigi4/ed4040beb93707003e9a0a6e822db69a to your computer and use it in GitHub Desktop.
Save GiantLuigi4/ed4040beb93707003e9a0a6e822db69a to your computer and use it in GitHub Desktop.
A list of changes between versions, and how they affect modders

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 and getMinBuildHeight 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
@GiantLuigi4
Copy link
Author

GiantLuigi4 commented Jun 8, 2021

The flattening as well for 1.13, am on mobile so I can’t actually edit it

@GiantLuigi4
Copy link
Author

GiantLuigi4 commented Jun 8, 2021

From Silk; 1.7.10 -> no more manual IDs for blocks and items
Is apparently 1.7->1.7.2 it seems

@LorenzoPapi
Copy link

Third

@LorenzoPapi
Copy link

actually from 1.7.2 to 1.8 A LOT changed:
now every block model must use blockstates, command selectors were added, rendering TEs and other things was completely remade and other things I cannot remember
the rest seems ok

@LorenzoPapi
Copy link

in 1.8 particles are now particles, not entities

@GiantLuigi4
Copy link
Author

Source message for the 1.17 changes which Corgi Taco mentioned:

World Height(Introduction of the LevelHeightAccessor)
World in Protochunks(cast LevelHeightAccessor to serverlevel)
Feature place method parameters are now in a single parameter(class)
Carver carve method parameters are now in a single parameter(class)
Surface builders have a new Min Surface height parameter
Noise Step/Status of Chunk Generation now returns a CompletableFuture(I do believe it's multithreaded, @SuperCoder79 do you know if this is the case?)
World Gen Region is now aware of it's status
World Gen regions are now given a task range(in chunks) as a field
ChunkGenerators now have a BaseStoneSource method.
ChunkGenerators now have a Aquifer method
Structure classes got a new parameter that can be passed into the chunk generator’s heightmap method to get terrain height or column of blocks
Im not super sure on this one but... exceptions/logging is now done when a block is attempting to place beyond a region's x/z but like it's not super far outta bounds

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment