The Great tribes - Дневники разработки - Глобальные пошаговые стратегии (4x tbs) - Strategium.ru Перейти к содержимому

The Great tribes - Дневники разработки

Рекомендованные сообщения

alexandrovis

Дневник разработки № 1

 

Всех с Новым 2018 годом! В честь такого события хочется поделиться некоторой информацией о разработке. Но для начала немного предыстории.

Около года назад я нашел такого же энтузиаста, как и я, ведущего разработку стратегии своей мечты и сразу влился в процесс разработки. Благо видение стратегии мечты у нас достаточно близкое. Изначально игра планировалась в изометрии, но последние 1,5 месяца идет переход на 3D. Параллельно разработке движка велась разработка концепции игры.

 

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

 

Т. к. проект планируется большой и амбициозный в команду требуются следующие специалисты:

- Моделлер (создание моделей для карты)

- Художник (в первую очередь, надо нарисовать текстуры местности)

В перспективе могут понадобиться:

- Программист

- Звуковорежиссер

- Тестировщики

Если Вы хотите принять участие в разработке, но не нашли себя в приведенном списке - все равно пишите нам!

Безусловно, любой желающий может принять участие в обсуждении проекта, создав свою тему (для крупных идей) или написав в уже существующую.

 

С Новым годом!

Изменено пользователем alexandrovis
Ссылка на комментарий

Закреплённые сообщения
Алeксeй
58 минут назад, alexandrovis сказал:

Параллельно разработке движка велась разработка концепции игры.

 

А на чём вы делаете движок?

Ссылка на комментарий

Zemlaynin
14 минуты назад, Алeксeй сказал:

 

А на чём вы делаете движок?

Java, LWJGL библиотека

Ссылка на комментарий

Zemlaynin

Дневник разработки № 2

 

Данный проект я пишу на Java и все отображение графики происходило стандартными средствами Java и поэтому все рисовалось силами процессора. Но в какой-то момент, на моем достаточно мощном компьютере, все стало притормаживать и при больших масштабах даже подлагивать.

 

Проведя, наверное, целую неделю над поиском всевозможных решений по оптимизации и попробовав опять же стандартные средства Java по ускорении графики, я был удручен полученным результатом.

 

И на этом этапе наступил переломный момент. Я решил все это дело перенести в 3D, дабы вся отрисовка происходила на видео карте, так как процессор нам нужен для другого :)

 

Стоит отметить, что в 3D на этот момент я был полный ноль и все мои знания были чисто теоретическими и поверхностными.

 

Начал я с ознакомления с существующими библиотеками для работы c 3D на Java. Выбор оказался не велик и в результате я взялся за изучение LWJGL. Помимо этого пришлось доставать из уголков своей памяти знание основ OpenGL и оказывается мои знания безнадежно устарели.

 

Скрипя зубами и даже на какой-то момент жалея, что я взялся за эту затею с 3D, я перелопатил кучу информации по данной теме, работу замедляло то что вся доступная актуальная информация была на английском языке.


Спустя неделю, или около того я выкатил свой первый 3D генератор карты, можете посмотреть на этот ужас на скрине:

 

 

screen01.png

 

Мир был жутко страшным с нелепыми треугольными горами:

 

screen02.jpg

 

Я понимал, что сейчас весь этот ужас происходит из-за таких страшных текстур и начал поиск более подходящих, даже купил текстурпак:

 

screen03.jpg

 

Это, как видите, не помогло и вооружившись Photoshop я перепробовал кучу разных техник и фильтров...  и был найден более приемлемый вариант текстур для полей:

 

screen04.jpg

 

Ну что-же, выглядят они намного лучше. Пора избавляться от нашего плоско выглядящего мира к более объемному. Для этого нужно добавить освещение, чтобы заиграли все неровности! И о боже что это?

 

screen05.jpg

 

Полное отсутствие нормалей дает такой результат. Высчитываю нормаль для каждого треугольника:

 

screen06.jpg

 

Получилось не очень, высчитываю нормаль для каждой вершины:

 

screen07.jpg

 

 

screen08.jpg

 

Усредняю нормали для соседних вершин на стыках тайлов:

 

screen09.jpg

 

Теперь видны холмы и горы. Но поверхность слишком бугристая

 

screen10.jpg

 

Теперь предстоит сгладить поверхность, сгенерировать холмы и более реалистичные горы, добавить слой воды, реки и прочую уже мелочь.

За несколько дней сделал все до слова «реки» и озадачился одним вопросом... вы, наверное, заметили в окне в левом уголку циферки? Это FPS. Я их конечно замечал в самом начале, но откладывал на потом, понимая, что у меня отрисовывается вся карта, а не её видимая часть. Взялся за оптимизацию и результат:

 

 

screen11.jpg

Рек все еще нет, но я занялся сглаживанием краев воды и красивым прибоем, жалко на скрине не видно прибой:

 

 

screen12.jpg

Все красиво и хорошо, но рек все же еще нет и пора браться за них. Сразу столкнулся с проблемой что мой алгоритм из 2D версии не подходит к 3D из-за того, что тут тайлы квадратные, а там были ромбовидные и все реки стали прямыми и некрасивыми. Пришлось переписывать весь алгоритм с нуля. Жалко я не сохранил скрин первых рек, они были в принципе ничего. Но они были квадратными!
И все это из-за того, что весь мир у меня строился на тайлах, а каждый тайл у меня строился из девяти субтайлов и, в свою очередь, каждый тайл разбивался на 9 квадратов что соответствовало 18 полигонам. 18 полигонов это очень мало для придания рекам хоть какой-то формы отличной от квадратно-угловатой.

 

