В игре отрисовка и логика столкновений должны работать за счет этой карты.
Отрисовка идет из класса Game, в котором и лежит эта карта, но мне также нужен к ней доступ из класса Player, как это реализовать? И появился смежный вопрос, как сделать одну общую переменную для нескольких классов?
Может как-то вынести это в глобальную переменную, как статик какого-то класса, но везде пишут, что глобальные переменные - это плохо, но как тогда это реализовывать без них?
P. S. Карта - это не которая встроенная в язык, а просто массив с "пикселями".
Глобальные переменные сами по себе не так плохи. Плохо то, что с ними связано - неясный жизненный цикл (кто создает и кто уничтожает), изменения (кто и как меняет их состояние), маскирование зависимостей и неудобство тестирования и пр. Для обычных игр, это все не так критично. Если у вас Карта одна и создается только Игрой и вы гарантируете, что никто ее не изменит неожиданным образом и она будет создана до Игрока и уничтожена после его уничтожения - то все ок - создавайте.
Как вариант, вы можете передавать Игроку ссылку на Карту, чтобы он ее сохранил у себя и мог к ней обращаться когда ему надо.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости