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

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

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

alexandrovis

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

 

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

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

 

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

 

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

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

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

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

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

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

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

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

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

 

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

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

Закреплённые сообщения
Zemlaynin

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

Всем привет! И с прошедшими новогодними праздниками!

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

Согласно плану разработки был реализован первый контакт с ИИ:

screen001.jpg

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

screen003.jpg

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

screen004.jpg



screen005.jpg

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


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

screen006.jpg

На средней карте при максимальном отдалении и большом скоплении пальм - это просто жуть! 15 824 756 треугольников! Почти 16 миллионов!!!

Немного погенерировав карты я нашел место с 16,75 миллионами :)

screen007.jpg

Хотя вот подобное место с елками давало всего 8,5 миллионов треугольников:

screen008.jpg

А в среднем сцена состояло из примерно 4 миллионов:

screen009.jpg


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

screen025.jpg

На 40% снизился полигонаж елок! Отличий практически не видно.

Следом мы переделали и пальмы -  полигонаж на пальмах был снижен в 10 раз.  600 - 700 против шести тысяч полигонов в одном паке.

screen026.jpg

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

screen010.jpg

И после первых шагов:

screen011.jpg



screen012.jpg

screen013.jpg

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

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

screen014.jpg

Строить по ним выпукло-вогнутый контур (Concave Hull). С Convex Hull`ом проблем не было, я уже использовал алгоритм  Грэхема (Graham scan). А вот построением  Concave Hull появилась проблема...  Информации на эту тему тему в интернете найти оказалось достаточно сложно. Пришлось писать реализацию алгоритмов с нуля. Не совру, если я скажу что прочитал с десяток разных диссертаций на эту тему. Но все предложенные алгоритмы давали приближенный результат с некоторой погрешностью. После недели мучений и боли мне пришла идея своего алгоритма, возможно я его когда-нибудь опишу :)
В результате уже двух недельного мучения я получил искомый результат и смог строить  Concave Hull практически любой сложности, обходя стороной множества с дырками, просто разделяя их на 2 половины по дырке. Получал контур и триангулировал его:

screen015.jpg



screen016.jpg


Получая на выходе такой результат:

screen017.jpg


Также подвергся упрощению туман войны:

screen018.jpg

И в зонах где присутствовал только туман войны получалось всего порядка 300 полигонов:

screen019.jpg

Но в итоге я был расстроен результатом и расскажу что эти две недели я потратил в пустую... Разработанный мной алгоритм давал ощутимую прибавку в производительности при отрисовке, так как количество полигонов в среднем сокращалось на 60 — 70%. Но генерация карты стала происходить раз в 10 медленнее.... алгоритм был тяжелый по временным затратам.

3 дня я проиграл в ATOM RPG снимая стресс :) Даже на работу не ходил. Слава богу у нас в это время термометр зашкаливал на границе -44 - -46 градусов по Цельсию. И свою хандру я выдал за отмазку о не заводившейся машине.

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

screen027.jpg

Анатолий тем временем сделал юнит кочевья:

screen020.jpg

Пока он лежит отдыхает :)

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

screen021.jpg


Горы стали более рельефными, это заметно без текстуры, так как текстура теперь к ним не подходит:

screen022.jpg

По сетке так вообще отличия очевидны:

screen023.jpg

Осталось дело за малым — нужна новая текстура гор.

Следующим этапом пришлось переписать загрузчик ресурсов и генератор карты. Попутно переделав стартовое меню под эти все дела:

screen024.jpg



screen028.jpg

Теперь загрузка ресурсов идет параллельно и после чего начинается генерация карты.

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

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

 Подведем итоги проделанной работы:
 - Оптимизация графики с программной стороны.
 - Оптимизация графики — модели.
 - Серверная часть.
 - Разбитие рендера на 3 потока.
 - Предзагрузка ресурсов (текстур и моделей).
 - Переписал шейдеры тумана войны, воды и террайна.
 - Сократил потребление оперативной памяти на 20-30%
 - Реализован ряд элементов UI
 - Переделано стартовое окно с новым UI.
 - Устранил ошибки в расчетах нормалей.
 - Подправил холмы.
 - Новые горы.
 - Ввели нормалмапу для террайна.
 - Новое выделение юнитов.
 - Новая анимация юнитов.
 - Окно дипламатии.
 - Действия ИИ. Исследование карты.
 - Действия ИИ. Дипломатический контакт.
 - Действия ИИ. Заключение мира, дружбы или объявление войны.
 - Действия ИИ. Действие юнитов при столкновении.

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


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

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

Zemlaynin

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

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

Zemlaynin

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


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

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

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

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

 


screen001.jpg

Алексей сделал новые оптимизированные пальмы  -270-350 треугольников на один субтайл

 


screen002.jpg

Отличный результат при таком полигонаже!

Еще я успел поэкспериментировать с пользовательским интерфейсом и сделал вот такой набросок:

 


screen003.jpg

И более менее довел его до ума:

 

screen004.jpg

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


Потом я поэкспериментировал с прозрачными объектами, была задумка у нас изначально реализовать подобные поля:

 


screen005.jpg
screen006.jpg

Но, в итоге, решили остановиться на подобном варианте:

 


screen007.jpg
screen031.jpg

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

 


screen010.jpg

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

 


screen009.jpg

 

А вот шедевральные лиственные деревья на 800 треугольников на субтайл:

 


screen011.jpg

Потом я все взял и сломал:

 


screen017.jpg
screen018.jpg

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

Но, результат все равно получился впечатляющим. Первое что хочу отметить — у нас сейчас 16 субтайлов на тайл, а было 9. Раньше сетка субтайлов была 3х3, сейчас 4х4. 484 вершины против 1089 сейчас. В 2.25 раза увеличилось количество вершин на тайл, а производительность осталось на прежнем уровне и генерация карты происходит теперь быстрее, так как самый трудоемкий процесс просчета нормалей теперь происходит быстрее. Это получилось за счет того, что я убрал из расчетов все числа с периодом после запятой, такие как 1\3 и 2\3. Теперь все расчеты как на стороне CPU так GPU происходят быстрее.

Это особенно заметно на больших и огромных мирах:

 


screen024.jpg
screen025.jpg

Увеличение числа вершин и субтайлов позволило реализовать более реалистичные горы:

 


screen020.jpg
screen021.jpg
screen026.jpg

Теперь наш рендер вывозит 32 миллиона полигонов!!! Правда на моейт GTX660 это всего 10FPS

 


screen032.jpg


Переделка всего мира на структуру 4х4 субтайлов повлекло переделку генерации гор, холмов, рек, масштабированию всех моделей. Что в совокупности отняло эти 10 дней.

 


screen022.jpg

 - Также были реализованы следующие моменты о которых хотелось бы мельком рассказать:
 - Нормалмапы для всего террейна.
 - Ошибка с вычислением нормалмап.
 - Исправленна ошибка интерфейса на контейнерах возникающаяя при событиях MouseEntered MouseExited.
 - Режим перехода в/из полноэкранный режим по нажатию клавиши F11.

 

Очень много времени у меня занял один баг:

 


screen030.jpg

5 часов я убил на его поиски :)


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

 

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

Zemlaynin

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

 

Всем привет!
На этот месяц приходились следующие задачи:
0. Решить нужно ли нам реализовать АО (ambient occlusion) или нет.
1. Прикрутить оптимизацию террейна, т. е. вернуть ее на прежний уровень.
2. Реализовать создание файлика настроек и его сохранение.
3. Загрузка текстур в зависимости от настроек качества.
4. Реализовать предзагрузку объектов.
5. Прикрутить разные шахты, и реализовать новый тип построек - карьеры.
6. Сделать как я их называю мультиобъекты. Это такие объекты на карте, которые будут рисовать несколько объектов инстансингом.
7. Реализовать объект интерфейса окно которое можно будет перетаскивать. В том числе и на второй экран, соответственно реализовать поддержку второго экрана.
8. И наконец допилить создание новых городов со стратами и первыми экономическими связями.

 

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

 

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

 

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

 

После такого отдыха первая неделя ушла на выполнение списока мелких задач:


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

 


screen001.jpg

screen003.jpg

screen004.jpg

screen005.jpg

screen006.jpg

screen007.jpg

screen008.jpg


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

 

 


screen010.jpg


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

 

В общем реализовал 4 из 5 основных пунктов. Опять обделил геймплей. На сегодняшний день с движком завязал. Осталось только поправить генерацию рек. И все, следующий месяц только геймплей на повестке. Постараюсь :)

 

Спасибо за внимание!

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

Zemlaynin

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


Привет читатели нашего дневника! Всех с наступающим Новым Годом!

 

Давно не писал я дневников, на то были свои причины. Напомню что рабочий сезон у меня заканчивается в конце октября/начале ноября и к проекту я должен был вернуться в это время.

Но была еще одна причина, почему к проекту я приступил лишь в начале декабря. После моего долгого внутреннего сопротивления я все же взялся за изучение Unreal Engine 4. В свою очередь к изучению UE4 меня подтолкнуло отсутствие подвижек по дизайн-документу у нашего геймдизайнера. За два месяца ковыряния UE4 я понял, что это отличный инструмент для создания игр... Но все же он не для стратегий, точнее не для стратегий с такими огромными картами как у нас.

 

От использования Blueprints я получил только удовольствие, тем более когда воочию можно увидеть и окинуть взглядом всю схему:

 

 


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


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

 

 


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

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


На форумах никто не мог мне помочь, было много советов но все были мимо. В итоге после штудирования документации по OpenGL я пришел к выводу что моя ошибка была в особенном поведении OpenGL 4.5, а точнее ошибка была в Non-uniform flow control Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

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

 

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


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


Придется переписывать еще раз.

 

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


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


Мимолетной была эта мысль, но она меня зацепила, и этот день я провел с этой мыслью в голове.
На следующий день я решил запрограммировать этот момент:


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


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


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


Вроде как не плохо получилось.

 

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


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


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

 

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


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


Реки могут рассекать горы (реалистично ли?).


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


Теперь реки могут выходить с гор.


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


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

 

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

 

Наконец меня отпустило, та мимолетная мысль воплощена в жизнь, можно писать дизайн-документ дальше.

 

Теперь дневники будут выходить чаще. До новых встреч!

 

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

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

 

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

Zemlaynin

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

 

Всем привет!

 

spacer.png

 

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

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

 

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

 

После новогодних праздников, покрутив в голове дальнейшее развитие концепта, я решил начать все с нуля. За неделю мучительных начинаний, я остался стоять на второй или третьей странице своего нового мега концептдока… И тут я принялся искать вдохновения на стороне. 500 часов игры в 6ю цивилизацию, Dawn of Man - 40ч, Jon Shafer's At the Gates - 40ч, Crusader Kings II и потом Crusader Kings III под сотню часов. Кучу разных еще игр.

 

Несколько раз я пытался сесть за написание концепта. Каждая попытка продвигала меня на одну/две страницы вперед и на этом запал пропадал. В итоге, я едва ли описал основы.

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

 

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

 

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

 

Пожелайте мне удачи и терпения :)

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

 

 

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

Northern Neighbour

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

 

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

Zemlaynin
19 минут назад, Northern Neighbour сказал:

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

 

 

Конечно знаком и даже подписан на их группу в ВК. Общего как у стратегий много, но главное отличие это в том что HexWar - многопользовательская пошаговая стратегия. У нас же упор на синглплей. Игра по сети будет конечно, но на более поздних этапах разработки.

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

Northern Neighbour
1 минуту назад, Zemlaynin сказал:

HexWar - многопользовательская пошаговая стратегия. У нас же упор на синглплей. Игра по сети будет конечно, но на более поздних этапах разработки.

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

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

Zemlaynin

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

 

Привет всем читателям дневника!

 

Последний месяц весь ушел на написание концепта. Долго я бился над его написанием. Только вчера закончил.

 

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

 

Итогом моих экспериментов стало 1200+ новых подписчиков группы. Вопросы и комментарии подействовали, терапия сработала :) Неожиданно для себя я получил пару предложений о помощи в работе над проектом, надеюсь у нас получиться сработаться и работа над проектом пойдет теперь быстрее.

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

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

 

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

 

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

 

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

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

Заработал там 76 кармы :) Сложная у них система, так как наш второй сабредит созданый для раскрутки набрал уже 11К кармы.

 

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

 

 

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

 

Началась работа поиска оптимальной цветовой схемы:

 

screen010.jpg

 

 

 

 

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

 

Теперь у нас есть два варианта звукового оформления главного меню:

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

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

Какой вариант выглядит интереснее?

 

 

 

Если будет интересно, то после того как отредактируем концепт могу выложить его в общий доступ. Есть ли такой интерес, жду ваших комментариев?

 

Планы на ближайший месяц:

 

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

- наконец определиться с общем стилем графического оформления игры в целом.

- проработать дизайн документ проекта.

- маркетинг, развитие сообществ игры.

- надеюсь будет больше времени на код и уже начну вводить основные игровые механики.

 

Спасибо за внимание!

 

 

 

 

 

 

 

 

 

 

 

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

Zemlaynin

Всех с наступающим новым 2021 годом!

Команда по разработке игры The Great Tribes поздравляет вас с наступающим новым 2021 годом! И благодарит вас за проявленный интерес к нашему проекту. В уходящем году нам удалось преодолеть барьер в 4000 подписчиков в нашем официальном сообществе в ВК - Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. Для нас ваша поддержка значит многое.

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

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

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

Оставайтесь с нами!

Напоминаю, наши планы на 2021 выпустить рабочую пре-альфу версию проекта весной 2021 года. Так что следите за новостями. А пока вы можете стать тестером в нашем дискорд канале: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. .

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

30 декабря в 15:00 по МСК в нашем дискорд канале пройдет беседа с разработчиками, кто хочет участвовать просто можете пройти по ссылке на дискорд, там вы сможете задать ваши вопросы и получить на них ответы.

С наилучшими пожеланиями от команды разработки The Great Tribes.

 

fon.jpg

 

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

Zemlaynin

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

Привет всем читателям дневника!

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

В группе ВК Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. мы плавно приближаемся к отметке в 4500 тысячи участников и это очень радует. На ютуб канале Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. еще чуть-чуть и 100 подписчиков, надеюсь к этому времени будет что показать, обещанный стрим нужно же будет провести.

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


screen001.jpg


screen001.jpg


screen006.jpg


screen007.jpg


screen010.jpg


screen050.jpg


screen051.jpg

 

 

Новые текстуры биома лугов, его гор и травы:

 

screen046.jpg


screen047.jpg


screen048.jpg

 

 

Концепт степей:
screen055.jpg

 

 

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


Художники ведут работу над концептами первых поселений:

 

screen052.jpg


screen053.jpg


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

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

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


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

screen056.jpg

Если не закрывать игру, то каждая новая генерация мира отъедала все больше ОЗУ.
Причина на первый взгляд была на поверхности — утечка памяти. Я проверил все связи объектов в игре и убедился что все ссылки на них ликвидируются в памяти при выходе из мира в меню игры. Но почему они оставались в памяти было не ясно.
После долгого и мучительного анализа,  я на пять минут отвлекся от задачи и какую же я картину наблюдал после этого:

screen057.jpg

Оказывается 64Гб ОЗУ у меня и 16Гб ОЗУ у тестера сыграли с нами злую шутку :) Это просто сборщик мусора Java не торопился собирать мусор из памяти даже при принудительном его вызове из кода :) Спустя лишь пять минут после простоя игры он  привел память в порядок.

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

Всем удачи и хорошего настроения!

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

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

Gorthauerr

Клон Цивки? Круто :good:

 

@Zemlaynin но может стоит сосредоточиться только на древности?

Скажем временные рамки по начало н.э.? И максимально проработать именно этот временной период?

А то на всю временную шкалу

1)нужно много человекочасов разработки

2)теряется аутентичность и проработка деталей каждой отдельной эпохи.

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

Zemlaynin
1 час назад, Gorthauerr сказал:

Скажем временные рамки по начало н.э.? И максимально проработать именно этот временной период?

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

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

Zemlaynin

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

 

Привет всем читателям дневника!

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

 

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

 

В этом дневнике хочу подвести итоги прошедшего сезона разработки с ноября 2020 по начало мая 2021 года.

 

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

Очень хорошо мы продвинулись в плане графического и музыкального оформления.


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

 

В отношении геймплея и программирования в этом сезоне проделана огромная работа. Полностью проработаны:
- Система бонусов и малусов, прописаны взаимодействия со всеми аспектами игры.
- Религия.
- Население — рост, смертность и прочие характеристики.
- Система распределения игроков по континентам в зависимости от их числа, количества континентов и размеров карты.
- Закончена система организации Страны→Регионы→Поселения.
- Система формирования первых поселений.
- Система городских районов.

 

В работе сейчас находится:
- Интерфейс пользователя.
- Система звуков окружения.
- Наука.
- Производство.
- Экономика.
- ИИ.

 

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

 

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

 

Отдельным этом о котором стоит упомянуть, была подготовка и участие в DevGAMM Spring 2021. Это был интересный опыт. В рамках конференции я презентовал наш проект одиннадцати издателям и инвесторам. Шесть из них проявили интерес к проекту и мы обменялись контактами для дальнейшего обмена информацией. К сожалению большая часть из них констатировала что не может взяться за проект на такой ранней стадии.

 

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

 

Сейчас у меня начинается очередной рабочий сезон и с июня по октябрь 2021 года моя активность по проекту будет минимальна.

 

Всем удачи! Жду вас в наших соцсецях!

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

Zemlaynin

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

Привет всем читателям дневника!

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

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

Особняком и очень давно у меня стояла одна задача — протестировать проект на *nix платформе.

Лирическое отступление. У меня есть небольшое хобби — люблю собирать компьютеры. Всем знакомым знакомых собирал :) Точнее я бы даже сказал что люблю не просто собирать, а дарить компьютерам вторую жизнь. Происходит это не часто, залажу на авито и проглядываю объявления на компьютерную тематику и иногда получается выцепить жемчужину :)

Так вот, на днях, на авито и наткнулся на обьявление : Продам системный блок AMD Athlon 5200+ Dual-Core Processor, 2.5Gb ОЗУ, видеокарта 220GT, HDD160Gb.


screen04.jpg

screen05.jpg


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

Цена вопроса 2600 рублей.

Вечером обрадовал юного продавца, тот уверил что все рабочее. Системник был страшного вида и на нем отсутствовала боковая крышка... На следующий день я запустил этот компьютер. Вентилятор в блоке питания жутко шумел. Разобрав блок питания я понял, что вентилятор восстановлению не подлежит, а найти аналог быстро не получится, да и не стоит это того, достал с полки бесхозный более современный БП. Поставив новый БП я услышал, что вентилятор на процессоре шумел немногим тише... Кулера под под AMD сокет в запасе не было. Вечером купил недорогую башню (699 руб.) с заделом под замену процессора под Phenom 4x, и недолго думая купил новый корпус за 1600 руб.

Собрал все в новом корпусе, воткнув еще старенький SSD под систему.


Все работает. Конечно после моего рабочего и домашнего компа не быстро :)

Установил Java и закинул сборку проекта. Не запустилась! Полез в логи и тут...
Вот я и пролетел! Видеокарта GT220 держит только OpenGL 3.3 а прокт у меня заточен под  OpenGL 4.3.. Пришлось достать с полки свою заглушку GT 710. И сборка получилась практически бесшумной

screen06.jpg


Проект запустился и даже местами выдавал 30fps


screen00.jpg
screen01.jpg
screen02.jpg

Винда была на грани, общее потребление было близко к 2,5Гб, загрузка процессора 80-90% и это на крошечной карте. Но тест был пройден.

Пришло время устанавливать Linux. Выбор пал на Manjaro. Пол дня с бубном не дали результата... Не хотел он вставать на данный компьютер. Скачал я еще тройку разных сборок. И следующая сборка Linux Mint встала с первого раза :)

Ура! Честно сказать, я лет 10 уже не щупал  Linux. Я был приятно удивлен его более быстрой работе на этом древнем компьютере.

Проект запустился сразу!

screen03.jpg


Дальше главного меню я не ушел... Потребление ОЗУ в главном меню 1,3Гб, в Windows 7 было 0,5Гб... А запуск маленькой карты требует 1Гб. Нужно разбираться куда уходит лишняя память в Linux. Предположу, возможно сборщик мусора не так шустр, но есть сомнения. Получается при запуске малой карты я ловил ошибку переполнения памяти.

Заказал на али 4 планки по 2Гб DDR2 памяти за 1000р. и процессор  AMD Phenom X4 9750.

Конечно сомнительное вложение, но для теста проекта самое то :)

Всем удачи!  До скорых встреч!

 

 

 

 

 

 

 

 

_________
добавлено 2 минуты спустя

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

Привет всем читателям дневника!

 

Ура! Отличная новость! Теперь проект работает и на Linux!

 


screen010.png

 

 

Прошедший месяц был не такой продуктивный как хотелось, не отпустила еще работа.

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

Теперь более менее понятны минимальные требования к игре, это 4х ядерный процессор, 4 Gb ОЗУ и любая видеокарта поддерживающая OpenGL 4.3. Но, я склоняюсь в минимальных требованиях указать все же 8Gb ОЗУ. Да и видеокарту нужно все лучше чем GTX 710, а то просадки по fps 15-30.

Хочу выразить благодарность Linux сообществу и людям принявшим участие в тестировании проекта. Тест прошел успешно.

 

 

screen001.jpg

 

 

 На ноутбуке с процессором Ryzen 5 5500u и интегрированной Radeon RX Vega 7 - 60 fps. Пришлось правда обновить ядро Linux чтобы встроенная графика заработала в полную силу.

Закончил систему назначений цветов игрокам, теперь у нас 312 цветовых пар.

 

 

screen002.jpg

 

 

 Важным событием для проекта, был переход c системы управления версиями SVN на GIT и переход с Ant на инструмент сборки Gradle. А еще я отказался от привычного мне NetBeans и пересел IntelliJ IDEA.

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

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

 

 

screen003.jpg

 

 

 Помимо всего прочего, теперь проект собирается под Java 17.

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

Интересен ли было вам увидеть роадмап на ближайшие пол года?

До новых встреч!

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

Zemlaynin

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

 

Привет всем читателям дневника!

 

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

После перехода на 17ю Java и среду разработки IIntelliJ IDEA я начал применять красивости в коде и восхищался красотой конструкций

 

 1.png
 2.png

 

Но в нашей группе в дискорде  https://discord.com/invite/tCzHVsW меня опустили на землю:

 

 3.png

 

Далее я взялся за создание маркеров для юнитов, городов и нейтральных деревень


 screen001.png


 screen002.jpg


 screen003.jpg

 

 

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

 

 screen004.jpg

 

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

 

 screen006.jpg


 screen007.jpg


 screen010.jpg

 

Провел работу над интерфейсом пользователя, придав ему немного объема:

 

 screen011.jpg


 screen013.jpg

 

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

 

Также параллельно шла работа над звуками в игре, были добавлены новые и переработаны старые. И наконец я исправил баг со звуком (проигрывание не тех звуков вместо нужных).

И наконец я взялся за самое интересное — первые действия игрока - Действие игрока с нейтральными деревнями.

 

 screen014.jpg


В один день я шерстил свои архивы и наткнулся на старые скриншоты проекта, и чуть не прослезился:

 

 screen016.jpg

 screen015.jpg

 

Правда видны отличия? В этот момент я понял какая проделана уже огромная работа!

 

Но бывают еще пока не однозначные моменты:

 

 screen017.jpg

 

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

 

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


Теперь вывод сообщений связанных с местом на карте отображается прямо на ней:

 

 screen018.jpg

 

Теперь сообщения отображаются прямо на карте!

 

 

Ближайшие планы:

- Проверка действий игрока при игрой за кочевье, основание поселения, лагерь, атака.
- Автобитва с учетом всех влияющих факторов.
- Реализация Личностей в игре, у которых будет набор своих характеристик, которые нужны в виде отправных точек для действий ИИ. Т.е. у ИИ будет нечто подобное характеру.
- Доработка алгоритма ИИ по исследованию материка.
- Взаимодействии ИИ с нейтральными деревнями.

 

До новый встреч!

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

Zemlaynin

Дневник разработки №44 или 700FPS


Привет всем читателям дневника!

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

Остается теперь сделать полноценную битву и юнит кочевья будет готов полностью. Панель юнита теперь выглядит так:

screen028.jpg

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

Такой фишкой было реализация нового тумана войны, вот его история становления в картинках:

 

screen003.jpg


screen004.jpg


screen006.jpg


screen007.jpg


screen008.jpg


screen010.jpg


screen023.jpg


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

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

 

screen027.jpg

 

А вот и разграбление случайного города:

 

screen028.jpg

 


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

И решил опять взяться за доработку движка и малость отдохнуть от рутинной верстки интерфейса.

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

И наконец дошли руки за реализацию общего шейдерный uniform буфера, чтобы не посылать каждому шейдеру отдельные uniform.

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

В процессе решения задачи, FPS немного повысилось, но я заметил странный баг - при покое камеры FPS прыгал в приделах 10-15%. Это стало сильнее заметно при возросшем показателе.
Начал копать. Что-то сильно мусорило память.... И просадка происходила при запуске сборщика мусора...
На рисунке видна "пила" потребления памяти.

 

screen030.jpg

 


Анализ показывал что все это происходит в рендере...Начал искать… Обратите внимание на FPS - порядка 310-340 кадров,  хотя отключено все в рендере кроме интерфейса!

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

Память выровнялась!!!!!!!!
При тех же условиях теперь рендер интерфейса в 1930 FPS!!!!!!!!!!!!!
АААААААААААААААА это жесть!!!!!!!!! Это в 6 с лишним раз быстрее!!!

 

 

screen032.jpg


После того как все вернул в рендер:

screen033.jpg


Прирост FPS составил порядка 30%. Неплохо. Но что-то продолжало жрать память и тормозить рендер с большими просадками при срабатывании сборщика мусора. Дальнейший анализ позволил выявить узкое место — это был просто тихий ужас!!!

У меня есть класс ShaderProgram который отвечал за загрузку шейдеров их валидацию и привязку различных uniform переменных. Этот код был написан в далекие времена, когда мои познания OpenGL были еще очень скудны. Код был написан по какому-то уроку из первого попавшегося гайда и впоследствии немного расширен для своих целей.


screen040.png


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

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

Быстро все было переведено на рельсы OpenGl 4.3. с указанием расположения всех uniform переменных.

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

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

Сейчас карта строиться по принципу:

 

screen041.jpg

 

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

Все эти манипуляции позволили достичь отличных результатов и показатели FPS достигли значений 700+! Правда это показатели RTX2080.

 

screen034.jpg


screen035.jpg

Тяжеловат малость туман войны! Но, теперь я набрался вдохновения и опять взялся за геймплей!

До новых встреч!!!

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

красавчик, однозначно! буду вдохновляться и мотивироваться твоими дневниками :thank-you:

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

Zemlaynin

Скоро у нас будут постройки первой эпохи всех шести рас.
На подходе Южноиндийская раса.

 

1.jpg


2.jpg


3.jpg


4.jpg

 

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

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

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

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

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

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

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