Решил попробовать увеличить число полигонов на субтайл, по моим прикидкам 100 квадратов (200 полигонов) на субтайл было бы самое то, и на бумаге даже красиво получалось...
Но 3200000 полигонов рисуемые в 2 прохода... плюс еще будут десятки тысяч объектов от 100 до 1000 полигонов... получается многовато, да и памяти хорошо отъедает и строиться такой мир долго очень, а как его сохранять потом? Подумав малость пришлось отказаться от такого подхода. И начались бессонные ночи в расчетах и поиске золотой середины. Три дня и три ночи я не спал и думал. Я переосмыслил все что-только можно было, и уже даже почти успел впасть в депрессию из-за невозможности найти решение, да и просто и от усталости. В ночь на 20 декабря я наконец-то смог уснуть...я уснул ровно на 20 минут и проснулся... Ведь какая штука наш мозг... проснувшись ко мне пришло полное осмысление всей информации, полное осмысление и понимание устройства OpenGL (конечно преувеличиваю), я проснулся с решением поставленной задачи. В 3 раза сократил потребление видеопамяти, в несколько раз сократил и потребление оперативной памяти, увеличил общую производительность, убрал один жесткий лаг. В общем жизнь заиграла другими красками.

 

В итоге, я все же решил сократить количество полигонов и вместо сетки 10х10 на субтайле, я сделал 7х7. Единственное пришлось много времени потратить на перерисовку гор и берегов и 30 декабря я выкатил вот такой результат:

 

screen13.jpg

 

 

screen14.jpg

 

 

screen15.jpg

 

31 декабря - 1 января был синдром нового года.

И второго дня нового года я принялся за реки, к сожалению, я не сохранил скриншотов всех промежуточных вариантов рек. Задача казалась не очень сложной, но признаюсь я 4 раза писал и все под корень удалял, начиная с нуля.
В итоге получил неплохие реки

 

 

screen16.jpg

 

 

screen17.jpg

 

Но пришлось еще малость по колдовать, чтобы нивелировать такие резкие повороты

 

screen18.jpg

 

 

screen19.jpg

 

И в итоге получить нечто подобное

 

screen20.jpg

 

 

screen21.jpg

 

Тяжелые были 2 месяца, но предстоит еще больше! Проекту очень требуется в помощь художник и 3D-моделлер!

Изменено пользователем alexandrovis
Ссылка на комментарий

alexandrovis

Дневник разработки № 3

 

Всем привет!
В этом дневнике мы продолжим знакомиться с общими игровыми моментами.

 

Название
Текущее название игры «The Great tribes» является рабочим. Ближе к релизу игры оно может поменяться.
Кстати, предлагайте свои варианты названия!

 

Жанр
Глобально-стратегический симулятор развития цивилизации. В альтернативной классификации относится к классу "игр против поля", где невозможна формальная победа. Игрок может лишь отсрочить свое поражение. Однако, данная игра лишь частично отвечает требованиям данного класса. Потерпев полное поражение, игрок может продолжить игру за победителя.

 

Сеттинг
Действие игры и ее хронологические рамки примерно соответствуют периоду с 4-3 тыс. до н.э. по начало 3 тыс. н.э.

 

Ход игры
Игра осуществляется в пошаговом режиме. Однако существует два разных хода – Ход и Такт.
Ход обсчитывает глобальные параметры: рост населения и экономики, миграцию страт и изменение их характеристик и т.д.
Такты же происходят лишь при боевых действиях. Всего в рамках хода предусмотрено 4 такта: весенний, летний, осенний и зимний. Так, армия, совершившая длинный марш-бросок и вступившая в сражение на исходе очков действия, будет вести сражение в зимний такт с соответствующими последствиями.

 

Цель игры
Особенность механики игры не позволяет выделить какую-то одну или несколько целей игры. Игрок сам может выбирать, к какой цели ему стремиться. Однако, дабы облегчить игроку поиск интересных целей, в игре будет реализована система достижений. Например, продержаться одной правящей династией как можно дольше, или построить самую богатую торговую империю, или просто колонизировать Марс. Игрок сможет вбирать среди сотен целей наиболее привлекательную для него.
Отдельно стоит отметить, что достижения будут разделены на 2 вида: индивидуальные и глобальные. Индивидуальные достижения основаны на результатах одного игрока, тогда как глобальные формируют различные рейтинги среди всех игроков.

 

На следующей неделе мы поговорим об основных игровых элементах, вокруг которых строится геймплей.
 

Изменено пользователем alexandrovis
Ссылка на комментарий

alexandrovis

Дневник разработки № 4

 

Всем привет!
Наконец, мы подошли к последнему дневнику в цикле, освещающем общие аспекты игры. В данном дневнике мы рассмотрим основные игровые элементы, вокруг которых строится геймплей.


И начнем, пожалуй, с ключевого элемента, который отвечает за формат эволюционного развития социальной системы в игре – технологии. Технологии есть во многих играх. В той же Цивилизации они так же отвечают за формат развития. Но везде они представляют собой непрерывное восхождение к вершине прогресса. Мы же идем дальше, разработав механику технологических пакетов.
Технологический пакет представляет собой совокупность технологий, отвечающих за функционирование вполне конкретных элементов игры. Более того, технологические пакеты, либо отдельные их части могут быть частью других технологических пакетов. Развитие данных пакетов нелинейно и происходит в зависимости от внешних обстоятельств и воздействия на них. В определенных условиях, некоторые технологии могут быть утрачены, а на их восстановление может уйти не одно столетие.


Следующим по значимости идет население. Именно оно задает динамику игре. Как и в Виктории, население делится на страты. Но есть еще один элемент – фракции. Фракции представляют собой силу, способную влиять на политическую обстановку в стране. Именно они отвечают за многообразие различных социальных общностей (партии, ордена, корпорации, школы великих людей и т.д.), а также являются наиболее активными политическими акторами.


Топливом для развития в игре выступает торговля. Благодаря ей возможно все, что выходит за рамки общинного хозяйства: мобилизация ресурсов для создания Чудес света, снабжение армий, населения и производств, и многое другое.


