Автор Тема: Архитектура настольной игры.  (Прочитано 8738 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Архитектура настольной игры.
« : Январь 02, 2012, 04:44:05 pm »
В мире существуют, и довольно популярны, всевозможные настольные игры (то есть это те, в которых люди садятся за стол, выкладывают на игровое поле фишки, кидают кубик и так далее). Для пущей определенности возьмем скажем, игру Small World (кроме того, что она является типичным представителем, она еще и очень качественно сделана, не халтура).

Допустим мы хотим сделать компьютерный вариант этой игры (чтобы играть в том числе по сети - не всегда получается всем собраться за одним реальным столом). Соответственно возникает вопрос как архитектурно организовать логику игры? Ведь кроме всего прочего, к ней существуют аддоны. Чтобы не быть голословным:

Правила базовой игры
Пример маленького расширения игры
Пример переработанной версии игры

То есть хочется во-первых как-то структурировать правила игры. То есть математически-алгоритмически описать (а не захардкодить все в дикое колличество ифов - запутаемся же!). Причем так, чтобы после выхода очередного аддона к игре, или переработанной версии, мы могли бы безболезненно это все добавить (не прочесывая ВЕСЬ уже написанный код) и по галке в настройках подключать/отключать это дело. Да, естественно в игре могут быть разные комбинации аддонов (например в игре может использоваться все три набора правил что я привел выше. одновременно) - это широко практикуется. То есть вариант с просто подгрузкой модуля реализующего правила которые выбрал пользователь в настройках - не катит. Нужно что-то более хитрое.

PS. Если это вдруг важно: у игра конечно разделится на серверную и клиентскую часть. На серверной крутится логика, архитектуру которой и предлагается мучить. На клиентской по сути только GUI.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"