Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
171 - RTS III
Сегодня, 13:06
 VovaOne
Разрешите представит…
9.08.2020
 Viktor
171 - ?
27.07.2020
 VovaOne
Пользователь без ник…
21.07.2020
 Mefistofel
170 - JAM!
5.07.2020
 Plastic
Pixel Collab III
26.06.2020
 Victor
169 - Virus
5.06.2020
 Mefistofel
Генерация подземелий…
18.04.2020
 Mefistofel
Программист JavaScri…
16.04.2020
 alex_pr
169 - ?
12.04.2020
 DjKarp
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 1,762
новичок: Aleksey
Обсуждение «The Great tribes - [TBS]»
Страница 3 из 3 < 1 2 3
Zemlaynin
Avatar пользователя

Опубликовано 15.01.2019 02:06 (2 года назад)    #
Вышла статья на Хабре https://habr.com/post/436040/
RTS III:Не участвую.
Zemlaynin
Avatar пользователя

Опубликовано 18.02.2019 06:43 (год назад)    #
Дневник разработки №34


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

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

В один момент, я решил накидать некоторую схему нашего проекта, что позволило малость систематизировать все свои мысли и увидеть степень выполнения тех или иных задач. Кому интересно оценить масштаб, можно посмотреть полученную схему: https://mm.tt/1209438933?t=mBE5c38pFT

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



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




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

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




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



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


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





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





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




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






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




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





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

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

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





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






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





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




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



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




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


Спасибо за внимание!
Вступайте в нашу группу в ВК: https://vk.com/thegreattribes

редакция от Zemlaynin, 18.02.2019 07:10

RTS III:Не участвую.
Zemlaynin
Avatar пользователя

Опубликовано 23.03.2019 09:38 (год назад)    #
Дневник разработки №35

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

Но после прочтения интересной статьи https://gamedev.ru/industry/articles/Godot_making_game откинул ряд поставленных задач и список получился:

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

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

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















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





И у нас появилось одно небольшое чудо света:




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




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

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

редакция от Zemlaynin, 23.03.2019 09:39

RTS III:Не участвую.
Zemlaynin
Avatar пользователя

Опубликовано 29.12.2019 18:35 (8 месяцев назад)    #
Дневник разработки №36

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

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

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

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


[spoiler]

[/spoiler]


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


[spoiler]



[/spoiler]


На форумах никто не мог мне помочь, было много советов но все были мимо. В итоге после штудирования документации по OpenGL я пришел к выводу что моя ошибка была в особенном поведении OpenGL 4.5, а точнее ошибка была в Non-uniform flow control
https://www.khronos.org/opengl/wiki/Sampler_(GLSL)#Non-uniform_flow_control

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

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





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

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





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





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





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

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





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

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





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





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





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

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

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

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

https://vk.com/thegreattribes

https://discord.gg/ZhTzDB

редакция от Zemlaynin, 29.12.2019 18:50

RTS III:Не участвую.
Страница 3 из 3 < 1 2 3
Перейти на форум:
Конкурсы
Открытые конкурсы:
RTS III

Старт: 29 июля 2020г.
Финиш: 18 августа 2020г.

Участники: 4
Недавние конкурсы:
 170 - JAM
 169 - Virus
 168 - Ballistics II
 167 - RPG VIII
 166 - Defence V
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

20,401,780 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.