Основой дипломатических отношений в игре являются коалиции. Коалиционные соглашения могут заключаться между странами, между регионами и даже между столицей региона и поселениями, входящим в него. По сути это универсальный шаблон установления связи между административными объектами.
Немного подробней расскажем про административные объекты. Всего в игре 3 уровня управления: страна, регион и административные зоны. Каждый из уровней имеет свою столицу. Только если у страны и региона столичный город является одним из многих городов страны/региона, то в административной зоне может быть лишь одно поселение (как город, так и деревня).
Поселения в игре так же являются одним из центральных игровых элементов. В них сосредоточено все население, производство, да и собственно большая часть геймплея.


Наконец, война реализована одновременно максимально детально (как и все остальные элементы игры) и максимально абстрактно. Т.е. у игрока будет достаточно большой инструментарий по военному управлению, при этом ему не придется двигать десятки юнитов по карте, а порой и управление армией и вовсе может ускользнуть у него из рук?


Надеюсь я смог описать весь масштаб игры и предстоящей работы по ее разработке. В следующих дневниках я подробней раскрою каждый элемент игры.
 

Ссылка на комментарий

alexandrovis

Дневник разработки № 5


Всем привет!
В ходе общения с нашими читателями о некоторых особенностях игры, я решил написать о некоторых принципах, на которых строится разработка.


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

 

На остальных проблемах игр-конкурентов подробно останавливаться не буду, т.к. они вытекают из уже перечисленных. Так, в Crusader Kings игрок перегружен контролем за множеством персонажей. Для решения этой проблемы у нас есть уже упомянутая система фракций. Т.е. вместо подкупа, передачи титулов и прочих операций с каждым конкретным персонажем, все операции идут с фракцией, которая может быть как небольшой философской школой региона, так и олигархический клан, подмявший под себя почти всю страну.

 

2.    Ограничение безудержного роста
В существующих играх сравнительно мягкие механизмы ограничения роста стран. Какие-бы трудности в управлении не возникали, опытный игрок без особых проблем может создать огромную империю.
Дабы минимизировать возможности игрока в строительстве нереалистично больших стран, в игре реализована административная нагрузка, генерируемая поселениями, регионами и страной в целом, а также административный ресурс, необходимый для компенсации данной нагрузки. Как только административного ресурса начинает не хватать, в стране начинаются проблемы вплоть до отделения целых регионов. Причем нехватка административного ресурса из-за чрезмерного количества административных объектов – не самая большая проблема игрока. Чрезмерная коррупция может буквально съесть значительную часть админресурса, а точней этот ресурс будет потрачен в интересах тех, кто его сможет купить.

 

На сегодня, пожалуй, все. Задавайте вопросы и может тематику следующего дневника определите именно Вы!

Изменено пользователем alexandrovis
Ссылка на комментарий

Zemlaynin

Дневник разработки № 6
Всем привет!
За последние три недели немного выбился из графика работы над проектом. Причиной тому было вот это :

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Потратил 4 дня на симуляцию дыма. Это полноценный 3D дым, сделано 3D-текстурами на основе шума Перлина. Думал пригодиться в игре. Но такой метод очень нагружает видеокарту и мало применим к играм, что я понял уже слишком поздно, но все же решил допилить  до конца. Получилось достаточно реалистично, но где-то похоже ошибся со светом и под определенным углом обзора может показаться что это вовсе не 3D дым.

Поправил отображение вулканов:

 

screen00.jpg

Подправил генерацию морей, теперь не будет морей посредине океана. Немного изменил генерацию рек.
Добавил течение у рек и убавил эффект прилива у озер. У воды, у берегов теперь есть нечто похожее на пену:

 

screen01.jpg

Закончив наводить марафет, я задумался о предстоящей глобальной работе по написанию загрузчика 3D объектов. Для статичных объектов все было более менее понятно, но вот анимированные объекты для меня казались не решаемой задачей. На этом фоне я малость взгрустнул и следующие выходные решил отдохнуть и на пару дней ушел в PUBG. Скажу честно я не любитель всякого рода шутеров и мой скилл в таких играх наверное ниже среднего. Но побегать по обширной карте мне почему-то доставило. И после пары десятков игр я начал стабильно входить в топ10 и даже раз занял 2е место :)

Но вот я начал поиск информации по работе с анимированными 3D объектами и наткнулся на библиотеку Open Asset Import Library (Assimp) и её реализацию под Java. И дело пошло веселее.

Первым делом разобрался со статичными объектами и достаточно быстро удалось разобраться и с анимацией. Следом встала задача найти объекты деревьев и пальм чтобы прикрутить их к проекту. Поиск дал огромное количество бесплатных моделей но ни одна модель не подходила мне. Мне нужна было low poly модель и с этим была проблема. Те модели которые мне удалось найти были кривыми и содержали кучу лишних полигонов. Покрутив их я решил попробовать сделать простые модели сам... Гхм...
Первый раз в жизни я взял в руки Blender не для перегонки из одного формата в другой, а для создания объекта с нуля. За пару часов мучений и боли у меня получилась вот такая ель:

 

screen02.jpg

Воодушевленный результатом я взялся за пальму:

 

screen03.jpg

С елкой было проще, не смейтесь - пол дня я убил на эту пальму:

 

screen04.jpg


Уложился в 73 полигона.

Вот так это выглядит непосредственно в проекте:

 

screen05.jpg

На видео видно анимированного человечка и можете увидеть течение у рек:

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Изменено пользователем Zemlaynin
Ссылка на комментарий

alexandrovis

Дневник разработки № 7


