Обычный подход заключается в перемещении камеры и выполнении отбраковки вместо обновления содержимого VBO. Для отбраковки двухмерной игры будет использоваться простой алгоритм пересечения прямоугольников, который вам в любом случае понадобится для выбора юнитов в игре. В качестве бонуса, манипулирование камерой позволит оценивать камеру и увеличивать и уменьшать масштаб. Также вы можете объединить несколько плиток (4, 9 или 16) в один VBO.
Я бы настоятельно рекомендовал не писать логику, чтобы перемещать плитки вместо камеры. Это займет у вас больше времени, будет больше ошибок и будет менее гибким.
Формат будет зависеть от того, какие данные вы храните в VBO. Если есть сомнения, просто используйте uint8 для цвета и float32 для всего остального. Хотя для двумерной игры ваши VBO или массив вершин будут очень маленькими по сравнению с 3d-приложениями, поэтому маловероятно, что VBO что-то изменит.