Per risolvere il tuo problema, devi pensare al tuo gioco in termini di "spazi" diversi.
Per prima cosa, parliamo di "worldspace". Se fai finta di avere un dispositivo sufficientemente ampio e alto su cui puoi eseguire il rendering, puoi rendere l'intera griglia di celle.
Per un esempio più concreto, se la tua griglia è 100x100 celle e ogni cella è 16x16 pixel, avrai bisogno di uno schermo di 1600x1600 pixel.
Se disponevi di un dispositivo del genere, potresti facilmente rendere il tutto.
Non lo fai, ed è per questo che sei qui. Il dispositivo è solo un numero particolare di pixel di larghezza e altezza. Questo è il tuo "spazio dei dispositivi". Lo schermo di uno smartphone avrà uno spazio diverso da un tablet.
Se hai a che fare solo con lo scrolling, allora devi solo tenere traccia di un singolo punto che mappa un angolo (tipicamente l'angolo in alto a sinistra) di devicespace in worldspace. Questo è un punto di ancoraggio.
Se si utilizza qualcosa come OpenGL, è possibile farlo abbastanza facilmente con le matrici, ma non si fa nemmeno male sapere come utilizzare l'algebra 2d.
Quando si scorre lo spazio del mondo, si modifica semplicemente il punto di ancoraggio e si ricrea l'area coperta da devicepace, non il mondo intero (sarebbe uno spreco). Fortunatamente, con una griglia quadrata, è abbastanza semplice determinare quali celle della griglia devono essere renderizzate, poiché si prende il punto di ancoraggio, si divide per l'altezza e la larghezza della cella e si avvia il rendering lì, fermandosi nell'angolo opposto.
Il punto di ancoraggio ha dei limiti ben definiti. Se è (0,0) e viene usato l'angolo in alto a sinistra, l'angolo in basso a destra è a (punto di vista, altezza del dispositivo).
Quando si scorre, il punto di ancoraggio non deve andare oltre (larghezza di deviazione del mondo, altezza del dispositivo di altezza del mondo), e quindi come risultato, questo e (0,0) sono i limiti per un diverso tipo di spazio chiamato "spazio di ancoraggio" .
Per aggiungere lo zoom, c'è un po 'di più ad esso, ma si basa sulle basi qui, c'è semplicemente un altro spazio intermedio, ma per ora ti lascerò con la base dello scorrimento.
Buona fortuna.