Всем привет! Сегодня мы немного поговорим об игровой карте.
Как мы уже писали, карта делится на тайлы и субтайлы. Но данное деление справедливо для технической стороны игры. С точки зрения геймплея карта делится только на тайлы.
Каждый тайл занимает площадь в 1369 кв.км (в ходе балансировки данное значение может измениться). В рамках этой площади на тайле могут располагаться районы (в городах), постройки (вне поселений), тайл может быть разделен различным типами биомов и т.д.
В зависимости от биома, на тайле может залегать определенное количество ресурсов. Так, на луговых равнинах выгодно размещать поля, площадь которых зависит от площади сельскохозяйственных земель тайла.


Кроме того, каждый тайл обладает определенным уровнем транспортной инфраструктуры, от чего зависит скорость перемещения армий и пропускная способность торговых караванов. Однако, в отличие от армий, караваны могут перемещаться только по магистральным путям, которые обозначаются на карте. Данный путь может менять свою траекторию, в зависимости от качества транспортной инфраструктуры соседних тайлов, уровня преступности и других факторов.


Немного расскажу об уровне преступности тайла. Уровень преступности тем выше, чем ближе к очагу преступлений: поселению игрока или другой страны, либо бандитского/пиратского поселения. Если кто-то помнит, в первом Rome Total War на карте постоянно появлялись бандитские армии. Так вот именно их симулирует данный параметр, только без необходимости постоянно водить армии по всей стране, чтобы их уничтожать. Мятежные армии будут представлены в виде полноценных армий.


Помимо транспортной инфраструктуры, есть параметр городской инфраструктуры. Городская инфраструктура представляет собой уровень развитости различных служб и инженерных сетей поселения (доступность и качество ЖКХ, средств связи, городского транспорта, общепита, розничной торговли, экстренных служб и пр.). Городская инфраструктура доступна не только в городах, но и в деревнях. Для создания благоприятных условий в поселениях игроку надо будет балансировать между развитием транспортной и городской инфраструктурой.


На этом, пожалуй, все. В следующем дневнике мы поговорим об административном делении и видах поселений.

 

P.S.: Мы создали группу игры Вконтакте (Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ). Присоединяйтесь, чтобы получать уведомления о новых дневниках.

Изменено пользователем alexandrovis
Ссылка на комментарий

Diplomate

Очень интересно. Опыта создания игр у меня нет, рисовать не умею. Но если вдруг понадобится программист, могу попробовать помочь. 

Ссылка на комментарий

Zemlaynin
5 часов назад, Diplomate сказал:

Очень интересно. Опыта создания игр у меня нет, рисовать не умею. Но если вдруг понадобится программист, могу попробовать помочь. 

 

Стукни мне в скайп

Ссылка на комментарий

alexandrovis

Дневник разработки № 8

 

Всем привет! Сегодняшний дневник посвящен административному делению территории и типам поселений.


В прошлых дневниках я уже упоминал, что в игре есть 3 уровня управления: страна, регион и административная зона. Начнем с низшего уровня – административной зоны.
Административная зона – территория с динамичными границами, находящаяся в управлении поселения. В рамках этой территории жители поселения могут строить все, что угодно в рамках текущей программы развития. Данную зону имеют все без исключения типы поселений: от деревень до городов. Если какой-то город в регионе образует новый регион, все тайлы его административной зоны также становятся частью нового региона.


Как Вы уже догадались, административные зоны группируются в более крупное образование – регион. Регион - территория с динамичными границами, состоящая из определенного количества административных зон. Регион обязательно включает в себя столицу (столичный город) региона. В отличие от административной зоны, регион одновременно может быть страной (состоящей из одного региона). Кроме того, игрок может напрямую управлять регионом (тогда как административными зонами – только через законодательство).


Наконец, страна – высший уровень управления в игре (не считая международных коалиций), представляющий собой один регион, либо коалицию регионов. Под коалицией подразумевается не федеративное устройство страны, а система, по которой выстраиваются отношения между различными административными единицами в игре.
Каждая страна имеет столицу, а как следствие – и столичный регион. Регион данного типа имеет тот же функционал, что и обычный регион, однако в дополнение в нем размещаются высшие государственные органы: министерства и законосовещательный орган.


Как я уже говорил, каждый уровень управления имеет свое центральное поселение. Это может быть деревня (только для административной зоны), город или кочевье.
 Деревня - тип поселения, ориентированный на производство пищи или добычу ресурсов. Со временем деревня может быть улучшена в город.


Кочевье - тип поселения кочевых культур, способный перемещаться на другие тайлы. Оседая, кочевье образует деревню или город (в зависимости от размера кочевья).


Город - тип поселения с множественными формами деятельности, но с определенной специализацией. Город не обязательно является следствием развитие деревни, но может быть построен с нуля, либо образоваться из форпоста. В отличие от деревни или кочевья, город, являющийся столицей региона или страны, может иметь до 3 Чудес Света (по 1 каждого уровня: региональное, национальное и мировое).


Больше подробностей о каждом из типов поселений мы раскроем в следующем дневнике.
 

Ссылка на комментарий

alexandrovis

Дневник разработки № 9

 

Всем привет! В прошлом дневнике мы кратко осветили тему поселений. В этом дневнике рассмотрим их подробней.

 

Деревня
В игре представлено 3 базовых типа деревень: сельскохозяйственная, ресурсодобывающая и военная.
Сельскохозяйственная деревня ориентирована на обработку сельхозугодий.
Ресурсодобывающая деревня ориентирована на добычу полезных ископаемых. Тип добываемых ресурсов зависит от спроса на ресурс.
Военная деревня обобщает под собой разновидности деревень, жители которых настроены против игрока.

  • Повстанческая деревня: деревенские отряды будут оборонять свою деревню и защищать свою независимость. Деревня становится повстанческой в случае слишком низкого уровня лояльности населения к власти.
  • Бандитская (пиратская) деревня: деревенские отряды будут нападать на поселения и торговые маршруты, расположенные рядом. Деревня предпочитает переход в это состояние в условиях отсутствия легальных способов поддержания приемлемого уровня жизни.

