Disculpen comunidad primero que nada me habes ayudado mucho, bueno aqui van unas que otras dudas:

- Quisiera saber como es que trabajan las colisiones con grids
- Quiero hacer mi juego con generacion infinita, mas o menos con vista a lo don't starve, pero no puedo tomar la idea para hacer que se carguen los mapas y mi surface lo este dibujando poco a poco con la informacion que se le da
- Son mejores las grids bien programadas para hacer colisiones perfectas o son mejor las instancias de objetos???

Esas eran las unicas dudas que tengo ya que acabo de salir de clases y ahora tengo tiempo libre para poder dedicarme a *joderle* el procesador a mi pc hasta que se reviente  XD

Puedes usar un sistema de colisión como en el ejemplo adjunto, pero cambiando el array 2D por una ds_grid.
Existen muchas técnicas para generar niveles aleatorios, algunas se han mencionado en el foro.
Si se muestra la grid alineada a la view se puede calcular fácilmente que área de la grid está dentro de la view y dibujar solo esa parte. En Don't Starve se utiliza perspectiva, para no hacer cálculos complicados se podría dibujar una zona más grande así evitar partes de la view sin spites.
Las grids pueden almacenar números y cada número representar a un sprite u objeto. El mundo puede estar formado por muchas grids y cada grid puede estar almacenada en un archivo. En el juego se debe cargar un número reducido de grids, cuando se avanza a una zona diferente se borran los segementos más alejados y se cargan otros segmentos. Tal vez sea conveniente mantener 9 grids en la memoria: 1 grid donde se encuentra el personaje y 8 grids que rodean.

Gracias! me diste buenas ideas...  ;D