load only what is near the player
Chunk streaming splits a large world into fixed-size chunks and keeps only the chunks near the player in memory, here 8 to 14 of the 98, the same count a world of 10,000 chunks would need. Chunks load inside the solid circle and unload only outside the larger dashed one, so the player pacing on a chunk border causes no reloads. With a single radius, the same pacing drops and reloads chunks 8 times in 2 seconds.
Stream the world in fixed-size chunks of 32 by 32 tiles, keep every chunk within 2 chunks of the player loaded, load new chunks asynchronously off the main thread, unload a chunk only once it is more than 3 chunks away so a player standing on a border does not cause reloads, and reuse chunk objects from a pool.