Приведенные типы деревень условны. Все деревни имеют одинаковые характеристики, однако выбираемый ими вектор развития зависит от спроса на тот или иной ресурс, либо от уровня лояльности власти.
Новые деревни в игре могут образоваться либо автоматически, либо вследствие принятия определенного решения. Место автоматического возникновения деревень определяется исходя из привлекательности прилегающих территорий для обработки, а также на определенном удалении от остальных поселений и обработанных тайлов. При возрастании населения старых поселений до некоторого уровня повышается шанс на возникновение новой деревни в некотором удалении. Ее население не появится из ниоткуда, а мигрирует из поселения. Новые деревни могут возникать как внутри региона, так и за его пределами.

 

Город
В игре существует множество специализаций городов:
Административный центр
Научный центр
Торговый центр
Культурный центр
Религиозный центр
Промышленный город

Чем выше город в иерархии (провинциальный город – столица региона – столица страны), тем большие эффект дает его специализация. Так, если игрок решил строить огромную империю, столицей лучше установить административный центр (для контроля больших территорий), для торговой империи подойдет торговый центр, а теократии предпочтительней для столицы религиозный центр государственной религии и т.д.

Отличие города от деревни: более развитая социальная инфраструктура; занимает определенную площадь тайла и при ее превышении расширяется на соседний тайл; создает административную нагрузку; возможно строительство Чудес света (в столицах); разнообразный стратификационный состав; деление на районы.

 

Кочевье
В отличие от города, игра за кочевья сконцентрирована не столько на управлении населением, сколько на управлении племенными кланами (фракциями).
Каждый клан имеет свое кочевье. Элитой каждого кочевья является каждый член клана. Однако в кочевье может проживать и население, не являющееся частью клана (рабы, наемники и т.д.) Чем боле сплочены (контролируемы) кланы, тем выше сила племени в столкновениях с другими народами. Подобная клановая структура общества характерна для всех стран с варварскими элементами правления. Однако в оседлых государствах кланы не всегда выступают в качестве элиты поселения.
Кроме того, в отличие от городов, смена господствующих элит в племени происходит не постепенно посредством перетекания населения из одной фракции в другую, а сменой статуса фракций. В игровой механике это представлено в виде смены столичного кочевья и статуса элит.
Еще одной отличительной чертой кочевий является возможность перемещаться по карте. Это возможно двумя способами:

  • перемещение кочевья правящего клана, тогда как остальные кочевья перемещаются в автоматическом режиме (вследствие недостаточного уровня контроля или по решению игрока);
  • перемещение всех кочевий с достаточным уровнем контроля вручную. Слабо контролируемые кочевья перемещаются в автоматическом режиме.


На этом все. В следующем дневнике мы поговорим о городских районах и региональных постройках.
 

Ссылка на комментарий

Zemlaynin

Дневник разработки № 10

Всем привет!

Юбилейный 10й выпуск :)

Вот уже почти прошли очередные три недели работы над проектом. Проделана объемная работа которую не показать на скринах, но я попробую описать вкратце.

Поставленной целью у меня было к середине февраля прикрутить уже первое поселение и отобразить его на карте, но планы немного поменялись в процессе разработки.

План на эти три недели был следующий:
1. Завершить работу над генерацией карты, реализовать распределение ресурсов по карте.
2. Изменить стартовое окошко где предусмотреть место для разного функционала игры.
3. Неким образом визуализировать процесс загрузки и генерации карты.
4. Визуализировать поиск пути.
5. Разместить стартовые поселения и юниты на карте.

Данный план пришлось нарушить, так как появилась необходимость, для удобства поиска сгенерированных ресурсов показывать текущее местоположения на карте.  Для этого пришлось реализовать элемент пользовательского интерфейса — миникарту. Для этого в свою очередь пришлось проработать и реализовать всю систему классов по работе с UI. Это заняло практически целую неделю.

И так согласно плану было реализовано распределение ресурсов по карте. И на этом этапе с генерацией карты закончено.

Стартовое окошко я сделал за пол дня, а вот с отображением процесса загрузки пришлось повозиться целый день.

 

screen01.jpg

 

 

screen02.jpg


При выборе Юнита теперь показывается путь его перемещения и изменяемый путь:

 

screen03.jpg

Также на этой картинке вы могли заметить первый элемент интерфейса — миникарту. Что бы представить огромный размер средней карты посмотрите на следующий скрин, где на миникарте показана область с максимальным отдалением камеры.

 

screen04.jpg

Внимательный читатель мог заметить что на высоких горах появилось некоторое подобие снежной шапки.

 

Также была проведена работа по оптимизации производительности. Данная работа была произведена  спонтанно. Я уже думал что оптимизировал все что можно добившись стабильного показателя FPS на разных машинах. Но как говориться нет придела совершенству. И в один прекрасный вечер я засыпал с мыслями о реализации UI, но видимо мой мозг продолжал все еще решать интересную ему задачу оптимизации. И проснулся я уже с готовой реализацией, пришлось немного изменить систему хранения видимых на экране тайлов. Данная работа заняла буквально пять минут кодинга, но дала снижение нагрузки на процессор в районе 15-20%. Ух как это было круто! :)

 

Теперь задача на ближайшую неделю: прикрутить кнопку «Конец хода» и осуществить первый ход в игре! Работы тут не початый край, многопоточнось!  Хочу каждого AI игрока разместить в своем потоке. Ну и наконец прикрутить первые города и деревни.

Изменено пользователем Zemlaynin
Ссылка на комментарий

alexandrovis

Дневник разработки № 11

 

Всем привет! Сегодняшний дневник будет посвящен городским районам и чудесам света.

 

