Проекты
GameDev.ru / Проекты / Форум / Великие племена (The Great tribes) (2 стр)

Великие племена (The Great tribes) (2 стр)

Страницы: 1 2 3 4 5 6 Следующая »
ZemlayninПостоялецwww5 янв. 201822:54#15
Дневник разработки № 2
С моего последнего поста прошло уже почти 2 месяца, но это не спроста.
Данный проект я пишу на Java и все отображение графики происходило стандартными средствами Java и поэтому все рисовалось силами процессора. Но в какой-то момент, на моем достаточно мощном компьютере, все стало притормаживать и при больших масштабах даже подлагивать.

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

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

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

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

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

+ Показать

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

+ Показать

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

+ Показать

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

+ Показать

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

+ Показать

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

+ Показать

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

+ Показать
+ Показать

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

+ Показать

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

+ Показать

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

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

+ Показать

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

+ Показать

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

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

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

+ Показать
+ Показать
+ Показать

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

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

+ Показать
+ Показать

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

+ Показать
+ Показать

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

+ Показать
+ Показать

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

AlexandrovisПользовательwww10 янв. 201812:40#16
Дневник разработки № 3

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

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

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

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

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

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

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

Правка: 10 янв. 2018 15:47

alt3dПостоялецwww12 янв. 20189:14#17
А почему выбрали квадраты, а не гексы?
ZemlayninПостоялецwww12 янв. 201810:32#18
Потому что гекс не разбить на субгексы, как квадратный тайл на квадратные субтайлы. А у нас механика игры строиться на субтайлах.
LemmingПостоялецwww12 янв. 201812:49#19
Zemlaynin
А чем субтайлы лучше списка построек? Чисто визуализация?
alt3dПостоялецwww12 янв. 201814:39#20
Zemlaynin
Гексы хорошо комбинируются в «круг» по 6 штук, например.
AlexandrovisПользовательwww12 янв. 201817:30#21
Lemming
> А чем субтайлы лучше списка построек? Чисто визуализация?
Концепция достаточно сильно изменилась, поэтому размещения районов на отдельных тайлах не будет. Однако, каждый тайл имеет определенную площадь, поэтому города будут расширяться и крупные города смогут занимать более одного тайла. Но тайловые постройки (поля, шахты, форпосты и пр.) по прежнему планируются.
ZemlayninПостоялецwww13 янв. 20183:34#22
Lemming
> А чем субтайлы лучше списка построек? Чисто визуализация?
На самом деле тут много нюансов, и визуализация в том числе.

Alexandrovis
> поэтому города будут расширяться и крупные города смогут занимать более одного
> тайла.

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

alt3d
> Гексы хорошо комбинируются в «круг» по 6 штук, например.
В круг - да, но сам гекс на гексы не поделить.

AlexandrovisПользовательwww15 янв. 201815:04#23
Дневник разработки № 4

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

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

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

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

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

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

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

AlexandrovisПользовательwww22 янв. 201813:08#24
Дневник разработки № 5

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

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

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

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

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

DjeeZПостоялецwww22 янв. 201814:43#25
Zemlaynin
> но сам гекс на гексы не поделить.
Ещё как поделить.
Нельзя поделить только самый маленький в иерархии гекс.
Который вам по этому же определению делить и не понадобится.
А как только понадобится он сразу перестанет быть самым маленьким и вновь прекрасно поделится.
Присмотритесь и увидите.
PolariusBearПостоялецwww22 янв. 201819:14#26
Молодцы, что упорно двигаетесь вперед !
Мы, как команда проекта mciv.ru, вас морально поддерживаем.

Но не лучше ли всем русско-язычным циво-делам пилить что-то на одном общем движке ?

Мы сейчас планируем помочь вот этому новому  проекту https://gamedev.ru/projects/forum/?id=232854
с нашими программными наработками. С тем, чтобы потом на этом движке сделать свою "цивилизацию мечты".
Концепт про античность с упором на отношения народов/правителей,  дипломатию, борьбу за вассалов и др.  у нас уже написан. Рабочее название "Диадохи".  Правда, нам больше нравится 2D (примерно вот такое в идеале:
https://lh5.ggpht.com/eYNyP-cbYwKqpDvVQFXqbIixBVrkAp5HTFQZEiw1HRa… V8H0fnTE=h900)
и вообще мы хотим попробовать выйти на рынок планшетов с этой игрой. Но в этом движке есть и режим 2D и режим 3D для карты.

Так что, может быть, вам тоже объединиться с  проектом  от maewyn  ? Чтобы вместе пилить графику, интерфейсы, ai.
И тогда вы сможете в 3-4 раза быстрее  сделать основные "вкусные" элементы вашего концепта - непрямое управление городами, борьбу фракций и др.
А уже во второй версии игры,  после успеха первой, сможете ввести хитрую боевую систему и под-хексы.

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

Правка: 22 янв. 2018 19:22

AlexandrovisПользовательwww22 янв. 201820:02#27
PolariusBear
Спасибо за поддержку!
Проект по ссылке интересный, но предварительно видятся сложности в возможности совместной реализации некоторых направлений ввиду различия подходов деления карты, да и ряда других вещей. В общем надо обсуждать на конкретике.
Что касается общего движка, то тут еще сложней, т к подходы к реализации различных элементов сильно разнятся.
ZemlayninПостоялецwww23 янв. 201813:17#28
DjeeZ
> Ещё как поделить.

Не понимаю как это сделать. Покажите разбитый на субгексы гекс.

PolariusBear
> Мы сейчас планируем помочь вот этому новому проекту
> https://gamedev.ru/projects/forum/?id=232854

Этот проект я понимаю делается на Unity. А ведь там есть уже практически готовые  http://catlikecoding.com/unity/tutorials/ можно использовать и их наработки.

Конечно хотелось бы поработать совместно, но наш проект сильно отличается от проекта maewyn.

DjeeZПостоялецwww23 янв. 201820:47#29
Zemlaynin
> Покажите разбитый на субгексы гекс.
Вот смотрите.
Изображение
Всё прекрасно иерархируется. Точно также как и в квадратах можно выделить главный подгекс по центру на каждом уровне.
Можно разбить на двумерный массив по рядам. То что получается не прямоугольник, а параллелограмм для логики программы не имеет большого значения.
Достигается более высокая "плотность застройки" объектами. Гексы не просто рядом расположены, а как бы въезжают друг в друга. На них чудненько размещаются горки, деревца и т.д.
То, что можно назвать "неровными краями" на самом деле является преимуществом, т.к. неровные края материков и островов, городов и т.д. тоже не эталон прямизны. И если бы гекс разложился на гекс с ровными краями ни чем бы не помогло в отрисовке, текстуры то всё равно квадратные. а лишь бы лишило нас этого преимущества.
Сами подумайте, наверное игроделы не стали бы использовать гексы если бы это добавляло только сложностей и не давало ничего взамен.
Страницы: 1 2 3 4 5 6 Следующая »

/ Форум / Проекты / Оцените

2001—2018 © GameDev.ru — Разработка игр