Что касается программирования игр, я был просто увлеченным человеком, однако обычно я так и делал:
У меня был объект, который представлял очень общую концепцию «сцены» в игре. Все различные основные разделы игры взяты из этого объекта Scene. Сцена действительно может быть чем угодно, в зависимости от типа игры. В любом случае, каждая более конкретная сцена, полученная из сцены, имеет процедуру для загрузки всех необходимых элементов для этой сцены.
Когда игра должна была менять сцены, указатель на активную сцену был установлен на новую сцену, которая затем загружала бы все необходимые ей объекты.
Общий объект Scene имел виртуальные функции, такие как Load, Draw и Logic, которые вызывались в определенное время в игровом цикле из указателя активной сцены. У каждой конкретной сцены были свои способы реализации этих методов.
Я не знаю, так ли это должно быть или нет, но для меня это был очень простой способ контролировать поток вещей. Концепция сцены также позволяет легко хранить несколько сцен в виде коллекций. Поскольку несколько указателей сцен хранятся в одной и той же стопке, сцены могут сохраняться в резерве и сохранять свое полное состояние при возврате к ним или даже выполнять такие операции, как тусклый, но продолжать рисовать, пока активная сцена перерисовывает их как наложение. сортов.
Так или иначе, если вы делаете это так, это не совсем как веб-страница, но я думаю, если вы думаете об этом правильно, это достаточно похоже.