Городские районы
В городе игрок может построить до 7 районов, которые можно расширять для размещения на их территории различных инфраструктур:
Административный – выполняет функции контроля и выработки административного ресурса; 
Промышленный – практически все виды товаров (за исключением роскоши) производятся в этом районе;
Культурный – в этом районе производится роскошь, престиж, а также создаются некоторые модификаторы для города;
Научный – отвечает за повышение грамотности населения и ускорение развития технологий;
Религиозный – развитие данного района способствует повышению влияния государственной религии;
Коммерческий – здесь создается транспортная и финансовая инфраструктура;
Социальный – обеспечивает население жильем и городской инфраструктурой.
Первые 6 из перечисленных районов могут быть построены в центре города и определять его специфику. Кроме того, эффект от всех регионов зависит от расположения города у берега или в глубине континента.

 

Характеристики районов
Стоимость - ресурсы необходимые для расширения района.
Содержание - ресурсы необходимые для ежеходового обеспечения района.
Рабочая сила - количество рабочих рук, которые требуются для эффективной работы района.
Площадь - фактическая площадь и доступная для расширения района.
Эффект - бонусы и малусы от функционирования района.

 

Чудеса света
Вместо обычных построек в городах строятся чудеса света 3-х видов: регионального, национального и мирового значений. Эффект от того или иного вида чуда распространяется в соответствии с их масштабом.
Перечень чудес, возможный для строительства в городе, зависит от центрального района города. В районе может находиться до 3-х чудес, по 1 каждого уровня. Однако, возведение чуда более высокого уровня снижает эффект чудес более низкого уровня. Эффект чуда может также снизиться из-за наличия похожего чуда в зоне влияния и видимости.
От масштаба чуда зависит его цена и эффект. Кроме того, эффект от малого чуда легко может пропасть при невыполнении определенных условий, тогда как эффект мирового чуда полностью не пропадает никогда.

 

На сегодня все. В следующем дневнике мы поговорим о региональных постройках.

Ссылка на комментарий

alexandrovis

Дневник разработки № 12


Всем привет! В этом дневнике мы поговорим о внегородских постройках.
Данный постройки могут возводиться как на региональных тайлах, так и вне региона.


Характеристики региональных построек:
Стоимость - ресурсы необходимые для возведения постройки.
Содержание - ресурсы необходимые для ежеходного обеспечения постройки.
Рабочая сила - количество рабочих рук, которые требуются для эффективной работы здания.
Местоположение - можно ли возводить постройку только внутри региона или везде.
Улучшение - некоторые постройки можно перестраивать в другие более значимые постройки. Например, деревянный форпост в каменный.
Условия размещения - большинство построек можно возводить только на тайлах с определенными условиями.
Эффект - постройки могут давать самые различные эффекты: от рядовых бонусов до возможности добывать ресурсы и снабжать армии.

 

Список построек:
Сельскохозяйственные: сады, пастбище, поле, лагерь;
Добывающие: каменоломня, лесопилка, шахта, буровая вышка;
Военные: форпост, военная база.
Отдельно хотел бы отметить форпосты. В отличие от остальных построек, их можно устанавливать и вне региона. Форпост имеет свою зону контроля, что затрудняет скорость прохода вражеских сил через него, а также уменьшает уровень криминогенной обстановки в округе. Кроме того, форпосты с достаточно высоким уровнем развития городской инфраструктуры могут быть преобразованы в город.

 

На этом все. В следующем дневнике мы начнем цикл, посвященный внутренней политике.
 

Ссылка на комментарий

Zemlaynin

Дневник разработки №13

 

Прошло две недели с опубликованного мной дневника. Работы в очередной раз проделано огромное количество, но в отличии от прошлого дневника, я смогу снабдить свой рассказ обильным количеством скиншотов, их действительно много!

Начну с нового экрана загрузки:

 

screen009.jpg

Напомню о поставленных мною на первую неделю задачах: прикрутить кнопку «Конец хода» и осуществить первый ход в игре; реализовать многопоточнось в ИИ противников; прикрутить первые города и деревни.

Но данный план растянулся на две недели и последний пункт по деревням я выполнил буквально сегодня, но не будем забегать вперед.

Нарисовав кнопку «Конец хода», сделав ее кликабельной и описав функцию начала нового хода, я приступил к написанию алгоритма передвижения юнитов,  но тут я понял что у меня нет одной очень важной функции. У меня не реализован «Туман войны», а так как туман войны зависит от местонахождения юнитов, то сперва необходимо реализовать этот механизм, но для этого понадобилось дописать класс который бы хранил в себе информацию о карте для каждого игрока.

Механизм был понятен и прост, реализовав его за пол дня, я еще больше суток потратил на механизм отрисовки этого злосчастного тумана:

 

screen010.jpg


screen011.jpg
screen012.jpg

В конечном итоге он выглядит немного по другому, но пока не покажу, чтобы не показывать другие наработки, о которых расскажу по очереди.

Работа кипела, и ранним утром 20 февраля, когда я планировал завершить работу над передвижением юнитов и их взаимодействием с картой и туманом войны,  меня ждал сюрприз.
Каждое рабочее утро я обхожу все форумы на котором мы рассказываем о своем проекте. И на одном из них меня ждало сообщение от Yoggi, он буквально так и написал: Приветствую! Нужны пальмы? Подарю, если требуются.

Конечно я согласился! Это было так неожиданно и круто само по себе. И отложив все дела я попробовал прикрутить пальмы:

 

screen013.jpg

Сделав с них паки, получил вот такие джунгли:

 

screen014.jpg

Отвязав камеру, я наслаждался видами:

 

screen016.jpg

НО! Это я показываю уже вечерний результат. Когда я, первый раз, подгрузил пальмы в проект, они выглядели жутко, но не из-за того, что они были плохи, а из-за того.... Я понял что у меня есть какая-то проблема с освещением загружаемых объектов... И целый день я убил на поиск причины такого неправильного освещения, и к вечеру облегченно вздохнул найдя решение.

