Как выяснилось, при обширном материале, такой простой вопрос оказался почти совсем не освещен. Инфы было много, но все что-то не в ту степь. Подробные описания программного кода на примере создания игры были, вода с общими словами и точными определениями терминов и понятий лилась полноводным потоком, классификаторы игр, и прочее, прочее, прочее. Но вот найти понятный текст с описанием общей структуры не получалось. Если сравнить с утюгом, то было два описания. Одно - утюг включают в электрическую сеть и он работает. Второе с подробнейшим описанием физических законов, использующихся для того чтобы он работал, описанием всех деталей и техпроцессов их изготовления и сборки, начиная с чертежей. Но с полным отсутствием внятного описания общего принципа действия. Чего-то типа блок-схемы.
Перерыв гору информации, и уже не понимая, зачем ему это надо, Виктор решил сложить из отрывочных данных и своего понимания более-менее приближенную к действительности картинку.
Итак. Начнем сначала - с регистрации. При самой регистрации еще ничего не происходит. А вот когда пользователь выбирает, каким персонажем он будет играть, тогда вступает в работу первый блок программы игры. Выбор расы, внешнего вида, и т.д., запускает процесс создания в базе данных новой строки, где и хранятся все данные персонажа. Эти данные копируются из шаблона. Оттуда берутся первоначальные характеристики перса с учетом, скажем, расы (человек, оборотень), телосложения (более крупное дает выигрыш в силе, но проигрыш в ловкости) и пр. Все это копируется из шаблона в новую строку таблиц БД. Таблиц несколько - в одной могут храниться характеристики, во второй внешний вид, в третьей наличие игровых предметов, в четвертой характеристики этих предметов. При развитии персонажа эти характеристики изменяются. Картинка, на которой мы видим своего персонажа, всего лишь визуализация некоторых характеристик для глаз игрока. То, что нельзя показать внешним видом, отображается графиками, надписями или другими графическими методами. Все выводимые данные берутся из БД. БД - хранилище всей информации, сердце игры.
Следующий логический блок - виртуальный мир, который предстает перед игроком на мониторе. Собственно, это всего лишь картинка, имеющая несколько опосредованное отношение к игре. Если убрать графику, то должна остаться только координатная сетка с привязанными к ней координатами предметов. А изображение их складывается из всяких там полигонов, шейдеров и прочих узкоспециальных терминов. Все эти координаты также находятся в своей таблице БД. В принципе, картинка является лишь ширмой для происходящего за кулисами. Поставил игрок клиента игры, а грубо говоря, закачал на локальный комп всю графику, чтобы не тянуть мегабайты через интернет в процессе игры, и наслаждается картинкой. И невдомек ему, что картинка нужна лишь потому, что эволюция сделала наши глаза основным датчиком. На самом деле вполне достаточно координатной сетки, привязки ее к предметам и свойств этих предметов. Сделал игрок ход, перс сделал шаг - координаты, или вектор и величина смещения перса изменились. Данные передались на сервер, обработались и, что мы видим на экране? Правильно - фигурка перса шагнула.
Если взять за отправную точку то, что мы видим на экране монитора, весь игровой мир с его виртуальной природой, постройками, предметами, персонажами, все это находится в базе данных. Но не как изображение, картинка, а в виде каких-то данных, математических величин и формул. Если копнуть еще глубже - в виде ноликов и единиц или электрических потенциалов. Чем-то похоже на Каббалу. В ней тоже верхний, духовный мир, проецируется на реальный. И тоже в искаженном виде.
Далее. Яблоко с настоящей яблони в реальном мире падает вниз, сквозь стену нельзя пройти, человек не летает и много чего еще. Это законы природы, законы мира в котором мы живем. И они имеют какие-то количественные и качественные значения. Это физика. Вот ее тоже надо смоделировать в игре. Еще один модуль.
Потом модуль взаимодействия перса с миром и модуль взаимодействия между персонажами и ботами. Выстрелил. Стрела в зависимости от силы натяжения тетивы, умений перса, дальности до цели, попала другому персонажу в руку. Потекла кровь, уменьшилась подвижность руки, ухудшились другие характеристики.