Civilization и Total War

 

Имя
Пароль  
Забыли пароль?
Регистрация


CIVru.com / "Совет по концепции" - "Мозговой штурм" / Великие племена (The Great tribes)
<< . 1 . 2 . 3 . 4 .  .   Версия для печати . Вверх
Автор Сообщение
Zemlaynin
Участник


Репутация: 1000(???)
# Дата: 15 Янв 2019 05:05:00 Цитата

Вышла статья на Хабре https://habr.com/post/436040/

fantakt
Участник



Репутация: 1269(???)

# Дата: 15 Янв 2019 13:47:58 Цитата

На хабре конечно, больше спецов )))

Zemlaynin
Участник


Репутация: 1000(???)
# Дата: 15 Янв 2019 14:28:50 Цитата

Хорошие конструктивные комментарии там, по технической части

Zemlaynin
Участник


Репутация: 1000(???)
# Дата: 18 Фев 2019 09:41:05 Поправил: Zemlaynin Цитата

Дневник разработки №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
Участник


Репутация: 1000(???)
# Дата: 23 Мар 2019 12:45:04 Цитата

Дневник разработки №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
Участник


Репутация: 1000(???)
# Дата: 29 Дек 2019 21:33:58 Поправил: Zemlaynin Цитата

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

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

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

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


Скрытый текст, щёлкните чтобы прочитать





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


Скрытый текст, щёлкните чтобы прочитать







На форумах никто не мог мне помочь, было много советов но все были мимо. В итоге после штудирования документации по 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

fantakt
Участник



Репутация: 1269(???)

# Дата: 30 Дек 2019 09:12:27 Цитата

Круто! Красиво! Побыстрей бы! )))

Zemlaynin
Участник


Репутация: 1000(???)
# Дата: 30 Дек 2019 12:00:03 Цитата

fantakt: Круто! Красиво! Побыстрей бы! )))

Ох, по срокам трудно сказать...

Zemlaynin
Участник


Репутация: 1000(???)
# Дата: 19 Окт 2020 22:11:24 Поправил: Zemlaynin Цитата

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

Всем привет!



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

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

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

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

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

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

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

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

Пожелайте мне удачи и терпения Улыбка

https://vk.com/thegreattribes

Discord

fantakt
Участник



Репутация: 1269(???)

# Дата: 20 Окт 2020 07:54:47 Цитата

Удачи и терпения! )))

<< . 1 . 2 . 3 . 4 .  .   Версия для печати . Вверх

ОСТАВЛЯТЬ СООБЩЕНИЯ МОГУТ ТОЛЬКО ЗАРЕГИСТРИРОВАННЫЕ ПОЛЬЗОВАТЕЛИ!

Администрация форума: editors@civru.com
Rambler's Top100
XML [?]