Увидев результат своей работы, Yoggi предложил и быстро воплотил простенькую елочку:

 

screen017.jpg


screen015.jpg
screen019.jpg

С отвязанной камерой я даже заглянул под землю :)

 

screen018.jpg

Озадачившись тем моментом что у меня деревья могут расти на воде, я взялся за поиск решения и в процессе поиска понял:

 

screen020.jpg

В большинстве других игр просто забили на эту проблему :) Но проблему я реши, просто перестал  высаживать паки деревьев на берегах.

Утром следующего дня меня ждал очередной сюрприз от  Yoggi:

 

screen022.jpg


screen023.jpg

Быстро накиданные мной паки давали не очень хороший результат:

 

screen024.jpg

Пришлось малость повозиться с расположением деревьев в паках:

 

screen025.jpg


screen026.jpg

Целый день я крутил и компоновал пальмы и елки чтобы сделать с них красивые структуры.
Забегаю вперед скажу что на первые десять паков пальм я потратил целый день! Но через неделю я уже мог делать по 20 паков за 2 часа! Ух и поднаторел я в 3D моделировании за эти 2 недели :)

Параллельно с работой я переписывался с  Yoggi, он сказал, что не готов подключится к проекту, так как по уши завален работой. Но готов иногда помочь с модельками по мере сил. Но он продолжал каждый день радовать меня новыми объектами! Поэтому, я считаю его полноценным участником нашей команды! Я очень благодарен этому человеку, он вдохнул, вселил в меня новые силы, подарил положительные эмоции от созерцания того как меняется окружающий мир нашей игры. Алексей огромное тебе спасибо!

И так, утром следующего дня:

 

screen027.jpg


screen029.jpg
screen030.jpg

Пальма шик! И новая елка:

 

screen031.jpg

Теперь елка не подходит к пальме... начали эксперименты по текстурированию:

 

screen032.jpg


screen033.jpg
screen034.jpg
screen035.jpg
screen036.jpg
screen037.jpg
screen038.jpg

Тем самым временем, пока Алексей занимался текстурой елки я прикрутил полученные от него камыши:

 

screen039.jpg


screen040.jpg
screen044.jpg
screen045.jpg
screen050.jpg

А тут и новая елка подоспела:

 

screen051.jpg


screen048.jpg


Наведя красоту, я вернулся к передвижению Юнитов. Теперь отправив юнит и нажав конец хода можно было наблюдать, как он бежит по карте разгоняя туман войны. Юнит останавливается потратив свои очки хода. Вот к примеру что-то в районе 40-50, а может и больше ходов, провел так сказать экспедицию:

 

screen052.jpg

Эта задача может показаться простой, ведь у меня уже был реализован алгоритм поиска пути, но на самом деле все намного сложнее... Пришлось алгоритм переделывать, с учетом того что у нас есть неизведанные области и самым сложным было реализовать быстрый перерасчет пути при получении новой информации о карте. Алгоритм получился отличный, отправляешь юнита в закрытое пространство, а там вдруг на пути следования океан и с берега не видно что там дальше... и бежит юнит вдоль материка пока не убедиться что туда нет доступа.

Теперь у нас есть и бамбук и первые зачатки лиственного дерева:

 

screen063.jpg


screen064.jpg

Для понимая объема проделанной, в течении последней недели, работы, скажу вам что я за эту неделю поспал всего порядка 20 часов, без устали реализовывая новые фишки. Признаюсь малость устал, но не мог начать отдыхать пока не реализую последнюю задачу из списка, вот она - первая деревня мечты: :)

 

screen066.jpg


screen067.jpg

Деревню лепил сам, это так скажем концепт.

Задача на следующею неделю одна, полностью проработать систему поселений: городов, деревень и кочевья, так сказать, заложить крепкий фундамент.


Жду критики и отзывов!

Присоединяйтесь к нашей группе в ВК Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

 

Изменено пользователем Zemlaynin
Ссылка на комментарий

alexandrovis

Дневник разработки № 14

 

Всем привет! В прошлом дневнике мы обещали начать цикл тем, посвященных внутренней политике, однако в обсуждении нас попросили подробней осветить тему ресурсов.
Тема ресурсов входит в блок достаточно сложной темы, посвященной экономике, поэтому некоторые моменты могут быть не до конца понятны. Тем не менее, в комментариях мы с радостью ответим на все вопросы.


Ресурс - сырье или товар, необходимый для производства другого ресурса или удовлетворения нужд населения или армии, поддержания построек или траты на определенные действия.


Мы старались отразить все исторически значимые виды ресурсов:
1. Пищевые: мясо, рыба, зерно, овощи, фрукты, продукты питания (молочные продукты, готовые блюда и т.д.), консервы, алкоголь
2. Сельскохозяйственные: аграрные ресурсы, скот (КРС, вьючные животные), технические культуры
3. Стратегические ресурсы: металлы (медь, олово, железо, алюминий), энергоресурсы (уголь, нефть, газ, уран), сера, золото, серебро, драгоценные камни
4. Промышленные: строительные материалы, дерево, кожа, волокно, ткани, бумага, орудия труда, оружие, роскошь, товары народного потребления, механизмы, техника, электроника, промышленные товары, энергия, корабли, автомобили, самолеты, поезда, топливо, ТНП, лекарства, ВИ, химикаты, пластмассы, местные товары
5. Услуги, рабы, деньги

Количество ресурсов достаточно большое, однако мы снабдим игрока всем необходимым инструментарием, чтобы оперирование ресурсами не занимало много времени.

 

Характеристики ресурсов:
Качество - качество ресурса, зависящее от используемых технологий для его производства. Влияет на себестоимость и наценку.
Цена - зависит от величины спроса и величины предложения ресурса, а также от его производственной себестоимости.

 

