The Great Tribes (Великие племена)
|
|
Zemlaynin |
Дата: Вторник, 23.10.2018, 13:54 | Сообщение # 1 |
Сообщений: [2]
|
Название игры: The Great Tribes Название команды: пока нет.
Пространство: 3D + 2D Вид: Сверху Движок\конструктор: Самописный Предполагаемая дата релиза: 2020+ Платформы: PC (Win, Mac, *nix)
Жанр игры: Глобально-стратегический симулятор развития цивилизации. В альтернативной классификации относится к классу "игр против поля", где невозможна формальная победа. Игрок может лишь отсрочить свое поражение. Однако, данная игра лишь частично отвечает требованиям данного класса. Потерпев полное поражение, игрок может продолжить игру за победителя. Сеттинг: Действие игры и ее хронологические рамки примерно соответствуют периоду с 4-3 тыс. до н.э. по начало 3 тыс. н.э. Ход игры: Игра осуществляется в пошаговом режиме. Однако существует два разных хода – Ход и Такт. Ход обсчитывает глобальные параметры: рост населения и экономики, миграцию страт и изменение их характеристик и т.д. Такты же происходят лишь при боевых действиях. Всего в рамках хода предусмотрено 4 такта: весенний, летний, осенний и зимний. Так, армия, совершившая длинный марш-бросок и вступившая в сражение на исходе очков действия, будет вести сражение в зимний такт с соответствующими последствиями. Какие есть похожие игры: Civilization, Crusader Kings, Europa Universalis, Victoria. Цель игры: Особенность механики игры не позволяет выделить какую-то одну или несколько целей игры. Игрок сам может выбирать, к какой цели ему стремиться. Однако, дабы облегчить игроку поиск интересных целей, в игре будет реализована система достижений. Например, продержаться одной правящей династией как можно дольше, или построить самую богатую торговую империю, или просто колонизировать Марс. Игрок сможет вбирать среди сотен целей наиболее привлекательную для него. Отдельно стоит отметить, что достижения будут разделены на 2 вида: индивидуальные и глобальные. Индивидуальные достижения основаны на результатах одного игрока, тогда как глобальные формируют различные рейтинги среди всех игроков. Гейм-фокус: Игра со сложной, умеренно детализированной моделью реального исторического процесса, в которой игроку предстоит создать собственную уникальную цивилизацию и испытать свои силы в ее развитии в нелинейном, постоянно меняющемся мире. Изучая игровой мир и совершенствуя свои познания общей механики исторического процесса, игрок сможет достичь или даже превзойти достижения строителей цивилизаций из реальной истории.
Состав команды: До недавнего времени: 1 программист 1 гейм-дизайнер 1 моделлер
Сейчас: 1 программист 1 гейм-дизайнер 2 моделлера 1 сценарист 1 художник
Кто требуется в команду: - художник (текстуры для 3D карты, разработать и отрисовать 2D карту, пользовательский интерфейс) - Java программист - Звуковорежиссер - Тестировщики - Гейм-дизайнер (математик) Игровые материалы:
Демо-версии: планируется на 2019г.Добавлено (27.11.2018, 12:29) --------------------------------------------- Дневник разработки №31
Всем привет!
В этом коротком внеочередном дневнике мы решили рассказать вам о новой системе расширения городов, которая была добавлена в игру. Как вы, возможно, помните, изначальная структура городских районов имела ярко выраженную квадратную структуру:
Для начала этого было вполне достаточно, но, так как этот графический элемент довольно сильно бросался в глаза и вызывал закономерные вопросы у части пользователей, было принято решение придать ему более осмысленную форму, тем более, что это и так было в наших ближайших планах.
Для этого понадобилось разработать набор городских районов и их частей, которые бы придавали растущему городу визуально более естественный и приятный вид, а так же логику их взаимосвязей.
В конечном итоге получился вот такой набор моделей, который, в теории, должен учитывать все возможные варианты расширения для равнинной местности:
Теперь стартовый вариант города выглядит так:
Как видите, за счет дополнительных пристроек жилых районов, которые фактически ими не являются и служат лишь для художественного оформления, город получил более естественный и визуально приятный силуэт.
Для тех, кому интересна логика использования моделей районов при расширении городов, далее приложен ряд технических скриншотов с пояснениями:
Начальный вариант жилого района:
Чтобы сгладить его квадратный вид, к нему добавляются дополнительные элементы. Эти элементы, как выше уже было отмечено, не являются самостоятельными районам, а служат лишь графическим оформлением:
Город может расширяться в любом направлении. Для примера предположим, что следующий городской район появляется справа от уже имеющегося. Текущая правая пристройка пропадет, а на ее месте появится район следующего типа:
Если район появляется внизу слева по диагонали, то он будет иметь квадратную форму, а его дополнительные пристройки следующий вид:
Если район строится сверху от изначального, город принимает следующую форму:
Строится внизу справа по диагонали от стартового. Второй построенный район заменяется другой своей модификацией, а дополнительный район снизу на П-образный:
Хотя здесь наглядно и не представлены все возможные варианты развития, следование такой логике, теоретически, позволяет выстраивать города любой возможной формы.
Резюмируя, можно посмотреть скриншот крупного города, выстроенного в игре таким образом:
В качестве дополнительного бонуса скриншот Аванпоста:
Спасибо всем за внимание и до новых встреч! Добавлено (05.12.2018, 06:56) --------------------------------------------- Дневник разработки №32
Всем привет!
Прошло полтора месяца с моего последнего дневника, был проделан огромный фронт работ за это время. Вот так выглядел мой таск лист, не учитывая тех задач что я выполняю по внутриигровым механикам:
Все задачи выполняли не в том порядке, в котором они были расположены в списке, да и тут отсутствуют мелкие задачи, которые приходилось решать попутно. Многие задачи не касались моего участия, например Алексей потихоньку текстурил здания:
Тем временем, я думаю наши читатели помнят голосовалку в нашей группе ВК https://vk.com/thegreattribes, шла работа по подбору цветового оформления террайна:
Вариант который мы выбрали на сегодняшний день покажу немного ниже.
Первым делом у меня стояла задача по реализации теней от объектов на карте и первые попытки реализации через Shadow map дали вот такой результат:
И после недолгих мучений удалось получить вот такой результат:
Далее, стояла задача подправить воду, подобрать к ней хорошие текстуры, коэффициенты и переменные для лучшего отображения, нужно было сделать блики на воде:
В это же время к нашей небольшой команде подключился еще один моделлер который сделал нам нового юнита:
Модель была с картой спекуляра, но поддержки этого материала не было в моем движке. Пришлось потратить время на внедрение поддержи specular map. Поралельно с этой задачей пришлось наконец-то доработать освещение.
Все как говориться, цепляется одно за другое, пришлось вводить поддержку влияния тенейц на спекуляр:
И сделать регулируемый источник света для проверки всего и вся:
Как видно теперь появилась панелька где можно управлять положением источника света. Но и это было не всё, пришлось задать дополнительный источник освещения имитирующий отраженный свет, чтобы получить более реалистичный спекуляр с теневой стороны, он привязан к положению камеры. Как теперь видно броня поблескивает и с теневой стороны:
Ух сколько было убито свободного времени на анимацию этого персонажа, точнее импорта анимации. Но теперь все работает отлично! Скоро запишу видео игрового процесса.
Тем временем Алексей выкатил новую модельку шахты:
Чтобы сделать такой скриншот с приближением шахты пришлось отвязать камеру, что дало возможность насладится открывшимися видами:
В процессе работы над построением городов был реализован механизм расширения административной зоны города, на скриншоте она обозначена белым цветом:
Надеюсь вы читали наш предыдущий дневник о реализации системы визуализации городских районов:
Как вы могли заметить на последнем скриншоте более качественные тени, чем ранее. Мною была допущена ошибка при расчете теней и по этому тени отставали от маленьких объектов и получалось ощущение что они висят в воздухе, теперь тень падает естественней.
Немного был изменен генератор карты, были подправлены холмы, сделал их более гладкими. Появились ледники на суше, если она находится близко к полюсам:
Была проделана большая работа по оптимизации отображения графики, переписал местами шейдеры устранив слабые места. Оптимизировал механизм хранения и отрисовки видимых тайлов, что дало ощутимый прирост и стабильный FPS на слабых компьютерах. Сделал плавное передвижение и поворот камеры, полностью исключив ранее видимые рывки.
Это не полный список всех решенных задач, я просто не помню все
Планы на ближайшее будущее:
- Интерфейс, очень большие у нас с ним проблемы и очень нужна помощь спецов в этом деле. - Реализация столкновений армий. - Реализация роста городов, я так и не доделал этот механизм. - Реализация первых зачатков ИИ, маневрирование армией и принятие решений и реакция на столкновение армий противника. - Реализация механизма хранения состояний отношения ИИ к противникам, дипломатия. - ИИ городов.
Спасибо за внимание! Вступайте в нашу группу в https://vk.com/thegreattribesДобавлено (11.01.2019, 10:41) --------------------------------------------- Дневник разработки №33
Всем привет! И с прошедшими новогодними праздниками!
Прошло уже больше месяца с последнего дневника разработки. Скажу сразу, что хотел выложить дневник раньше, но столкнулся с трудноразрешимой задачей, на которую потратил кучу времени. Но все по порядку.
Согласно плану разработки был реализован первый контакт с ИИ:
Внизу скриншота видны сообщения о пересечении зон контроля армии с другой армией и городом. Теперь предстояло разработать некий элемент интерфейса который бы отображал данные события:
На данном скриншоте в левом верхнем углу представлена реализация UILabel с возможностью переноса текста по словам. Важный элемент интерфейса который пригодиться в дальнейшем. В правом нижнем углу, над кнопкой конца хода теперь видны различные сообщения, по наведению курсора мышки на них выскакивает подсказка (тоже новый элемент интерфейса), с коротким описанием события. По нажатию правой кнопки событие можно закрыть без принятия какого либо решения, а левой кнопкой можно раскрыть сообщение. В данном случае при нажатие на кнопку события произойдет первый дипломатический контакт в игре:
Далее были реализованы первые маневры ИИ. ИИ ходит по карте и пытается определить границы своего материка. В видео у Дуката https://youtu.be/69G51u_Mq3g?t=693 ,есть момент где он бегает за армией противника, который не обращает на него внимания, так как занят исследованием карты
И вот где-то в этом месте и в это время, я столкнулся с проблемой, проблемой производительности. У нашего моделлера достаточно мощный современный компьютер красной сборки. Но у него игра жутко тормозила грузя одно ядро процессора. Причина проста — в новых процессорах много ядер, но по факту они менее производительны в однопоточных приложениях. А тот момент у меня был рендер в один поток. Но на самом деле причины была не столько в этом. И в процессе поиска проблемы я решил посчитать сколько полигонов у нас присутствует в сцене:
На средней карте при максимальном отдалении и большом скоплении пальм - это просто жуть! 15 824 756 треугольников! Почти 16 миллионов!!!
Немного погенерировав карты я нашел место с 16,75 миллионами
Хотя вот подобное место с елками давало всего 8,5 миллионов треугольников:
А в среднем сцена состояло из примерно 4 миллионов:
В общем я был рад что мой рендер справляется с таким огромным числом треугольников, но их количество было чрезмерным. Нужно было оптимизировать количество полигонов в моделях.
На 40% снизился полигонаж елок! Отличий практически не видно.
Следом мы переделали и пальмы - полигонаж на пальмах был снижен в 10 раз. 600 - 700 против шести тысяч полигонов в одном паке.
Параллельно пока шла работа над моделями я занялся вопросом упрощения геометрии террайна. Вот как он выглядел до оптимизации:
И после первых шагов:
Но это было все сделано простым методом — все ровные тайлы были заменены двумя треугольниками вместо 882.
Но оставались еще ровные места которые можно было оптимизировать, и я начал строить полигоны из тех треугольников у которых была одинаковая высота:
Строить по ним выпукло-вогнутый контур (Concave Hull). С Convex Hull`ом проблем не было, я уже использовал алгоритм Грэхема (Graham scan). А вот построением Concave Hull появилась проблема... Информации на эту тему тему в интернете найти оказалось достаточно сложно. Пришлось писать реализацию алгоритмов с нуля. Не совру, если я скажу что прочитал с десяток разных диссертаций на эту тему. Но все предложенные алгоритмы давали приближенный результат с некоторой погрешностью. После недели мучений и боли мне пришла идея своего алгоритма, возможно я его когда-нибудь опишу В результате уже двух недельного мучения я получил искомый результат и смог строить Concave Hull практически любой сложности, обходя стороной множества с дырками, просто разделяя их на 2 половины по дырке. Получал контур и триангулировал его:
Получая на выходе такой результат:
Также подвергся упрощению туман войны:
И в зонах где присутствовал только туман войны получалось всего порядка 300 полигонов:
Но в итоге я был расстроен результатом и расскажу что эти две недели я потратил в пустую... Разработанный мной алгоритм давал ощутимую прибавку в производительности при отрисовке, так как количество полигонов в среднем сокращалось на 60 — 70%. Но генерация карты стала происходить раз в 10 медленнее.... алгоритм был тяжелый по временным затратам.
3 дня я проиграл в ATOM RPG снимая стресс Даже на работу не ходил. Слава богу у нас в это время термометр зашкаливал на границе -44 - -46 градусов по Цельсию. И свою хандру я выдал за отмазку о не заводившейся машине.
И вот перед новогодними праздниками, вдоволь наигравшись, но правда не пройдя игру, я выдал новую облегченную версию алгоритма, который подходил только под мои условия тайлов. Вычисления данных для оптимизации были не заметны на фоне генерации карты и количество полигонов снижалось в среднем на 40-50%. Но появились артефакты при отрисовке воды, пришлось переписать все алгоритмы связанные с водой. Вот результат:
Анатолий тем временем сделал юнит кочевья:
Пока он лежит отдыхает
В процессе работы над оптимизацией, мне пришла в голову идея как можно изменить наши горы.
Горы стали более рельефными, это заметно без текстуры, так как текстура теперь к ним не подходит:
По сетке так вообще отличия очевидны:
|
|
| |
Alexandrovis |
Дата: Воскресенье, 29.12.2019, 21:36 | Сообщение # 2 |
Сообщений: [1]
|
Ждем новый дневник:)
|
|
| |
Zemlaynin |
Дата: Воскресенье, 29.12.2019, 21:46 | Сообщение # 3 |
Сообщений: [2]
|
Дневник разработки №36
Привет читатели нашего дневника! Всех с наступающим Новым Годом!
Давно не писал я дневников, на то были свои причины. Напомню что рабочий сезон у меня заканчивается в конце октября/начале ноября и к проекту я должен был вернуться в это время.
Но была еще одна причина, почему к проекту я приступил лишь в начале декабря. После моего долгого внутреннего сопротивления я все же взялся за изучение Unreal Engine 4. В свою очередь к изучению UE4 меня подтолкнуло отсутствие подвижек по дизайн-документу у нашего геймдизайнера. За два месяца ковыряния UE4 я понял, что это отличный инструмент для создания игр... Но все же он не для стратегий, точнее не для стратегий с такими огромными картами как у нас.
От использования Blueprints я получил только удовольствие, тем более когда воочию можно увидеть и окинуть взглядом всю схему:
Летом, пока шел рабочий сезон, заниматься проектом практически не было времени. Но тут я прикупил себе обновку для компьютера - видеокарту RTX 2080 и решил протестировать проект на ней. Проект запускался но работал не корректно, после долгих поисков причины я понял что проблема в шейдере:
На форумах никто не мог мне помочь, было много советов но все были мимо. В итоге после штудирования документации по OpenGL я пришел к выводу что моя ошибка была в особенном поведении OpenGL 4.5, а точнее ошибка была в Non-uniform flow control https://www.khronos.org/opengl....control
После её исправления все заработало. Еще, после форумных переписок, ребята натолкнули меня на хорошие мысли и я немного оптимизировал шейдер, за что им огромное спасибо.
Следующим этапом была переделка алгоритма поиска стартовых мест для игроков, мне он еще пока не нравится, но работает лучше предыдущего, времени на писк уходит очень много. Это вторая задача по затратам времени, после задачи расчета нормалей. Бывает даже так, что поиск стартовых мест происходит дольше просчета нормалей...
Придется переписывать еще раз.
После того как я закончил работу с UE4, я планировал взяться за написание диздока. Я размышлял в каком направление мне двигаться и с чего начать, перечитывал ранее написанный концепт-документ. В один из таких дней, под подобные размышления я вспомнил о том, как мне не давал покоя написанный алгоритм генерации гор. Напомню как выглядели горы ранее:
Мимолетной была эта мысль, но она меня зацепила, и этот день я провел с этой мыслью в голове. На следующий день я решил запрограммировать этот момент:
Горы получились не плохими, но не намного лучше чем были. Но я сделал их, используя совершенно другой подход, в котором оставалось место для маневра. Два дня я экспериментировал и в процессе таких экспериментов понял что мне мешает получить искомые формы, но для этого придется немного изменить способ генерации перехода одного типа поверхности в другой, т. е. переход воды в сушу и переход суши в горы. Еще пол дня у меня ушло на переписку кода, но к вечеру у меня получился интересный результат:
Вроде как не плохо получилось.
И тут я понял, что подобный подход можно применить и к рекам. Дизайн-документ отодвинулся на второй план. За пару дней я переписал реки, их изгибы теперь выглядят более естественно:
И теперь помимо того что реки строились более эффективно, в процессе написания алгоритма генерации, я не раз поглядывал на алгоритм, который строил отображение рек в 3D пространстве. Странным образом я их отображал, буквально за несколько часов я переписал все на алгоритм базировавшийся на построении кривых Безье. Кстати, на скриншоте выше, реки построенные на кривых Безье.
Новый подход к генерации и рек и гор позволял мне более свободно работать с ними, и в голову пришло еще пару идей. Я наметил план и даже знал как его реализовать. Но, тут впал в ступор и целую неделю не мог сформулировать и воплотить задуманное в коде. Ходил по офису кругами, буквально бился головой об стену и ругал себя что не могу сделать такую простую вещь. Неделя прошла в муках, не смогу передать вам какая пустота была у меня в голове. И вот за четыре дня до нового года я наконец родил свою мысль:
Реки могут рассекать горы (реалистично ли?).
Теперь реки могут выходить с гор.
И самое крутое - теперь реки имеют разную ширину! Есть судоходные реки и не судоходные. При впадении одной реки в другую последняя меняет свою ширину. Ширина реки в свою очередь теперь зависит от длинны. Ширина реки увеличивается постепенно, от истока к устью.
Остается запрограммировать красивый исток и устье и реки будут готовы.
Наконец меня отпустило, та мимолетная мысль воплощена в жизнь, можно писать дизайн-документ дальше.
Теперь дневники будут выходить чаще. До новых встреч!
https://vk.com/thegreattribes
https://discord.gg/ZhTzDBДобавлено (08.10.2020, 17:16) --------------------------------------------- Дневник разработки №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 Добавлено (28.12.2020, 19:35) --------------------------------------------- Всех с наступающим новым 2021 годом!
Команда по разработке игры The Great Tribes поздравляет вас с наступающим новым 2021 годом! И благодарит вас за проявленный интерес к нашему проекту. В уходящем году нам удалось преодолеть барьер в 4000 подписчиков в нашем официальном сообществе в ВК - https://vk.com/thegreattribes. Для нас ваша поддержка значит многое.
Лично от себя хочу высказать отдельную благодарность тем, кто присоединился к разработке проекта.
Этот год был не простым для всех нас, но для нашего проекта он оказался очень продуктивным и надеемся, что так будет и дальше, и мы выпустим очень классную игру!
Мы желаем нашим подписчикам новых успехов и главное здоровья в следующим году. Успехов во всем, достижения всех поставленных целей.
Оставайтесь с нами!
Напоминаю, наши планы на 2021 выпустить рабочую пре-альфу версию проекта весной 2021 года. Так что следите за новостями. А пока вы можете стать тестером в нашем дискорд канале: https://discord.com/invite/tCzHVsW .
Просим вас поддержать нас подпиской на ютуб канале: https://www.youtube.com/channel/UCUMPv2zJyMiWJ0LNLxC6BxA . В будущем году будем проводить стримы и беседы с разработчиками.
30 декабря в 15:00 по МСК в нашем дискорд канале пройдет беседа с разработчиками, кто хочет участвовать просто можете пройти по ссылке на дискорд, там вы сможете задать ваши вопросы и получить на них ответы.
С наилучшими пожеланиями от команды разработки The Great Tribes.
Сообщение отредактировал: Zemlaynin - Воскресенье, 29.12.2019, 21:51 |
|
| |
|