Mover a câmera nas coordenadas do mundo e fazer com que seu personagem se mova ao redor do mundo é a maneira mais fácil de abordar esse problema. Trabalhar nas coordenadas do mundo significa que você não precisa fazer nenhum cálculo extra quando se resumir a todos os outros sistemas que devem funcionar em um ambiente. sistema de coordenadas relativas e também entender onde elas estão nas coordenadas do mundo.
Como você está trabalhando em 2D, outra boa dica é fazer um particionamento espacial da maneira mais fácil possível para criar um sistema de grade mundial virtual, isso permitirá que você gerencie cada bloco individualmente associando sprites e outros recursos por bloco, portanto, em essência, o processo seria:
crie alguma classe de bloco que possa conter as coordenadas de limite do bloco e quaisquer recursos que um bloco específico possa precisar (sprites, inimigos, etc.).
decida o tamanho do seu mundo e crie uma matriz 2D (você pode usar uma dimensão e acessá-la como 2D) de blocos, cada um representando um pouco do seu mundo com todos os recursos associados.
apenas atrai recursos do bloco em que o jogador está e seus vizinhos.
Com uma grade, você pode facilmente descobrir em qual bloco o jogador está, com base em sua posição em relação ao início da grade.
Para solucionar o problema que você mencionou sobre a câmera, você precisa tornar o player e a câmera dois sistemas independentes, nos quais a câmera não vai mais longe do que o centro dos ladrilhos das bordas; assim, quando o jogador viaja para esse ladrilho, ele ainda pode viajar pelo todo o bloco como ele é limitado pelas coordenadas do mundo (ou seja, não está mais centralizado na tela), mas a câmera está bloqueada.