Note: I have no experience in this
You would probably have to tie the seed based chunk generation to location. One way I can think of doing that so that it's infinitely reproducable is to plug the seed as well as chunk coordinates into the pseudorandomizer. This would require setting some origin point (Hey, that's what minecraft does!)
I don't actually have any idea how you'd put this into practice but that's my thoughts on the things
The problem is, how would I plug the chunk coordinates into the randomizer? I can't just do something stupid like "world seed + chunk x + chunky"*
12 because then a lot of the chunks would have the same seed.
Actually, giving all of the chunks an id in clockwise order (or something similar) from the origin and then just making the chunk seed "world seed + chunk id" could work. Yay, I just solved my own problem! If anybody else wants to suggest something better you can.
*I know it says chunky, that was an accident and I kept it.
1I couldn't decide if I wanted to put the * before or after the quotes. Sorry if I ruined anybody's life with possibly poor grammar.
2And, after using the *, I realized I couldn't use a ** to denote a second footnote, so now I'm mixing footnote calls.PPE:
Hash the chunk coordinate and xor it with a starting seed. Use noise functions if you want smooth transitions between chunks.
I'm just doing this in Python and am not too familiar with technical terminology for random number generators. How would I go about doing this?
EDIT: This is the messiest post I have ever seen.