Здесь описывается механика важнейшего объекта игры - города.
Описание города разбито на следующие пункты:
Каждый город имеет одного и только одного владельца. Тут есть три варианта, каков будет этот владелец:
Случаи, когда у города меняется владелец:
Размещает города на карте как генератор (сервер), так и игроки. В любом случае должны выполняться следующие правила:
Создаются в момент генерации мира, и отдаются на управление ИИ игры. Их роль - поддержка и защита новичков: пока новичок вассал локального короля, его не могут обидеть ни злобные монстры, ни другие игроки. В этих городах есть развитый рынок, где игроки могут покупать базовые товары и утилизировать излишки. Однако цены в материнском городе неудобные, и игрокам будет выгоднее торговать между собой.
При генерации мира создается набор городов для размещения игроков-новичков. Эти города создаются кластерами по 30-50 штук, количество кластеров зависит от размеров карты. Для средней карты с ребром в 1024 вершины, количество кластеров будет примерно равно 20 штук, а общее количество начальных городов - 1000шт. В каждом кластере создаётся материнский город, в которому и прикрепляются начальные города. Игрок начинает как вассал НПЦ-феодала, живущего в городе-маме, однако развитый игрок может сбежать в незаселённые зоны и сбросить деспотию НПЦ.
Кластеры начальных городов создаются только в благоприятных для жизни, но безных ресурсами регионах карты. Там, где опасностей больше, и можно найти редкие ресурсы, начальные города не строятся - развитые игроки вольны создавать там города сами. Есть несколько ограничений, которые описаны выше, а так - игроки могут лепить новые города где угодно.
Развиваются только те города, которыми управляют игроки. НПЦ-мама имеет уже город развитый по максимуму, а Добробот умеет только плавно “тушить” город, низводя его 1го уровня. Процесс этот должен занимать не больше недели реального времени.
Есть только один путь для уничтожения города - выгнать из него игрока и дать городу зачахнуть под управлением Добробота. Такой фокус может быть проделан только с теми городами, которые были построены игроками. Там, где город создавались генератором, они вечны и прибудут в мире до скончания проекта.
Город, и это должно быть видно на карте, состоит из нескольких объектов (от одного до десятка), каждый из которых мы будем называть “модулями” города. В городе всегда есть главный, центральный модуль, с которого и идёт рост города, а далее игрок (или ИИ игры) добавляет вокруг центрального модуля дополнительные, периферийные модули города.
Центральный модуль города намного сложнее чем все периферийные - он имеет качественно более сложную структуру, хоть на игровой карте он мало чем отличается от дополнительных. Центральный модуль города можно “развернуть”, и увидеть там множество построек “белого города”. Для них создаётся отдельное окно, внутри этого окна отображается упрощённый вариант игрового ландшафта, на которые и ставятся постройки. Итак, имеем три класса объектов, которые описываются в данной главе:
Город имеет уровень от одного до 10, и ровно столько модулей, каков уровень города. На рисунке изображён город 7го уровня (тот что слева), у него есть шесть (7-1 = 6) внешних модулей и один центральный. Общее население города составляет 7*7 = 49 персонажей - “морд”, о которых будет сказано ниже, так же город имеет в своём центральном модуле склад ресурсов. Ресурсы на складе появляются как результат деятельности периферийных модулей: фермы добывают еду, лесопилки - лес и так далее, а так же собственной деятельности центрального модуля - он ресурсы не добывает, но перерабатывает, например железная руда превращается в оружие, шкуры зверей в кожаные доспехи и так далее.
Город контролирует небольшую территорию вокруг себя: как правило это смежные клетки с теми, где находятся модули. Другие игроки могут свободно гулять по этой зоне, и даже нападать на модули города (грабя или ломая деревни), однако строиться соседи на уже занятой территории не могут. Геймплей как раз и строится вокруг факта, что земли мало, и для максимально комфортного развития города соседей надо теснить.
В двух словах это такой очень сложный (самый сложный в игре) объект, внутри которого существует своя маленькая карта, на которой игрок расставляет домики. Центральный модуль города, это то, что находится внутри городской стены, то есть там нет никаких ферм или пастбищ, там живут горожане в своих многоэтажных хибарах, стоят здания Гильдий, находится дворец правителя. Там же находится склад, и самое главное - городской рынок. Захватить центральный модуль- значит захватить весь город, поэтому мы делаем такой захват трудным, а на начальных стадиях игры - вообще невозможным.
Здесь живут и трудятся простые люди - пахари, пастухи, лесорубы. Так же во внешних модулях типа “крепость” расквартирована армия игрока. Особый тип модуля - “посёлок”, здесь, за городской стеной, живут те, кто работает в городе как неквалифицированная рабочая сила.
Среди разнообразия типов внешних модулей есть один, самый важный - это деревня. То есть модуль, у которого нет специализации. Он может добывать любые ресурсы, но делает это не очень эффективно. Лучше всего деревня умеет расти, а так же способна превращаться в другие специализированные модули. Делается это через постройку в деревне одного здания, например если вы хотите получить лагерь лесорубов - стройте лесопилку. Став лесопилкой, то есть специализированным модулем, деревня будет приносить гораздо больше древесины, и в ней станут доступными специальные улучшения, заточенные на добычу этого типа товаров. Вернуть модуль в начальное состояние “деревня” можно просто разобрав лесопилку - далее вы уже можете сделать из этой деревни что-то другое.
Население города представляется условными объектами, мордами, и исчисляется в них. В среднем городе около 30-40 “морд”, в крупном - до 100. Очень образно и условно говоря, одна морда это тысяча человек реального населения, которым мы оперировать никогда не будем.
На картинке справа изображено, как “морды” выглядят в “The Settlers”. Наши морды должны быть покрупнее, но смысл тот же.
Количество единиц населения (морд) в каждом модуле равно его уровню. Вообще говоря, это уровень и считается по количеству “морд” в населённом пункте. Уровней у нас десять, значит и максимальное население каждого модуля - будь то деревня, лесопилка или порт, не может превышать 10 “морд”. Каждый модуль предлагает своему населению определённые виды деятельности, например на ферме это могут быть крестьяне, мельник(и), пастухи, и так далее. Вид морды как раз и отображает профессию, то есть чем занят тот или иной персонаж в городе. Игрок сразу видит чем занимается тот или иной модуль, достаточно лишь бросить взгляд на интерфейс. Так же происходит и управление деятельностью модуля - “мордам” назначаются определённые роли, вроде “а ты будешь у нас мельник”. Более подробно об этом в разделе “управление модулями”.
Город это сумма модулей, и общее население города - сумма морд всех этих модулей. Самый большой город состоит из 10 модулей, считая и центральный, и при максимальном развитии всех этих модулей получается 10*10 = 100 морд. Не запутаться в этом количестве портретов помогает группировка по модулям, и продуманный интерфейс.
Итак, каждый персонаж города, то есть “морда” имеет ту или иную работу. Полный список профессий в игре приводится ниже. Здесь же стоит перечислить ключевые группы профессий:
изображение взято из Civlization Online (Facebook) Кроме профессии, для персонажа города (морды) ещё важно его состояние, то есть - работает или нет, доволен или бунтует. Предполагается отображать это прямо поверх иконки самой морды - зелёными плюсиками, или смайликами. Состояния каждог персонажа в деревне могут быть такими:
Эффективность работы каждого персонажа зависит от его состояния, а чем определяется состояние - разберёмся ниже.
уровень | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
население 1 модуля | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
количество модулей (считая центральный) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
суммарное население города | 1 | 4 | 9 | 16 | 25 | 36 | 49 | 64 | 81 | 100 |
<note important>Агентом внутренней торговли является модуль города. Внимание! Не персонаж-морда, а деревня где он живёт!</note> Внутренняя торговля - процесс обмена ресурсами между модулями города, а точнее - между центральным модулем и периферийными. Например, ферма производит еду, но сама потребляет мало, и излишки еды поставляются на локальный рынок города. Оттуда лишняя еда может либо
Фактически, город это набор модулей. Один из них - центральный - самый главный, он настолько сложный, что внутри него существует свой набор построек. Остальные модули проще, цельные объекты в один хекс размерами. Управление центральным объектом сложное: для этого рисуется целая схема города на которой располагаются домики. Эдакая карта в карте. С периферийными модулями попроще, набор действия связанный с ними мал и вызываются эти действия с основного экрана игры.
Здесь очень полезно вспомнить “Master Of Orion-2”, описанное ниже близко к этой игре.
Модуль может занимать позицию только в центре хекса, всегда блокирует центральный вертекс этого хекса и оставляет свободными граничные вертексы (все 6 шт). Если хоть один из 7 вертексов хекса (центральный+граничные) занят - модуль не может размещаться в этом хексе. Два модуля могут (и это нормально) размещаться на смежных хексах, блокируя их центры и оставляя свободным проход между этими двумя модулями. Из этого следует, что модули практически никак не влияют на проходимость карты, хоть и блокируют вертексы (центры хексов), но гарантируют проходимость вокруг этих вертексов.
Модуль имеет уровень, который не может превышать общий уровень
Периферийный модуль занимает хекс на карте, хотя визуально он чуть меньше хекса, что бы оставить грани хекса проходимыми. С точки зрения системы проходимости ни периферийные, ни центральный модель, не блокируют граничные вертексы хекса - только центральный.
Игрок может строить внешний модуль одного типа - “деревня”, а все остальные модули являются апгрейдами деревень. То есть процесс постройки, например, лесопилки таков:
Каждый внешний модуль кроме деревни имеет свои условия “постройки”, то есть превращения из деревни. Условия выглядят так:
Вот типы внешних модулей, идентификаторы в игре, а так же минимальный уровень для каждого типа модуля
Тип | идентификатор | минимальный уровень | |||||
---|---|---|---|---|---|---|---|
общий | сел | вар | коч | юж | имп | ||
деревня | 0:village | 1 | - | - | - | - | - |
ферма | 1:farm | 3 | - | - | - | - | - |
посёлок дровосеков | 2:camp-lumber | 5 | - | - | - | - | - |
посёлок камнетёсов | 3:camp-quarry | 5 | - | - | - | - | - |
посёлок шахтёров | 4:camp-mine | 5 | - | - | - | - | - |
пригород | 5:cottage | 5 | - | - | - | - | - |
крепость | 6:fort | 7 | - | - | - | - | - |
монастырь | 7:monastery | 7 | - | - | - | - | - |
археологический лагерь | 8:digsite | 7 | - | - | - | - | - |
морской порт | 9:seaport | 9 | - | - | - | - | - |
Примечание: в последствии можно внести дисбаланс по расам/уровням (пока прочерки)
Игрок не может сразу построить нужный ему модуль. Сначала необходимо создать заготовку, то есть деревню. Деревню можно строить в любом хексе карты, удовлетворяющем следующем требованиям:
Превращая деревню в нужный модуль, игрок получает модуль того же уровня, что и исходная деревня. На время превращения, рост деревни останавливается, так что начав превращать деревню восьмого уровня, игрок получит модуль ровно того же восьмого уровня. Каждый тип модуля можно получить из деревни, но деревня должна достигнуть определённого уровня. Этот уровнь называется стартовым уровнем данного типа модуля. Например, у “пригорода” стартовый уровень равен 5, а у крепости - 6. Ниже мы получим гарантии того, что в игре не может существовать модуль, уровня ниже, чем минимальный для этого типа. Любой вредоносный процесс, ведущий к потере модулем уровня ниже чем минимальный превратит его в деревню. Вот полный список требований, одновременное выполнение которых позволяет произвести превращение деревни в модуль другого типа:
Вообще говоря, управляемость для модулей это редкость. Чаще, модуль просто существует, растёт сам по себе, если может, а вот что бы модуль надо было выбирать и с ним что-то такое делать, это в нашей игре встречается не очень часто. И вообще дизайн игры старается такого управления избегать. Вот действия, которые можно совершать с модулями любого типа:
Опция “грабить” нужна для того что бы уничтожать деревни и посёлки неприятеля. Грабёж - занятие долгое, в результате которого грабящий получает добычу (простые ресурсы или серебро), а ограбляемый модуль теряет один уровень. Если процесс ограбления пытается понизить уровень ниже минимального для данного типа модуля, модуль теряет специализацию, то есть превращается в деревню, а если уровень пытается упать до нуля - модуль уничтожается. Баланс примерно таков: грабёж при благоприятных условиях уничтожит модуль максимального уровня примерно за сутки. Конкретное время грабежа зависит от нескольких факторов, первый из которых - текущий уровень здания. И естествено, во время грабежа, рост и функционирование модуля приостанавливаются. Так же игрок теряет возможность любых действий (уничтожение, превращение) со своим модулем, если этот модуль сейчас грабят. Что бы прекратить бесчинства, необходимо отгонять армию неприятеля.
Уничтожение собственного модуля - так же длительный процесс, хотя и не такой долгий как грабёж. Это делается для того, что бы будущие жертвы грабежа, завидев неприятеля, не уничтожали свои модули сами.
Кроме общих опций управления модулями, каждый тип предлагает свои уникальные возможности, которые будут рассмотрены чуть ниже.
Базовый тип модуля города, строить игрок может только его, а остальные получаются путём превращения деревень в эти типы. Деревня, сама по себе не бесполезная заготовка для будущего модуля, нет, она тоже произсодит ресурсы, при чём все сразу, просто в количестве меньшем, чем это делал бы специальный модуль, заточенный под конкретный тип ресурсов.
Вот список режимов работы. Описание каждого из них нужно будет сделать отдельно:
Концепция такова: каждый тип модуля (то есть режим работы деревни) отображается так, что игрок может бросив беглый взгляд на город сразу понять чем он занимается. Вот неполный список вариантов - что может увидеть игрок и выводы которые он может сделать:
Отображается внешний модуль города не единым объектом, а набором из 7 (может быть меньше) мелких “домиков” и подложки. Конструктор, собирающий микромодули в единое целое допускает вариабельность, не существенную для игрового процесса - это исключительно техническое средство поднятия разнообразия в картинке. МИкромодули имеют свои типы, некоторые важнейшие микромодули могут дублироваться, с той же целью поднятия визуальной составляющей. Для игрового процесса это так же не важно.
Расставляются микромодули аналогично деревьям - в тех же узлах вежду вертексами (и в самих вертексах). Отображение различных уровней развития деревни, происходит путём плавной замене отдельных микромодулей при малейших изменениях отображаемого объекта.
Микромодули
# | Тип | ID | спрайтов | |||
---|---|---|---|---|---|---|
S | M | L | XL | |||
1 | сельский дом | VH | 3 | 3 | ||
2 | городской дом | TH | 3 | 3 | ||
3 | трактир | IN | 1 | 1 | ||
4 | мельница | WM | 1 | 1 | ||
5 | бойня | BY | 1 | 1 | ||
6 | лодочный сервис | BS | 1 | 1 | ||
7 | амбар | GR | 1 | 1 | ||
8 | плавильня | SM | 1 | 1 | ||
9 | мастерская камнетёсов | MW | 1 | 1 | ||
10 | пилорама | LM | 1 | 1 | ||
11 | палатка археологов | AC | 1 | 1 | ||
12 | форт | FT | 1 | 2 | ||
13 | монастырь | MN | 1 | 2 |
курсив - эквивалентные варианты (разнообразие)
выделенные цифры - отображается рост здания
Размеры имеют следующий смысл:
Значения в таблице напротив каждого из типов - количество спрайтов, которое нужно для отрисовки разнообразных деревень.
Сборка модулей
Тип | идентификатор | слоты | |||||||
---|---|---|---|---|---|---|---|---|---|
центр | периферия | особая периферия | |||||||
деревня | 0:village | 1 | 1 | 1 | 1 | 1 | 1 |
Те модули, которые добывают ресурсы из земли, нуждаются в том, что бы отобразить их работу, что бы игроку легче было учидеть что происходит с городом. Решить эту задачу помогают внешние декораторы, котрый ставятся на свободные вертексы рядом с модулем. Правила размещения этих декораторов довольно сложные, так как цель не только оптимально использовать пространство экрана, нон ещё и избежать какого-либо влияния на адекватное восприятие игроком этого пространства. Например, нельзя допустить, что бы игроку было непонятно - остался непроходимым ландшафт в этом месте, или нет.
То есть, для чего это вообще нужно?
Что бы добиться устойчивости рынка, нам нужна инфляция и диссипация товаров. Более подробно об этом написано в документе, целиком посвящённом экономике, тут лишь необходимо сказать, что диссипация (постепенная порча товара) обеспечивается как раз в условиях городского хранения товаров. Те товары, которые выводятся из системы вне экономики (стальные мечи, например, ломаются в бою), могут не диссипировать в городе, но все такие исключения необходимо строго контролировать.
Второй кит нашей экономической системы - “дополнительные способы утилизации излишков товаров”. Это набор функций игры, дающий игрокам простые и дуобные средства утилизировать излишки вручную, получая какую-либо пользу. Таких способов может быть очень много - под каждый конкретный тип товара. Например металл и камень можно пускать на ускорение строительства, еду на ускорение роста населения и/или увеличение лояльности этого населения. Особо здесь фигурируют деньги (внутриигровые, то есть серебро). Можно вводить и развивать целую систему функций, которые делают какую-либо пользу за деньги, добиваясь стабильного дефицита этих денег. Например, гильдия воров может приносить много пользы, но жрёт серебро как чёрная дыра.
Третье, важнейшее свойство нашей экономической системы - её интегрированность в систему политическую, то есть - социальную, так как политикой чаще всего занимаются игроки друг с другом. Торговые пошлины, эмбарго, открытые рынки - всё это инструменты политической системы, однако их реализация сильно связана с городами, анатомию которых мы тут и разбираем.
Суть экономической модели города такова: существуют производственные силы, которые распределяет хозяин города (игрок). Производятся товары, часть которых тут же потребляется населением города, а “лишние” распределяются между локальным рынком и казной города. Игрок не управляет внутренним рынком, товары лежащие там игроку не принадлежат, что не мешает игроку свободно торговать на нём.