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

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

Страницы: 1 2
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 уровня управления: страна, регион и административные зоны. Каждый из уровней имеет свою столицу. Только если у страны и региона столичный город является одним из многих городов страны/региона, то в административной зоне может быть лишь одно поселение (как город, так и деревня).
Поселения в игре так же являются одним из центральных игровых элементов. В них сосредоточено все население, производство, да и собственно большая часть геймплея.

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

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

Страницы: 1 2

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

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