Некоторые ресурсы имеют индивидуальную специфику функционирования, однако каждый из них мы разберем после завершения базового цикла дневников.

Ссылка на комментарий

alexandrovis

Дневник разработки № 15

 

Всем привет! В этом дневнике мы поговорим о внутренней политике. А точней об административном ресурсе и связанными с ним механиками.


Ключевыми показателями внутренней политики являются административная нагрузка и административный ресурс.
Административная нагрузка — это уровень постоянных административных трат на управление страной, а также на различные действия игрока. Административная нагрузка страны складывается из нагрузки от регионов и высших правительственных структур.


Административный ресурс - ресурс управления, который представляет собой количество гос служащих и их эффективность управления. Если административная нагрузка превышает административный ресурс, игрок начинает терять контроль над регионами.


Кроме того, административный ресурс может тратиться на коррупционную деятельность. Коррупция в игре представляет собой торговлю управленческим аппаратом административным ресурсом. Как и для любого ресурса, на административный ресурс действуют законы спроса и предложения. Страты и фракции, завладевшие частью административного ресурса города, региона или страны, получают возможность определять действия выбранной гос структуры.
Помимо торговли административным ресурсом, коррупция выражается в виде показателя региона или правительственных структур, который определяет эффективность траты бюджетных средств на их нужды.


Таким образом, игрок не сможет безболезненно расширять территорию своей страны без обеспечения достаточного уровня стабильности в стране и уровня технологий, достаточного, чтобы обеспечить все административные нужды.


На сегодня все. В следующем дневнике мы поговорим о формах правления.

Ссылка на комментарий

Zemlaynin

Дневник разработки №16

Прошедшие две недели были сложными и к сожалению, по личным причинам, я мало времени смог уделить нашему проекту.
За первую неделю я не написал ни строчки кода, ходил обдумывал концепцию построения взаимосвязей страна->регион->административные зоны->поселения. На первый взгляд схема проста:

screen001.jpg

Данная блок схема не отражает всей глубины связей и на самом деле все сложней. Потребовалась значительно большее время на продумывание всех возможных зависимостей, самой структуры классов, их наследованием и интерфейсов (так как в Java не поддерживается множественное наследование).

Спустя неделю концепция была готова у меня в голове и предстояло теперь все это запрограммировать. Но, я с трудом смог взяться за это дело, пугал объем предстоящей работы и не хотелось браться за него, зная что мне предстоит отвлечься на свои личные дела.
Пока я утрясал свои дела, малость поменял систему генерации лесов, теперь леса растут гараздо кучнее:

screen002.jpg

По мимо этого с Алексеем мы обнаружили баг отображения загружаемых объектов: вот так выглядел куб:

screen003.jpg

Пришлось перепроверить матрицы трансформации, была ошибка в матрице поворота из-за чего нарушались пропорции объектов.

Алексей сделал новые модельки деревни:


screen004.jpg
screen005.jpg
screen006.jpg
screen007.jpg

Наконец приступил к реализации задуманной мной модели административных единиц. За пару дней реализовал весь скелет с реализацией первоочередных пересекающихся методов. Но предстоит еще большой объем работы по дописыванию необходимых методов у каждого класса административной единицы. Но это будет ждать меня на следующей неделе.

Тем временем Алексей реализовал 3 концепта городов: простой город без специализации, торговый и религиозный город:


screen009.jpg
screen010.jpg
screen011.jpg

Сейчас у нас идет жаркая дискуссия о финальном виде городов. Скорее всего уже в следующем дневнике я смогу рассказать о том, как будут выглядеть наши города.

И в заключении хочу сообщить хорошую новость, к нашему проекту присоединился еще и художник!
Вот набросок интерфейса миникарты:

screen008.jpg

По мере своих возможностей, он начал работу над реализацией вот этой концепции интерфейса

Основной экран

screen012.jpg


Экран города

screen013.jpg


Экран юнита

screen014.jpg


Всем спасибо за внимание!
Вступайте в нашу группу Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

 

 

Ссылка на комментарий

Присоединиться к обсуждению

Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Ответы 88
  • Создано
  • Последний ответ
  • Просмотры 13920

Лучшие авторы в этой теме

Популярные сообщения

Zemlaynin

Дневник разработки № 6 Всем привет! За последние три недели немного выбился из графика работы над проектом. Причиной тому было вот это : Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. Потратил 4 дня

Zemlaynin

Дневник разработки № 2   Данный проект я пишу на Java и все отображение графики происходило стандартными средствами Java и поэтому все рисовалось силами процессора. Но в какой-то момент, на

alexandrovis

Дневник разработки № 21   Всем привет! Этим дневником мы завершим освещение внутриполитических аспектов игры.   Законы Если формы правления говорят нам, кто правит страной, то за

alexandrovis

Дневник разработки № 24   Всем привет! В этом дневнике мы поговорим о фракциях. Фракции представляют собой группы интересов, которые представляют собой силу, способную влиять на поли

alexandrovis

Дневник разработки № 25   Всем привет! В этом дневнике мы поговорим о культурах и цивилизациях.   Культура - этническая принадлежность народов, населяющих страну. Она строится на к

alexandrovis

Дневник разработки № 26   Всем привет! В этом дневнике мы поговорим о религии.   Наряду с культурой, религия в игре является вторым фактором идентичности. Если ценностный аспект ре

alexandrovis

Дневник разработки № 29   Всем привет! Сегодняшний дневник будет посвящен армиям. Реализация армий в игре похожа на ту, что используется в Europa Universalis и подобных ей играх. Т.

alexandrovis

Дневник разработки № 1   Всех с Новым 2018 годом! В честь такого события хочется поделиться некоторой информацией о разработке. Но для начала немного предыстории. Около года назад я наш

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...